准备虚拟机镜像

概述

虚拟机镜像是一个文件,包含了已经完成安装并且可启动操作系统的虚拟磁盘。虚拟机镜像具有不同格式,常见的有raw格式和qcow2格式。qcow2格式镜像相比raw格式,具有占用更小的空间,支持快照、Copy-On-Write、AES加密、zlib压缩等特性,但性能略逊于raw格式镜像。镜像文件的制作借助于qemu-img工具,本节以qcow2格式镜像文件为例,介绍虚拟机镜像制作过程。

制作镜像

制作qcow2格式镜像文件的操作步骤如下:

  1. 安装qemu-img软件包。

    1. # yum install -y qemu-img
  2. 使用qemu-img工具的create命令,创建镜像文件,命令格式为:

    1. $ qemu-img create -f <imgFormat> -o <fileOption> <fileName> <diskSize>

    其中,各参数含义如下:

    • imgFormat:镜像格式,取值为raw, qcow2等。
    • fileOption:文件选项,用于设置镜像文件的特性,如指定后端镜像文件,压缩,加密等特性。
    • f__ileName:文件名称。
    • diskSize:磁盘大小,用于指定块磁盘设备的大小,支持的单位有K、M、G、T,分别代表KiB、MiB、GiB、TiB。

    例如,创建一个磁盘设备大小为4GB、格式为qcow2的镜像文件openEuler-imge.qcow2,命令和回显如下:

    1. $ qemu-img create -f qcow2 openEuler-image.qcow2 4G
    2. Formatting 'openEuler-image.qcow2', fmt=qcow2 size=4294967296 cluster_size=65536 lazy_refcounts=off refcount_bits=16

修改镜像磁盘空间大小

当虚拟机需要更大的磁盘空间时,可以使用qemu-img工具,修改虚拟机镜像磁盘空间的大小,修改方法如下。

  1. 查询当前虚拟机镜像磁盘空间大小,命令如下:

    1. # qemu-img info <imgFiLeName>

    例如,查询openEuler-image.qcow2镜像磁盘空间大小的命令和回显如下,说明该镜像磁盘空间大小为4GiB。

    1. # qemu-img info openEuler-image.qcow2
    2. image: openEuler-image.qcow2
    3. file format: qcow2
    4. virtual size: 4.0G (4294967296 bytes)
    5. disk size: 196K
    6. cluster_size: 65536
    7. Format specific information:
    8. compat: 1.1
    9. lazy refcounts: false
    10. refcount bits: 16
    11. corrupt: false
  2. 修改镜像磁盘空间大小,命令如下,其中imgFiLeName为镜像名称,“+”和“-”分别表示需要增加或减小的镜像磁盘空间大小,单位为K、M、G、T,代表KiB、MiB、GiB、TiB。

    1. # qemu-img resize <imgFiLeName> [+|-]<size>

    例如,将上述openEuler-image.qcow2镜像磁盘空间大小扩展到24GiB,即在原来4GiB基础上增加20GiB,命令和回显如下:

    1. # qemu-img resize openEuler-image.qcow2 +20G
    2. Image resized.
  3. 查询修改后的镜像磁盘空间大小,确认是否修改成功,命令如下:

    1. # qemu-img info <imgFiLeName>

    例如,上述openEuler-image.qcow2镜像磁盘空间已扩展到24GiB,命令和回显如下:

    1. # qemu-img info openEuler-image.qcow2
    2. image: openEuler-image.qcow2
    3. file format: qcow2
    4. virtual size: 24G (25769803776 bytes)
    5. disk size: 200K
    6. cluster_size: 65536
    7. Format specific information:
    8. compat: 1.1
    9. lazy refcounts: false
    10. refcount bits: 16
    11. corrupt: false