Red Hat Training

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

5.4. 从逻辑卷中删除磁盘

这些示例步骤演示了如何从现有逻辑卷中删除磁盘,可以是替换磁盘,或使用磁盘作为不同卷的一部分。要删除磁盘,您必须首先将 LVM 物理卷中的扩展移动到不同的磁盘或者一组磁盘中。

5.4.1. 将扩展移动到现有物理卷中

在本例中,逻辑卷分布在卷组 myvg 中的四个物理卷中。
# pvs -o+pv_used
  PV         VG   Fmt  Attr PSize  PFree  Used
  /dev/sda1  myvg lvm2 a-   17.15G 12.15G  5.00G
  /dev/sdb1  myvg lvm2 a-   17.15G 12.15G  5.00G
  /dev/sdc1  myvg lvm2 a-   17.15G 12.15G  5.00G
  /dev/sdd1  myvg lvm2 a-   17.15G  2.15G 15.00G
这个示例将扩展从 /dev/sdb1 中移出,以便它可以从卷组中删除。
  1. 如果卷组中其他物理卷中有足够的可用扩展,您可以在您要删除的设备上执行 pvmove 命令,而无需其他选项,且扩展将分发到其他设备中。
    # pvmove /dev/sdb1
      /dev/sdb1: Moved: 2.0%
     ...
      /dev/sdb1: Moved: 79.2%
     ...
      /dev/sdb1: Moved: 100.0%
    
    执行 pvmove 命令后,扩展分布如下:
    # pvs -o+pv_used
      PV         VG   Fmt  Attr PSize  PFree  Used
      /dev/sda1  myvg lvm2 a-   17.15G  7.15G 10.00G
      /dev/sdb1  myvg lvm2 a-   17.15G 17.15G     0
      /dev/sdc1  myvg lvm2 a-   17.15G 12.15G  5.00G
      /dev/sdd1  myvg lvm2 a-   17.15G  2.15G 15.00G
    
  2. 使用 vgreduce 命令从卷组中删除物理卷 /dev/sdb1
    # vgreduce myvg /dev/sdb1
      Removed "/dev/sdb1" from volume group "myvg"
    # pvs
      PV         VG   Fmt  Attr PSize  PFree
      /dev/sda1  myvg lvm2 a-   17.15G  7.15G
      /dev/sdb1       lvm2 --   17.15G 17.15G
      /dev/sdc1  myvg lvm2 a-   17.15G 12.15G
      /dev/sdd1  myvg lvm2 a-   17.15G  2.15G
    
该磁盘现在可以物理删除或者分配给其他用户。

5.4.2. 将扩展移动到新磁盘中

在本例中,逻辑卷分布在卷组 myvg 中的三个物理卷中,如下所示:
# pvs -o+pv_used
  PV         VG   Fmt  Attr PSize  PFree  Used
  /dev/sda1  myvg lvm2 a-   17.15G  7.15G 10.00G
  /dev/sdb1  myvg lvm2 a-   17.15G 15.15G  2.00G
  /dev/sdc1  myvg lvm2 a-   17.15G 15.15G  2.00G
这个示例步骤将 /dev/sdb1 的扩展移到新设备 /dev/sdd1 中。
  1. /dev/sdd1 创建新物理卷。
    # pvcreate /dev/sdd1
      Physical volume "/dev/sdd1" successfully created
    
  2. 将新物理卷 /dev/sdd1 添加到现有卷组 myvg 中。
    # vgextend myvg /dev/sdd1
      Volume group "myvg" successfully extended
    # pvs -o+pv_used
      PV         VG   Fmt  Attr PSize  PFree  Used
      /dev/sda1   myvg lvm2 a-   17.15G  7.15G 10.00G
      /dev/sdb1   myvg lvm2 a-   17.15G 15.15G  2.00G
      /dev/sdc1   myvg lvm2 a-   17.15G 15.15G  2.00G
      /dev/sdd1   myvg lvm2 a-   17.15G 17.15G     0
    
  3. 使用 pvmove 命令将数据从 /dev/sdb1 移到 /dev/sdd1
    # pvmove /dev/sdb1 /dev/sdd1
      /dev/sdb1: Moved: 10.0%
    ...
      /dev/sdb1: Moved: 79.7%
    ...
      /dev/sdb1: Moved: 100.0%
    
    # pvs -o+pv_used
      PV          VG   Fmt  Attr PSize  PFree  Used
      /dev/sda1   myvg lvm2 a-   17.15G  7.15G 10.00G
      /dev/sdb1   myvg lvm2 a-   17.15G 17.15G     0
      /dev/sdc1   myvg lvm2 a-   17.15G 15.15G  2.00G
      /dev/sdd1   myvg lvm2 a-   17.15G 15.15G  2.00G
    
  4. 将数据移出 /dev/sdb1 后,您可以将其从卷组中删除。
    # vgreduce myvg /dev/sdb1
      Removed "/dev/sdb1" from volume group "myvg"
    
现在您可以将磁盘重新分配给另一个卷组,或者将其从系统中删除。