openstack使用cirros镜像创建vmware虚拟机

作者 Billy 日期 2017-06-10
openstack使用cirros镜像创建vmware虚拟机

openstack使用cirros镜像创建vmware虚拟机

背景:

opesntack压力测试,需要支持并发创建200台虚拟机,若采用一般镜像,centos最小为700m,在vmware复制镜像文件时就会花费大量时间,成为瓶颈,因此需要创建最小镜像,以突破瓶颈。

调研方向:

从openstack官网找到测试专用的镜像cirros:

http://download.cirros-cloud.net/

但cirros提供的都是qcow2格式的镜像,还需要转换为vmdk格式才能被vmware识别。

操作步骤

  1. 首先下载cirros镜像:

    http://download.cirros-cloud.net/0.3.5//cirros-0.3.5-x86_64-disk.img

  2. 下载成功后使用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
    
  3. 通过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"

然后就可以使用此镜像创建虚拟机了。