Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

21.8.2. 扩展磁盘镜像

本节演示了扩展磁盘镜像的简单情况:
  1. 找到要重新定义的磁盘镜像大小。您可以将 virsh dumpxml GuestName 用于 libvirt 客户机虚拟机。
  2. 决定您要如何扩展 guest 虚拟机。在客户机虚拟机磁盘中运行 virt-df -hvirt-filesystems,如下所示:
    # virt-df -h -a /dev/vg_guests/RHEL6
    Filesystem                      Size       Used  Available  Use%
    RHEL6:/dev/sda1                98.7M      10.0M      83.6M   11%
    RHEL6:/dev/VolGroup00/LogVol00  6.8G       2.2G       4.3G   32%
    
    # virt-filesystems -a disk.img --all --long -h
    /dev/sda1 ext3 101.9M
    /dev/sda2 pv 7.9G
    
以下示例演示了如何进行:
  • 将第一个(引导)分区的大小从大约 100MB 增加到 500MB。
  • 将总磁盘大小从 8GB 增加到 16GB。
  • 扩展第二个分区以填满剩余空间。
  • 展开 /dev/VolGroup00/LogVol00,以在第二个分区中填写新空间。
  1. 确保已关闭 guest 虚拟机。
  2. 将原始磁盘重命名为备份。您这样做的方式取决于原始磁盘的主机物理机器存储环境。如果存储为文件,请使用 mv 命令。对于逻辑卷(在这个示例中所示),请使用 lvrename:
    # lvrename /dev/vg_guests/RHEL6 /dev/vg_guests/RHEL6.backup
  3. 创建新磁盘。本例中的要求可扩展到 16GB 的总磁盘大小。因为这里使用逻辑卷,所以使用以下命令:
    # lvcreate -L 16G -n RHEL6 /dev/vg_guests
    Logical volume "RHEL6" created
    
  4. 此命令表达了第 2 步的要求:
    # virt-resize \
           /dev/vg_guests/RHEL6.backup /dev/vg_guests/RHEL6 \
           --resize /dev/sda1=500M \
           --expand /dev/sda2 \
           --LV-expand /dev/VolGroup00/LogVol00
    
    前两个参数是输入磁盘和输出磁盘。-- resize /dev/sda1=500M 重新定义第一个分区最多 500MB。- expand /dev/sda2 扩展第二个分区以填满所有剩余空间。-LV-expand /dev/VolGroup00/LogVol00 扩大客户端虚拟机逻辑卷到第二个分区中。
    virt-resize 描述了它在输出中执行的操作:
    Summary of changes:
       /dev/sda1: partition will be resized from 101.9M to 500.0M
       /dev/sda1: content will be expanded using the 'resize2fs' method
       /dev/sda2: partition will be resized from 7.9G to 15.5G
       /dev/sda2: content will be expanded using the 'pvresize' method
       /dev/VolGroup00/LogVol00: LV will be expanded to maximum size
       /dev/VolGroup00/LogVol00: content will be expanded using the 'resize2fs' method
       Copying /dev/sda1 ...
       [#####################################################]
       Copying /dev/sda2 ...
       [#####################################################]
       Expanding /dev/sda1 using the 'resize2fs' method
       Expanding /dev/sda2 using the 'pvresize' method
       Expanding /dev/VolGroup00/LogVol00 using the 'resize2fs' method
    
  5. 尝试启动虚拟机。如果它正常工作(在测试后对其进行彻底测试),您可以删除备份磁盘。如果失败,请关闭虚拟机,删除新磁盘,然后将备份磁盘重新重命名为其原始名称。
  6. 使用 virt-dfvirt-filesystems 显示新大小:
    # virt-df -h -a /dev/vg_pin/RHEL6
       Filesystem                      Size       Used  Available  Use%
       RHEL6:/dev/sda1               484.4M      10.8M     448.6M    3%
       RHEL6:/dev/VolGroup00/LogVol00 14.3G       2.2G      11.4G   16%
    
请注意,在某些情况下调整客户机虚拟机的大小可能会出现问题。如果 virt-resize 失败,则可以通过一些提示来查看并尝试在 virt-resize(1)man page 中。对于某些较旧的 Red Hat Enterprise Linux 客户机虚拟机,您可能需要特别注意有关 GRUB 的提示。