nova boot添加volume_type参数支持

简介:   早前由于添加了全SSD的高性能Ceph集群,区别于现有的HDD集群,在OpenStack端需要能够选择使用两种集群。Cinder配置多Ceph后端的文档早已整理,整理文件夹时发现这篇为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

 

目录
相关文章
|
2月前
|
数据中心
【Azure Service Bus】创建 ServiceBus 的Terraform脚本报错GetAuthorizationRule: Invalid input
为了最佳的体验,需要确保使用最新 Terraform azurerm 组件!
|
3月前
|
Java Spring
【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
|
5月前
|
监控 Cloud Native 网络协议
函数计算操作报错合集之出现“make sure that the nas mount point address is correct and is accessible from the service vpc”的提示,需要如何排查
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
|
存储 Docker 容器
Docker - 数据持久化存储 Data Volume & Bind Mount
Docker - 数据持久化存储 Data Volume & Bind Mount
115 0
|
C++ Docker 容器
replicated mode vs global mode - 每天5分钟玩转 Docker 容器技术(105)
Swarm 可以在 service 创建或运行过程中灵活地通过 --replicas 调整容器副本的数量,内部调度器则会根据当前集群的资源使用状况在不同 node 上启停容器,这就是 service 默认的 replicated mode。
1503 0