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 的扩展,以便可以将其从卷组中删除。
如果在该卷组的其他物理卷中没有足够的剩余扩展,则可以在想要删除的设备中执行不带选项的 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
使用 vgreduce 命令从卷组中删除物理卷 /dev/sdb1
# vgreduce myvg /dev/sdb1
  Removed "/dev/sdb1" from volume group "myvg"
[root@tng3-1 ~]# 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 中。

5.4.2.1. 创建新物理卷

/dev/sdd1 中创建新物理卷。
# pvcreate /dev/sdd1
  Physical volume "/dev/sdd1" successfully created

5.4.2.2. 在卷组中添加新物理卷

/dev/sdd1 添加到现有卷组 myvg 中。
# vgextend myvg /dev/sdd1
  Volume group "myvg" successfully extended
[root@tng3-1]# 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

5.4.2.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%

[root@tng3-1]# 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

5.4.2.4. 删除卷组中的旧物理卷

将数据从 /dev/sdb1 中移走后,就可以将其从卷组中删除。
# vgreduce myvg /dev/sdb1
  Removed "/dev/sdb1" from volume group "myvg"
现在可以将这个磁盘重新分配给其他卷组,或者将其从系统中删除。