openstack使用cirros镜像创建vmware虚拟机
背景:
opesntack压力测试,需要支持并发创建200台虚拟机,若采用一般镜像,centos最小为700m,在vmware复制镜像文件时就会花费大量时间,成为瓶颈,因此需要创建最小镜像,以突破瓶颈。
调研方向:
从openstack官网找到测试专用的镜像cirros:
http://download.cirros-cloud.net/
但cirros提供的都是qcow2格式的镜像,还需要转换为vmdk格式才能被vmware识别。
操作步骤
首先下载cirros镜像:
http://download.cirros-cloud.net/0.3.5//cirros-0.3.5-x86_64-disk.img
下载成功后使用qemu-img工具从qcow2转化为vmdk格式:
qemu-img convert -f qcow2 cirros-0.3.5-x86_64-disk.img \ -O vmdk cirros-0.3.5-x86_64-disk.vmdk
通过openstack接口创建镜像:
openstack image create \ --container-format bare --disk-format vmdk \ --property vmware_disktype="sparse" \ --property vmware_adaptertype="ide" \ cirros-x86_64 < cirros-0.3.5-x86_64-disk.vmdk
注意,此处必须注明vmware的磁盘格式和适配器类型。
通过qemu-img转化来的vmdk磁盘文件通常都是单片稀疏(monolithic sparse)的,并且适配器类型是ide。
具体可以通过下面的命令查看
$ head -20 <vmdk file name>
下面是执行结果:
[root@controller ~]# head -20 cirros-0.3.5-x86_64-disk.vmdk KDMV # Disk DescriptorFile version=1 CID=61e4a14a parentCID=ffffffff createType="monolithicSparse" # Extent description RW 80325 SPARSE "cirros-0.3.5-x86_64-disk.vmdk" # The Disk Data Base #DDB ddb.virtualHWVersion = "4" ddb.geometry.cylinders = "79" ddb.geometry.heads = "16" ddb.geometry.sectors = "63" ddb.adapterType = "ide"
可见,
createType="monolithicSparse"
和ddb.adapterType = "ide"
。
然后就可以使用此镜像创建虚拟机了。