制作Aliyun vhd镜像

Preface

阿里云仅支持raw和vhd两种镜像格式的导入,而且对这两种格式都有较为严格的要求。

  • vhd格式:阿里云完全适配使用vhd-util制作出来的vhd格式,但不支持qemu-img制作或者转换得到的vhd。因此,手头有qcow2等镜像格式的没有必要尝试转成vhd了,不大可能成功
  • raw格式:镜像文件必须是1M对齐,分区建议4K对齐

vhd Creator Application字段必须是"tap" (可以使用vhd-util read -n ${VHD_NAME}.vhd -p查看),ECS存储完全适配的是使用vhd-util2工具做出来的vhd文件

Environment

因为raw格式制作出来的镜像很大 (一般raw的镜像要几十G左右,而qcow2或vhd在几G左右),延长了debug周期,不做考虑。
选择vhd格式的镜像就要先打造虚拟化环境,有下面两种开发环境可供选择:

  • qemu-kvm + xen-runtime (推荐):采用qemu-kvm虚拟化平台便于对做好的vhd格式的镜像进行校验,而vhd-util是Xen平台提供的管理虚拟块设备的工具

vhd-util CentOS环境推荐用yum安装

  yum install xen-runtime.x86_64

也可以通过搜索vhd-util依赖的so及elf的方式进行精简安装,但从网上能搜到的elf来看,64位系统有可能需要解决multilab的问题,故不推荐

  • Xenserver + kvm:需要两台物理机,一台安装Citrix Xenserver用于制作vhd格式的镜像,另一台安装kvm用于验证。对于怕把现有虚拟化环境搞坏的朋友,这是一种好的选择

以第一种环境为例,一般需要安装如下几个软件包:

  • qemu-kvm (注意,使用CentOS的朋友不要采取yum安装的方式,要手动编译,见Troubleshooting)
  • xen-runtime
  • libvirt和virt-manager (Optional, 可以方便管理虚拟机)
Install
  1. 准备好制作虚拟机镜像的工具,可以是:
    a) 打包好的虚拟机镜像
    b) 能在qemu-kvm运行的虚拟机
  2. 使用vhd-util创建符合要求大小的vhd虚拟磁盘
  3. 启动qemu-kvm虚拟机,硬盘格式选VirtIO
    a) 如果是linux shell console用户,注意/etc/libvirt/qemu/${VM_NAME}.xml中的driver type字段应该是vpcbus字段为virtio,如下图
    libvirt config

b) 如果是virt-manager,对应的窗口应该如下图


virt-manager
  1. 通过任何方法,将虚拟机操作系统安装在vhd虚拟磁盘上。对于手头有qemu-kvm虚拟机镜像的朋友,建议不要图省事直接dd拷贝磁盘。这样会使制作出来的vhd磁盘大小直逼raw。建议将源系统打包,然后在分好区的vhd虚拟磁盘中解包,最后装bootloader
  2. 测试镜像是否能在qemu-kvm环境成功运行。如果没有问题,便可以将vhd拷出来,传到Aliyun上了
Trouble shooting

Q: driver type选择vpc后启动虚拟机报错Driver 'vpc' can only be used for read-only devices
A: 这个问题与qemu的配置有关系,需要重新编译qemu

  1. 从这篇有关qemu介绍的文章中可知,默认情况下的vpc格式是只读的,因此不支持制作dynamic vhd的kvm虚拟机镜像
  2. CentOS中支持kvm的qemu主要是通过yum install qemu-kvm安装,该qemu-kvm是不支持vpc的
  3. 手动编译qemu(下载qemu-kvm源码)并将vpc加入configure的--block-drv-rw-whitelist列表,下面是一个例子
```bash
./configure --enable-kvm --block-drv-rw-whitelist=vpc,qcow2
```

    > **注** CentOS中,手动编译的qemu并没有`/usr/libexec/qemu-kvm`(和`yum`安装的有区别)
  1. 安装libvirt virt-install virt-manager等工具,注意一定不要安装qemu-kvmqemu-kvm-ev之类有qemu-kvm字样的包,否则会覆盖手动编译的qemu,成为libvirt首选的emulator
  2. 现在应该可以使用virt-install/virt-manager(GUI)挂载vhd格式的磁盘了
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容