早前由于添加了全SSD的高性能Ceph集群,区别于现有的HDD集群,在OpenStack端需要能够选择使用两种集群。Cinder配置多Ceph后端的文档早已整理,整理文件夹时发现这篇为nova boot添加volume type参数的文档,也整理一下发出来。

  Nova官方不支持创建虚拟机时指定volume type参数,是因为官方认为volume是由cinder管理的,nova不应该加以干涉,以保证功能的明确性和独立性。但创建虚拟机时却有指定创建volume的功能,到底添加一个参数是否无伤大雅,见仁见智。

  不管怎么说,我们有这个需求,既然官方不支持,那就自己动手,丰衣足食。修改主要顺着创建虚拟机的整个流程进行,包括:命令行、API、DB、Compute。以下修改在Mitaka版本进行。

1. 命令行添加volume-type参数

  修改novaclient.v2.shell.CLIENT_BDM2_KEYS,使novaclient支持volume-type参数:

2. API添加volume_type属性

  修改nova.api.validation.parameter_types,增加volume_type:

  修改nova.api.openstack.compute.schemas.block_device_mapping_v1. legacy_block_device_mapping,增加volume_type属性:

  修改nova.block_device,给bdm_legacy_fields和bdm_new_fields增加volume_type:

  修改nova.objects.block_device.BlockDeviceMapping,增加volume_type:

3. DB添加volume_type字段

  修改nova.db.sqlalchemy.models.BlockDeviceMapping,增加volume_type:

4. Compute添加volume_type

  修改nova.virt.block_device,给DriverVolumeBlockDevice、DriverImageBlockDevice和DriverBlankBlockDevice添加volume_type参数,并在调用volume_api创建卷的时候传入:

  重启服务生效。然后在nova boot的--boot-volume参数中就可以指定volume_type属性了:

# nova boot --flavor <flavor_id> --nic net-id=<net_id> --block-device id=<image_id>,
source=image,dest=volume,device=vda,size=50,bootindex=0,shutdown=remove,
volume_type=ceph-ssd test-01

nova boot添加volume_type参数支持相关推荐

  1. android post请求添加公共参数_XHttp2 一个功能强悍的网络请求库

    XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装.还不赶紧点击使用说明文档,体验一下吧! 项目地址 关于我 https://github ...

  2. 爱上MVC~为DisplayNameFor添加扩展,支持PagedList集合

    DisplayNameFor方法是MVC提供给我们的,它可以将模型的DisplayName特性的值显示到页面上,这对程序员来说很是方便,在进行实体设计时,可以指定它的显示名称,然后MVC引擎会自动帮助 ...

  3. vue 分享微信传参_vue实现微信分享链接添加动态参数的方法

    微信分享时 分享链接携带参数可能不是固定的 需要在分享的前一刻才知道 这里就是动态设置分享链接的基本写法 代码不是那么详尽 但大致流程如下 1.安装引用jssdk npm install --save ...

  4. springboot tomcat配置_Spring Boot项目如何同时支持HTTP和HTTPS协议

    本文首发于个人网站:Spring Boot项目如何同时支持HTTP和HTTPS协议 如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程 ...

  5. mybatis拦截器添加额外参数

    上一篇中讲了mybatis拦截器的实现 这一篇扩展mybatis在拦截器中添加额外参数 在mybatis的mapper.xml文件中,我们可以使用#{}或${}的方式获取到参数,这些参数都需要提前我们 ...

  6. springclould feign客户端添加全局参数

    用springclould feign作为调用服务的客户端,一般来说参数可以写在feignclient的方法参数里 有时需要所有feign请求都统一添加一些参数,例如token用于鉴权等,可以这样做: ...

  7. python迅雷远程下载页面_【教程】Chrome浏览器添加迅雷下载支持

    2019年4月28日更新: 目前官方最新版本的迅雷X已经实现自动安装Chrome扩展,无需手动安装. 请仍在使用老版本迅雷的雷友升级到官方最新版本的迅雷X. 以下内容已经过期 最近一段时间,Googl ...

  8. mfc工程中添加com接口支持

    在普通的mfc工程中常常需要添加com接口支持.最典型的应用就是使用 com中的连接点机制时,需要在客户端实现事件接受器.简单说来,就是要实现在com服务器端声明的事件接口.这个接口由server端暴 ...

  9. boost::callable_traits添加可变参数的测试程序

    boost::callable_traits添加可变参数的测试程序 实现功能 C++实现代码 实现功能 boost::callable_traits添加可变参数的测试程序 C++实现代码 #inclu ...

最新文章

  1. B. Complete the Word (尺取法)
  2. 10个Linux 系统性能监控命令行工具
  3. 142. 环形链表 II golang
  4. 10右键闪退到桌面_windows7多用户远程桌面如何设置
  5. 标签插入两一个html,一个类下有很多a标签,给第二个a标签添加样式,怎么写才能不用再给第二个a添加类_html/css_WEB-ITnose...
  6. 业余学python 树莓派_厉害了!小伙自学Python一个月,利用树莓派制作了黑客优盘工具!...
  7. 敏捷开发任务看板_看板方法的进化论:从丰田精益方法到敏捷研发
  8. d触发器q端的输出波形_如果把D触发器的输出Q'反馈连接到输入D,则输出Q的脉冲波形的频率为CP脉冲频率f的 。...
  9. matlab在图片上画框
  10. 银河麒麟系统如何取得终端的root权限和查看所有服务状态
  11. WIFI抓包实战篇——使用Kali 同时抓取多个智能家居数据包
  12. 2019华为机试题 消息扩散
  13. 计算机网络国家职业三级,计算机网络管理员国家职业标准
  14. 微软巨资收购Skype 网络电话行业受关注
  15. 计算机自动化程序高 应用范围广是由于,计算机等级考试一级笔试模拟试题(三)及答案...
  16. 【六祎 - HTML模板】提交按钮模板-带特效
  17. 英语3500词(18/20)health主题(2022.4.28)
  18. 我把皮小浪の的 蓝色妖姬系列做进了java窗口
  19. 只保留QQ拼音输入法的设置
  20. 浏览器f12监听element的值和变量的变化

热门文章

  1. 2015年第一个计划
  2. 移除设备和驱动器百度网盘图标
  3. 使用iPad编写C++程序(转载)
  4. 输出重定向Linux命令,Linux命令常用之输出重定向
  5. prism如何添加legend
  6. Android将apk转换成二维码提供给别人扫描并下载
  7. wincc显示系统时间_wincc系统日期时间获取
  8. 每周全球科技十大新闻(2019.8.19-8.25)
  9. fit、transform、fit_transform的区别和联系
  10. fpga实现VGA显示