nova/libvirt驱动程序中Parallels Cloud Server支持¶
https://blueprints.launchpad.net/nova/+spec/pcs-support
本规范旨在描述扩展nova/libvirt驱动程序以支持Parallels Cloud Server [1] 的过程。
问题描述¶
Parallels Cloud Server (PCS) 是一种虚拟化解决方案产品,它使服务提供商能够通过相同的管理工具和API使用容器和虚拟机技术。 虽然PCS受libvirt支持,但目前在OpenStack中尚不存在,这不仅与计算节点部署相关的特定需求有关,还与Parallels磁盘环回块设备 [2] 的使用所隐含的不同磁盘镜像格式、域配置和支持的功能有关。
用例¶
此更改将允许使用PCS作为其主要虚拟化解决方案的服务提供商使用OpenStack在其之上构建云。 对于不使用PCS的用户,没有影响。
项目优先级¶
此功能的优先级尚未定义。
提议的变更¶
为了使PCS得到OpenStack的支持,我们需要修改nova/libvirt驱动程序,主要是在新的虚拟化处理类型方面。 用户将能够通过将libvirt.virt_type选项设置为“parallels”来配置nova以使用PCS。 此外,由于PCS支持的本机磁盘格式是ploop [2],为了获得最佳性能,我们需要更改glance-api配置以支持PCS ploop格式。 将提供不同格式的镜像的就地转换。 由于每个主机通过资源跟踪器报告支持的实例,并且镜像的‘vm_mode’属性用于确定在特定主机上运行哪种类型的虚拟化,因此将基于具有特定vm_mode属性的镜像做出决定(例如vm_mode=exe以运行容器,或vm_mode=hvm以运行基于虚拟机的实例)。 因此,PCS主机将支持任意混合的机器和基于容器的客户机。 如果云管理员需要一种将主机划分为组的方法,以便某些主机专门运行机器虚拟化,而其他主机专门运行容器虚拟化,则应使用主机聚合和flavor的额外规格。
nova.conf 示例摘录:[libvirt] … virt_type = parallels images_type = ploop …
glance-api.conf 示例摘录:… disk_formats=ami,ari,aki,vhd,vmdk,raw,qcow2,vdi,iso,ploop …
以下是我们计划支持的功能列表
虚拟机 |
容器 |
|
|---|---|---|
启动 |
是 |
是 |
重启 |
是 |
是 |
终止 |
是 |
是 |
调整大小 |
是 |
是 |
救援 |
是 |
是 |
暂停 |
是 |
|
取消暂停 |
是 |
|
挂起 |
是 |
是 |
恢复 |
是 |
是 |
注入网络 |
是 |
是 |
注入文件 |
是 |
是 |
串口控制台输出 |
是 |
no |
VNC 控制台 |
是 |
是 |
SPICE 控制台 |
no |
no |
RDP 控制台 |
no |
no |
附加卷 |
是 |
|
分离卷 |
是 |
|
实时迁移 |
是 |
是 |
快照 |
是 |
是 |
iSCSI |
是 |
是 |
iSCSI CHAP |
是 |
是 |
光纤通道 |
是 |
是 |
设置管理员密码 |
是 |
是 |
获取客户机信息 |
是 |
是 |
Glance 集成 |
是 |
是 |
服务控制 |
no |
是 |
VLAN 网络 |
是 |
是 |
Flat 网络 |
是 |
是 |
安全组 |
是 |
是 |
防火墙规则 |
是 |
是 |
nova 诊断 |
no |
no |
Config Drive |
是 |
是 |
自动配置磁盘 |
no |
是 |
撤离 |
是 |
是 |
卷交换 |
是 |
|
卷速率限制 |
暂停容器在技术上没有问题,但目前尚未实现。
可以将卷作为块设备或挂载点附加到容器,同时提供两种类型的访问权限存在安全问题。
我们可以使用vswap技术 [4] 调整容器中的交换大小,而不是像传统交换磁盘那样。
我们只能为整个实例调整IO速率,而不能为单个卷调整。
备选方案¶
另一种方法是像这样实现一个单独的PCS nova驱动程序 [3],这是在PCS + OpenStack概念验证方面实现的。
优点:* 没有OpenStack和PCS之间的中间层,因为pcs-nova-driver使用PCS的本机python API。 * 对pcs-nova-driver的更改不会影响nova/libvirt的代码。
缺点:* 另一个nova驱动程序 * 这是一个树外驱动程序
数据模型影响¶
无。
REST API 影响¶
无。
安全影响¶
无。
通知影响¶
无。
其他最终用户影响¶
无。
性能影响¶
无。
其他部署者影响¶
用于“parallels”类型虚拟化的计算节点必须提前部署。 将PCS主机部署与OpenStack集成不在本规范的范围内。
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
dguryanov
- 其他贡献者
burluka mnestratov
工作项¶
增强libvirt驱动程序以支持新的virt_type值。
实现所有必要的功能,以在libvirt驱动程序中支持PCS
依赖项¶
在glance Bluesprint中添加对新磁盘镜像格式的支持 https://blueprints.launchpad.net/glance/+spec/pcs-support
无
测试¶
门控测试将由目前正在建立的Parallels CI测试系统提供。
文档影响¶
应注意新型虚拟化提供程序,以及主机部署先决条件,例如计算节点上需要安装PCS。