磁盘镜像qcow2

常见的镜像格式

Supported formats: vvfat vpc vmdk vhdx vdi ssh sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd iscsi gluster dmg tftp ftps ftp https http cloop bochs blkverify blkdebug

qemu-img指令

语法

Command syntax:
  check [-q] [-f fmt] [--output=ofmt] [-r [leaks | all]] [-T src_cache] filename
  create [-q] [-f fmt] [-o options] filename [size]
  commit [-q] [-f fmt] [-t cache] filename
  compare [-f fmt] [-F fmt] [-T src_cache] [-p] [-q] [-s] filename1 filename2
  convert [-c] [-p] [-q] [-n] [-f fmt] [-t cache] [-T src_cache] [-O output_fmt] [-o options] [-s snapshot_name] [-S sparse_size] filename [filename2 [...]] output_filename
  info [-f fmt] [--output=ofmt] [--backing-chain] filename
  map [-f fmt] [--output=ofmt] filename
  snapshot [-q] [-l | -a snapshot | -c snapshot | -d snapshot] filename
  rebase [-q] [-f fmt] [-t cache] [-T src_cache] [-p] [-u] -b backing_file [-F backing_fmt] filename
  resize [-q] filename [+ | -]size
  amend [-q] [-f fmt] [-t cache] -o options filename

RAW Image

  • 格式简单,性能较好

创建image

qemu-img  create -f raw raw.img 1G
dd if=/dev/zero of=flat1.img bs=1024k count=1000

qcow2的格式

2-Level loopup

  • qcow2的数据是存储在data clusters里面的,每个cluster是512 byte sector
  • 为了能够管理这些clusterqcow2保存了两层的TableL1 table指向L2TableL2 Table管理data cluster.
  • image里面的offset会被解析成三部分,L1 Table Pointer先找L1,L1 Table Pointer+ offset[0]L1中的一个entry读出来便是L2 Table Pointer, L2 Table Pointer + offset[1]L2中的一个entry读出来便是data cluster pointer, data cluster pointer +offset[3]便是数据所在的位置。

Copy-on-write

  • backing file就是基于这个原理的用处,一个qcow2的image可以保存另一个disk image的改变,而不影响另一个image
  • 创建后端盘
    • qemu-img create -f qcow2 -b /var/lib/libvirt/images/centos7.0-1.qcow2 test.qcow2
    • 一开始新的image是空的,读取的内容都从老的image里面读取。
    • 当一个data cluster被写入,发生改变的时候,在新的image里面创建一个新的data cluster,这就是copy on write的意义。

基于后端盘创建虚拟机

  • 基于test.qcow2创建一个虚拟机
    • qemu-system-x86_64 test.qcow2
  • 在虚拟机里面创建一个100M的文件
    • dd if=/dev/zero of=tmp.img bs=1024k count=100
qemu-system-x86_64是QEMU模拟器的一个命令行工具,用于模拟64位x86架构的系统

镜像格式转换

  • raw可以转换为qcow2
    • 创建一个raw image: dd if=/dev/zero of=flat.img bs=1024k count=1000
    • 进行转换: qemu-img convert -f raw -O qcow2 flat.img flat.qcow2
  • qcow2可以转换为raw
  • qcow2也可以转换为qcow2,转换的过程中,没用的data cluster就被去掉
    • qemu-img convert -f qcow2 -O qcow2 src.img dst-convert.img

镜像压缩

qemu-img convert -c -f qcow2 -O qcow2 src.img dst-compress.qcow2

镜像加密

qemu-img convert -o encryption -f qcow2 -O qcow2 src.qcow2 dst-encrypt.qcow2

镜像扩容

qemu-img resize test.qcow2 +10G
growpart /dev/vda 1  //扩容vda1分区空间
xfs_growfs /dev/vda1  //扩展vda1分区中的xfs文件系统大小
resize2fs /dev/sda1  //如果文件系统是ext2/ext3/ext4,通过此命令调整文件系统的大小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值