Openstack针对nova,cinder,glance使用ceph的虚拟机创建机制优化



今天在开源中国社区看到有例如以下一个问题:

已经成功把ceph作为cinder和 glance的后端,可是假设作为nova的后端,虚拟机启动速度非常慢,网上查了一下是由于openstack创建虚拟机的时候通过ceph取镜像创建虚拟机再把虚拟机存回ceph的步骤浪费了非常多时间,是否有办法不把镜像取到本地。而是直接在ceph的存储池里完毕虚拟机的创建呢?


实际上。我当前也是把ceph作为nova,cinder,glance三者的后端,创建虚拟机速度很慢。查了一下相关和资料,是有新的处理方式,当前openstack代码层面已经做了处理。但貌似还没有终于合入版本号。也没有生成正式补丁。


  大概原理例如以下:

1、nova无后端存储时。创建虚拟机时把glance上的镜像下载到虚拟化节点,并产生一个差异盘作为虚拟机的增量文件存放空间。生成第二台一样的虚拟机时。就仅仅须要产生一个差异文件就可以,使用的OS就是第一次下载到本地的镜像文件,所以速度回很快。

2、当nova后端也使用ceph时,创建虚拟机须要把镜像文件从glance先下载到虚拟化节点,然后再上传到相应的nova后端ceph上。所以速度会慢非常多;

3、Openstack的改进方案是在nova项目中添加了三个class。功能上当须要下载镜像时。通过nova调用ceph命令,直接在ceph存储层完毕镜像拷贝动作(无需消耗太多的nova性能,也无需将镜像下载到hypervisor本地,再上传镜像到ceph),如此创建虚拟机时间将会大大提升。


转载,请注明出处。


posted on 2017-05-30 20:38  yjbjingcha  阅读(1206)  评论(0编辑  收藏  举报

导航