今天在开源中国社区看到有如下一个问题:
已经成功把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),如此创建虚拟机时间将会大大提升。
转载,请注明出处。
本文出自 “victorye” 博客,请务必保留此出处http://victorye81.blog.51cto.com/2405252/1541786