qemu 转换镜像格式

qemu-img是QEMU的磁盘管理工具,在qemu-kvm源码编译后就会默认编译好qemu-img这个二进制文件。

qemu-img也是QEMU/KVM使用过程中一个比较重要的工具,可以用其创建两种格式(raw和qcow2)的虚拟机磁盘。

我们kvm 和openstack 中常用得镜像格式就是raw 或者qcow2 格式得镜像, 一般通常用qcow2 

为什么选择qcow2 镜像? 

"raw" 镜像格式是最最简单的,并且是被 KVM 和 Xen 原生支持的格式,raw唯一的缺点在于,看起来很大,在scp的时候,这会消耗很多的网络IO,而压缩这么大的文件,也是很耗时间和cpu 

qcow2 (QEMU 写时复制版本2)格式通常是KVM使用,使用稀疏文件呈现方式,镜像尺寸小,支持快照。

举个例子: raw 格式就像你邮寄一箱子,这个箱子可以存放十斤得重量得物品,我得箱子里存放了两斤得重量得东西,我在邮寄使用这个箱子都时按照十斤大小去计费。他不会管你实际用了多少,你这个箱子有多大,那我按照你这个最大得来计算。

qocw2 格式,我这个箱子可以存放十斤得重量得物品,但是我只放了两斤,我在邮寄使用就是算这两斤重量,他是按照你实际使用得大小来计算得

raw 格式镜像你看到时多大就是多大

qcow2 格式镜像,随着你对镜像得操作他会动态得增长, 但是他不是无限置得增长。我们镜像都有一个virtual size 这个就是我们镜像得大小得限制

查看镜像大小与格式

qemu-img info   镜像名 

 

qemu-img 转换镜像格式

qemu-img convert -f raw -O qcow2 ubuntu-14.04.6-server-amd64.iso  (初始镜像) ubuntu-14.04.6-server-amd64.qcow2(转换格式后得镜像命名)

扩容镜像大小

qemu-img resize   镜像名    +20G   

缩减镜像大小      (不建议使用,这样可以减少空间但是对系统有损害,可能导致系统直接进入维护模式或者镜像拉不起虚机)

qemu-img  resize 镜像名  -20G

实例

查看镜像得大小和格式

[root@ var]# qemu-img info ubuntu-14.04.6-server-amd64.iso                 
image: ubuntu-14.04.6-server-amd64.iso
file format: raw
virtual size: 632M (662700032 bytes)
disk size: 632M

将镜像有raw 格式转为qcow2 格式
[root@ var]# qemu-img convert -f raw -O qcow2 ubuntu-14.04.6-server-amd64.iso ubuntu-14.04.6-server-amd64.qcow2

检查镜像大小格式
[root@ var]# qemu-img info ubuntu-14.04.6-server-amd64.qcow2
image: ubuntu-14.04.6-server-amd64.qcow2
file format: qcow2
virtual size: 632M (662700032 bytes)    -------镜像总得大小
disk size: 631M              ------镜像使用得实际大小
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false


扩展qcow2 大小
root@cic-0-1:~# qemu-img resize ubuntu-14.04.6-server-amd64.qcow2 +20G
Image resized.
root@cic-0-1:~# qemu-img info ubuntu-14.04.6-server-amd64.qcow2
image: ubuntu-14.04.6-server-amd64.qcow2
file format: qcow2
virtual size: 21G (22137536512 bytes)
disk size: 631M
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false


扩容后lsblk 查看节点新扩容的节点得信息是有显示的。 但是需要将扩容的空间加到我们需要用的分区里

growpart /dev/vda1 将新扩容的空间添加我们需要的分区,但是我们df -TH 检查会发现,分区挂载的目录大小并没有变化,lsblk 查看分区是扩容空间后的大小,检查没有问题

resize2fs /dev/vda1    在线调整分区大小(df TH 是会发现分区挂载的目录大小是增大了)

原文地址:https://www.cnblogs.com/yk0625/p/14025720.html