Centos Xen 调整 DomU 分区和卷组的大小

Centos Xen 调整 DomU 分区和卷组的大小

我有一个像这样的设置:

      Dom0 LV
         |
 DomU Physical Disk
    |           |
  XVDA1       XVDA2
 (/boot)    (DomU PV)
                |
            VolGroup00
            (DomU VG)
            |        |
      LogVol00       LogVol01
       (swap)         (/)

我正在尝试调整 DomU 根文件系统的大小。(VolGroup00-LogVol01)我意识到我现在需要调整分区 XVDA2 的大小,但是当我尝试使用 Dom0 上的 parted 执行此操作时,它只会告诉我“错误:无法检测文件系统”。

因此,要调整根部分 VolGroup-LogVol00 的大小,过程不应该是:

# Shut down DomU
xm shutdown domU

#Resize Dom0 Logical volume
lvextend -L+2G /dev/volumes/domU-vol

# Parted 
parted /dev/volumes/domU-vol

# Resize root partition
resize 2 START END

(This is where I get an error) "Error: Could not detect file system."


# add the vm volume group to Dom0 lvm
kpartx -a /dev/volumes/domU-vol

# resize the domU PV
pvresize /dev/mapper/domU-pl (as listed in pvdisplay)

# The domU volume group should automatically adjust
# resize the DomU lv
lvextend -L+2G /dev/VolGroup/LogVol00

然后显然增加 fs,从 kpartx 等中删除设备

问题是我不知道如何调整分区大小?如何调整此分区的大小以便能够在 DomU 上运行 pvresize?

谢谢

答案1

以下是我大致遵循的调整内部使用 LVM 的 KVM 客户机大小的步骤。

  1. 关闭虚拟机
  2. 为客户的“图像文件”添加更多空间(例如:cat old.img 10G_addon.raw >> new.img
  3. 启动虚拟机(使用新创建的 new.img)
  4. 在虚拟机内运行 fdisk 并删除并重新创建 LVM 分区

    % fdisk /dev/vda
    ...
    Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *           1          13      104391   83  Linux
    /dev/vda2              14        3263    26105625   8e  Linux LVM
    
    Command (m for help): d
    Partition number (1-4): 2
    
    Command (m for help): p
    
    Disk /dev/vda: 48.3 GB, 48318382080 bytes
    255 heads, 63 sectors/track, 5874 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
    Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *           1          13      104391   83  Linux
    
    Command (m for help): n 
    Command action
      e   extended
      p   primary partition (1-4)
    p
    Partition number (1-4): 2
    First cylinder (14-5874, default 14): 14
    Last cylinder or +size or +sizeM or +sizeK (14-5874, default 5874): 
    Using default value 5874
    
    Command (m for help): p
    
    Disk /dev/vda: 48.3 GB, 48318382080 bytes
    255 heads, 63 sectors/track, 5874 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
    Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *           1          13      104391   83  Linux
    /dev/vda2              14        5874    47078482+  83  Linux
    
    Command (m for help): t
    Partition number (1-4): 2
    Hex code (type L to list codes): 8e
    Changed system type of partition 2 to 8e (Linux LVM)
    
    Command (m for help): p
    
    Disk /dev/vda: 48.3 GB, 48318382080 bytes
    255 heads, 63 sectors/track, 5874 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
    Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *           1          13      104391   83  Linux
    /dev/vda2              14        5874    47078482+  8e  Linux LVM
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    
    WARNING: Re-reading the partition table failed with error 16: Device or 
    resource busy.
    The kernel still uses the old table.
    The new table will be used at the next reboot.
    Syncing disks.
    %
    
  5. 重启虚拟机

  6. 调整 LVM 物理卷的大小

    % pvdisplay 
      --- Physical volume ---
      PV Name               /dev/vda2
      VG Name               VolGroup00
      PV Size               24.90 GB / not usable 21.59 MB
      Allocatable           yes (but full)
      PE Size (KByte)       32768
      Total PE              796
      Free PE               0
      ...
    
    % pvresize /dev/vda2
    
    % pvdisplay
      --- Physical volume ---
      PV Name               /dev/vda2
      VG Name               VolGroup00
      PV Size               44.90 GB / not usable 22.89 MB
      Allocatable           yes 
      PE Size (KByte)       32768
      Total PE              1436
      Free PE               640
      ...
    
  7. 调整 LVM 逻辑卷的大小

      % lvresize /dev/VolGroup00/LogVol00 -l +640
      Extending logical volume LogVol00 to 43.88 GB
      Logical volume LogVol00 successfully resized
    
  8. 扩大文件系统

      % resize2fs /dev/VolGroup00/LogVol00 
      resize2fs 1.39 (29-May-2006)
      Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
      Performing an on-line resize of /dev/VolGroup00/LogVol00 to 11501568 (4k) blocks.
      The filesystem on /dev/VolGroup00/LogVol00 is now 11501568 blocks long.
    

以上是我的例子,但我遵循了此步骤网站

答案2

因此,澄清一下:您需要调整 VM 内的根 LV 的大小,但 VG 已满,因此您首先需要调整 PV 所在的物理分区的大小?假设这是正确的,我们继续...

我很惊讶 parted 会对 dom0 分区如此不满。从它的角度来看,它只是一个正在使用的 LVM PV。不过,我对 parted 一直没有特别的印象,我只是坚持使用老旧的 fdisk。

无论如何,在磁盘正在使用时,您可能很难调整分区大小,因为重新扫描已安装文件系统上的分区表是……棘手的。最好关闭虚拟机并从 dom0 执行所有操作。

我建议完全跳过分区,使用 LVM 完成所有操作;我也不喜欢在我的虚拟机中使用 LVM,因为它们的 I/O 吞吐量本来就很差。只需从 dom0 为虚拟机中的分区附加一堆 LV 即可——这也使复制更容易,因为您通常不想复制交换(除非您正在进行实时迁移,但无论如何,这只是另一个需要复制的块设备)。

答案3

相关内容