Red Hat Training

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

16.8.2. 扩展磁盘镜像

本节演示了扩展磁盘镜像的简单情况:
  1. 找到要调整大小的磁盘镜像。您可以为 libvirt guest 虚拟机使用 virsh dumpxml GuestName 命令。
  2. 决定您需要扩展 guest 虚拟机的方式。在 guest 虚拟机磁盘上运行 virt-df -hvirt-list-partitions -lh,如下所示:
    # virt-df -h /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-list-partitions -lh /dev/vg_guests/RHEL6
    /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-list-partitions 显示新大小:
    # virt-df -h /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%
    
重新定义 guest 虚拟机大小并非精确的科学程度。如果 virt-resize 失败,您可以在 virt-resize(1)man page 中查看和尝试。对于某些较旧的 Red Hat Enterprise Linux 客户机虚拟机,您可能需要特别注意有关 GRUB 的提示。