zoukankan      html  css  js  c++  java
  • nova boot添加volume_type参数支持

      早前由于添加了全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
  • 相关阅读:
    转:选择好友的下拉控件(类型开心网的)
    转:Silverlight样式写法
    转:构建无坚不摧的网站环境—NLB+Cluster(一)
    SQL2005 Collate问题
    转:写HTML邮件的建议及规范
    转:extjs里的fieldset不居中的解决办法(记录)
    转:大规模网站架构技术原理透析
    转:关于大型asp.net应用系统的架构架构的选择
    转:构建无坚不摧的网站环境——NLB+Cluster(二)
    ASP.NET MVC 2.0在WinXP IIS6下的部署
  • 原文地址:https://www.cnblogs.com/ltxdzh/p/9188623.html
Copyright © 2011-2022 走看看