在openstack(queen)中,有时ceph作为glance后端存储,虚拟机创建非常缓慢,至于原因,网上有相关博客,大致如下:
1 nova无后端存储时,创建虚拟机时把glance上的镜像下载到虚拟化节点,并产生一个差异盘作为虚拟机的增量文件存放空间,生成第二台一样的虚拟机时,就只需要产生一个差异文件即可。所以普通无后端存储,创建第一台虚拟机缓慢,后面所有同镜像的虚拟机创建会很快。
2 ceph作为后端存储时,如果配置不正确或者镜像不符合要求,每次创建虚拟机都会从ceph下载镜像到节点,然后再上传镜像。所以即使创建相同镜像的虚拟机,也会非常缓慢,严重影响性能,浪费存储空间。
解决方案:
其实openstack社区早已解决该问题,就是通过ceph clone功能克隆镜像达到资源重用的目的,极大的提高了创建效率。但是有些需要注意的点。
1)首先要确保镜像格式为raw(ceph clone目前只支持raw格式的镜像)
2)修改controller节点的/etc/glance/glance-api.conf,增加如下配置
[DEFAULT]
show_multiple_locations = true
说明:此配置项允许查询镜像时返回镜像的后端存储路径,如果不打开此配置,nova将无法获取镜像location,从而无法克隆镜像只能通过下载后重新上传镜像创建虚拟机,从而影响效率。
3)重启glance-api服务即可。