23.逻辑卷综合应用

作者:码农 | 发布时间:

1.扩展逻辑卷

  • 步骤1:扩展卷组——添加/dev/sdc1物理卷到vg01中

[root@linux ~]# vgs  vg01    //显示扩展前卷组vg01的容量

  VG  #PV  #LV  #SN  Attr  VSize   VFree

  vg01  2  1  0  wz--n-  9.99g  504.00m

[root@linux ~]# vgextend  vg01  /dev/sdc1  //将物理卷/dev/sdc1添加到卷组vg01

  Volume group "vg01" successfully extended

[root@linux ~]# vgs  vg01  //显示扩展后卷组vg01的容量

  VG  #PV  #LV  #SN  Attr   Vsize  VFree

  vg01  3  1  0  wz--n-  14.99g  3.49g

  • 步骤2:在线扩展逻辑卷

[root@linux ~]# lvs  /dev/vg01/lv01    //查看扩容前逻辑卷的容量

  LV  VG      Attr   LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

  lv01  vg01   -wi-ao----  2.50g

[root@linux ~]# lvextend  -L  +3G  /dev/vg01/lv01  //将逻辑卷lv01的容量增加3GB

  Size of logical volume vg01/lv01 changed from 2.50 GiB (640 extents) to 5.50 GiB (1408 extents).

  Logical volume vg01/lv01 successfully resized.

[root@linux ~]# lvs  /dev/vg01/lv01    //查看扩容后逻辑卷的容量

  LV  VG       Attr  LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

  lv01  vg01    -wi-ao----  5.50g

  • 步骤2:在线扩展逻辑卷

注意:虽然用lvs看到逻辑卷/dev/vg01/lv01由2.5GB扩大到5.5GB,但用df –hT查看逻辑卷的大小还是2.5GB,这说明扩容后的逻辑卷还未被挂载点上的文件系统识别。

[root@linux ~]# df  -hT  /home/mylv

文件系统              类型  容量  已用  可用  已用%  挂载点

/dev/mapper/vg01-lv01    xfs   2.5G   33M  2.5G    2%  /home/mylv

  • 对于xfs格式的文件系统,可使用“xfs_growfs 挂载点目录”命令在不需离线(卸载逻辑卷)的情况下将扩展后的逻辑卷扩展到挂载点上,对于ext2/3/4格式的文件系统,可使用“resize2fs 逻辑卷名称”命令将扩展后的逻辑卷扩展到挂载点上。

[root@linux ~]# xfs_growfs  /home/mylv  //让系统重新识别文件系统的大小

……//省略若干显示行

[root@linux ~]# df  -hT  /home/mylv  //查看重新识别文件系统后逻辑卷的容量

文件系统               类型  容量  已用  可用 已用%  挂载点

/dev/mapper/vg01-lv01     xfs   5.5G  33M  5.5G    1%  /home/mylv

[root@linux ~]# cat  /home/mylv/zhang3.txt

I  am  zhang3  //此行表明扩展前存储的文件在扩展后未被破坏

2.缩小逻辑卷

  • 步骤1:缩小逻辑卷的容量——(先缩小文件系统,再缩小逻辑卷)

对于ext2/3/4格式的文件系统,不仅可以扩展空间,还可以在离线状态下(卸载逻辑卷)缩小空间。xfs文件系统只能扩展不能缩小空间。为此,将现有5.5GB的逻辑卷lv01卸载后转换为ext4格式,然后缩小1.5GB,其操作过程如下:

[root@dyzx ~]# umount  /dev/vg01/lv01  //卸载逻辑卷以便重新格式化

[root@dyzx ~]# mkfs  -t  ext4  /dev/vg01/lv01  //使用ext4文件系统格式化逻辑卷lv01

[root@dyzx ~]# lvs  /dev/vg01/lv01    //查看缩小前的逻辑卷

  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv01  vg01 -wi-a-----    5.50g

[root@dyzx ~]# mount  /dev/vg01/lv01  /home/mylv

[root@dyzx ~]# echo  "I  am  zhang3" > /home/mylv/zhang3.txt

[root@dyzx ~]# umount  /dev/vg01/lv01  //卸载逻辑卷

[root@dyzx ~]# e2fsck  -f  /dev/vg01/lv01  //强制检查并修复逻辑卷

[root@dyzx ~]# resize2fs  /dev/vg01/lv01  4G  //重新定义文件系统的大小为4GB

[root@dyzx ~]# lvreduce  -L  -1.5G  /dev/vg01/lv01   //将逻辑卷lv01的容量减少1.5GB

[root@dyzx ~]# lvs  /dev/vg01/lv01  //查看缩小后的逻辑卷

  LV   VG     Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv01  vg01 -wi-a-----    4.00g

[root@dyzx ~]# mount  /dev/vg01/lv01  /home/mylv     //挂载容量缩小后的逻辑卷

[root@dyzx ~]# cat  /home/mylv/zhang3.txt

I  am  zhang3         //逻辑卷缩小后所存储的文件未被破坏

  • 步骤2:缩小卷组(将物理卷从卷组中移去)

要将一个物理卷从卷组中移去,首先要确认该物理卷有没有存储数据(可使用pvs命令查看),若存储了数据则数据备份到其他地方后再移去。

[root@dyzx ~]# pvs

  PV        VG     Fmt  Attr    Psize  PFree

  /dev/sda2    rhel  vm2  a--      19.50g  0

  /dev/sdb5    vg01  lvm2  a--      1020.00m  0

  /dev/sdb6    vg01  lvm2  a--      2.00g  0

  /dev/sdc1    vg01  lvm2  a--      3.00g  1.99g

[root@dyzx ~]# pvmove  /dev/sdb6  /dev/sdc1  //将/dev/sdb6上的数据迁移到/dev/sdc1

  /dev/sdb6: Moved: 23.14%

  /dev/sdb6: Moved: 100.00%

[root@dyzx ~]# pvs

[root@dyzx ~]# vgreduce  vg01  /dev/sdb6  //将物理卷/dev/sdb6从卷组vg01中移去

[root@dyzx ~]# pvs

  PV       VG  Fmt  Attr     Psize    PFree

  /dev/sda2    rhel  lvm2  a--       19.50g    0

  /dev/sdb6  lvm2  ---        1020.00m    1020.00m   //此处的/dev/sdb6已从卷组中移除了

  /dev/sdb7    vg01  lvm2  a--         2.00g     0

  /dev/sdc1    vg01  lvm2  a--         3.00g     1016.00m

3.删除逻辑卷、卷组、物理卷

  • 步骤1:删除逻辑卷

[root@dyzx ~]# umount  /dev/vg01/lv01  //卸载逻辑卷

[root@dyzx ~]# lvremove  /dev/vg01/lv01    //删除逻辑卷

Do you really want to remove active logical volume vg01/lv01? [y/n]: y

  Logical volume "lv01" successfully removed

[root@dyzx ~]# lvs   lv01

  Volume group "lv01" not found

  Cannot process volume group lv01

步骤2:删除卷组

[root@dyzx ~]# vgremove  vg01

  Volume group "vg01" successfully removed

[root@dyzx ~]# vgs  vg01

  Volume group "vg01" not found

  Cannot process volume group vg01

步骤3:删除物理卷

[root@dyzx ~]# pvremove   /dev/sdb6  //将物理卷/dev/sdb6还原为普通分区

  Labels on physical volume "/dev/sdb6" successfully wiped

[root@dyzx ~]# pvs  /dev/sdb6

  Failed to find physical volume "/dev/sdb6".