前言
环境如下:
[root@node08 tmp]# openstack --version openstack 3.0.0 [root@node08 tmp]# ceph --version ceph version 0.2.10 (5a781946763482982879b2aeee27394ff707baf8)
现在有一套新平台需要用原来的镜像,需要通过一些手段将镜像从原来平台导出
查询镜像
使用glance相关命令查询
[root@node01 ~]# source admin-openrc # 加载环境变量,不一定叫这个名字 [root@node01 ~]# glance image-list # 列出镜像ID及name +--------------------------------------+--------------------------+ | ID | Name | +--------------------------------------+--------------------------+ | 654b6324-960e-423a-b1e7-a33ebdc15d85 | centos7.9 | | 08f24900-5ad2-4987-bcf1-7f9b5ec61727 | centos72 | | 469a34a4-4ba6-4fa1-9e7f-8ba7a67963cf | c_7.5 | +--------------------------------------+--------------------------+
导出镜像
导出raw格式
使用glance命令导出raw镜像,不会压缩,镜像大的时候会导出很慢
[root@node01 ~]# glance image-download --file /tmp/test.img 469a34a4-4ba6-4fa1-9e7f-8ba7a67963cf # 上一步查询到的ID [root@node01 ~]# file /tmp/test.img # 查看导出的镜像 /tmp/test.img: # ISO 9660 CD-ROM filesystem data 'Fedora-S-dvd-x86_64-37' (bootable) [root@node01 ~]# ll /tmp/test.img -h -rw-r--r-- 1 root root 12.3G Mar 1 09:15 /tmp/test.img
导出qcow2格式
使用qemu导出镜像,开启16个线程,如果cpu不够可以将-m去掉或者减少线程数量
[root@node01 ~]# qemu-img convert -m 16 rbd:volumes/469a34a4-4ba6-4fa1-9e7f-8ba7a67963cf -c -p -O qcow2 /tmp/test.qcow2 (100.00/100%) # 这里是使用的ceph的rbd卷,指定导出格式为qcow2 [root@node01 ~]# file /tmp/test.qcow2 /tmp/test.qcow2: QEMU QCOW Image (v3), 2459566080 bytes [root@node01 ~]# ll /tmp/{test.qcow2,test.img} -h -rw-r--r-- 1 root root 12.3G Mar 1 09:15 /tmp/test.img -rw-r--r-- 1 root root 2.3G Mar 1 09:20 /tmp/test.qcow2
其他qemu常用命令
创建img
$ qemu-img create -f raw test.img 5G # 创建raw格式的img $ qemu-img create -f qcow2 test.qcow2 10G # 创建qcow2格式的img [root@node01 qemu]# qemu-img info test.img image: test.img file format: raw virtual size: 5.0G (5368709120 bytes) disk size: 0 [root@node01 qemu]# qemu-img info test2.img image: test2.img file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 196K cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false
检查image文件:raw不支持check [root@node01 qemu]# qemu-img check test.img qemu-img: This image format does not support checks [root@andriy qemu]# qemu-img check test2.img No errors were found on the image. Image end offset: 262144
使用qemu转换镜像
$ qemu-img convert -p -f qcow2 -O vmdk .\my_centos7.qcow2 .\my_centos7.vmdk # 将qcow2格式镜像转化为vmdk,转换完成之后就可以导入VMwareworkstation使用了
镜像扩容:只支持raw扩容
[root@node01 qemu]# qemu-img resize raw.img -/+1G [root@node01 qemu]# qemu-img resize raw.img 11G Image resized. [root@node01 qemu]# qemu-img info raw.img image: raw.img file format: raw virtual size: 11G (11811160064 bytes) disk size: 0 [root@node01 qemu]# qemu-img resize raw.img -1G Image resized. [root@node01 qemu]# qemu-img info raw.img image: raw.img file format: raw virtual size: 10G (10737418240 bytes) disk size: 0
快照
# “-l” 选项是查询并列出镜像文件中的所有快照 # “-a snapshot”是让镜像文件使用某个快照# # “-c snapshot”是创建一个快照 # “-d”是删除一个快照。 [root@andriy qemu]# qemu-img snapshot -l qcow2.img [root@andriy qemu]# qemu-img snapshot -c snapshot qcow2.img [root@andriy qemu]# ls qcow2.img raw.img test2.img test.img [root@andriy qemu]# qemu-img snapshot -l qcow2.img Snapshot list: ID TAG VM SIZE DATE VM CLOCK 1 snapshot 0 2017-08-30 15:18:25 00:00:00.000 qemu-img snapshot -a 1 qcow2.img [root@andriy qemu]# qemu-img snapshot -d snapshot qcow2.img