上篇中我们讨论LVM的基本原理和操作,本篇我们继续来演示LVM的常用操作。
4、Logical Volume拓展实验
LVM技术最大的特点在于灵活配置,Logical Volume可以从存储池中动态的进行空间分配和变化。比较常用的做法是分配一个LV给指定的mount point之后,由于数据的变化进行容量管理。
当前logical volume如下:
[root@SimpleLinux voltest01]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 48G 11G 35G 23% /
tmpfs 449M 0 449M 0% /dev/shm
/dev/mapper/VolGrp01-lv1
97M 6.6M 86M 8% /voltest01
如果需要进行空间拓展,可以使用lvextend命令。
[root@SimpleLinux voltest01]# lvextend -L +100M /dev/VolGrp01/lv1
Extending logical volume lv1 to 200.00 MB
Logical volume lv1 successfully resized
[root@SimpleLinux voltest01]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv1 VolGrp01 -wi-ao 200.00M
此时,LVM已经认可lv1容量增加到200M。但是,df文件系统似乎没有认可。
[root@SimpleLinux voltest01]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 48G 11G 35G 23% /
tmpfs 449M 0 449M 0% /dev/shm
/dev/mapper/VolGrp01-lv1
97M 6.6M 86M 8% /voltest01
注意:使用lvm要注意和File System的匹配问题。一些时候处理故障,就是由于两者关系没有处理好。此时需要使用resize2fs进行同步。
[root@SimpleLinux voltest01]# resize2fs /dev/VolGrp01/lv1
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGrp01/lv1 is mounted on /voltest01; on-line resizing required
Performing an on-line resize of /dev/VolGrp01/lv1 to 204800 (1k) blocks.
The filesystem on /dev/VolGrp01/lv1 is now 204800 blocks long.
[root@SimpleLinux voltest01]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 48G 11G 35G 23% /
tmpfs 449M 0 449M 0% /dev/shm
/dev/mapper/VolGrp01-lv1
194M 6.6M 178M 4% /voltest01
我们再次实验进行缩小。当前logical volume的情况如下:
[root@SimpleLinux ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 48G 11G 35G 23% /
tmpfs 449M 0 449M 0% /dev/shm
/dev/mapper/VolGrp01-lv2
985M 18M 918M 2% /voltest2
我们试图将/voltest2对应的logical volume进行缩减。首先需要进行umount动作,之后进行结构调整,最后使用resize2fs进行调整。
[root@SimpleLinux ~]# umount /dev/VolGrp01/lv2
[root@SimpleLinux ~]# e2fsck -f /dev/VolGrp01/lv2
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/VolGrp01/lv2: 11/128000 files (9.1% non-contiguous), 8444/256000 blocks
[root@SimpleLinux ~]# resize2fs /dev/VolGrp01/lv2 600M
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/VolGrp01/lv2 to 153600 (4k) blocks.
The filesystem on /dev/VolGrp01/lv2 is now 153600 blocks long.
上面操作保证了文件系统file system的resize动作。同时还需要进行额外的Logical Volume Resize动作。
[root@SimpleLinux ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv1 VolGrp01 -wi-a- 192.00M
lv2 VolGrp01 -wi-a- 1000.00M
[root@SimpleLinux ~]# lvreduce -L 600M /dev/VolGrp01/lv2
WARNING: Reducing active logical volume to 600.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv2? [y/n]: y
Reducing logical volume lv2 to 600.00 MB
Logical volume lv2 successfully resized
[root@SimpleLinux ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv1 VolGrp01 -wi-a- 192.00M
lv2 VolGrp01 -wi-a- 600.00M
最后将目录加载。
[root@SimpleLinux ~]# mount /dev/VolGrp01/lv2 /voltest2
[root@SimpleLinux ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 48G 11G 35G 23% /
tmpfs 449M 0 449M 0% /dev/shm
/dev/mapper/VolGrp01-lv2
591M 17M 544M 3% /voltest2
5、Logical Volume Group管理
Logical Volume Group就是虚拟的存储池,所有的Logical Volume就在其上进行分配动作。但Group空间不足的时候,就可以进行动态PV(Physical Volume)的添加管理。
--查看当前的volume group对象
[root@SimpleLinux voltest01]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGrp01 2 1 0 wz--n- 9.86G 9.67G
VolGrp02 2 0 0 wz--n- 3.73G 3.73G
--查看当前的physical volume对象
[root@SimpleLinux voltest01]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 VolGrp01 lvm2 a- 8.00G 7.80G
/dev/sdc1 VolGrp01 lvm2 a- 1.87G 1.87G
/dev/sdc2 VolGrp02 lvm2 a- 1.87G 1.87G
/dev/sdc3 VolGrp02 lvm2 a- 1.87G 1.87G
/dev/sdc5 lvm2 -- 1.87G 1.87G
/dev/sdc6 lvm2 -- 3.07G 3.07G
使用vgextend命令可以进行拓展。
[root@SimpleLinux voltest01]# vgextend VolGrp01 /dev/sdc5
Volume group "VolGrp01" successfully extended
[root@SimpleLinux voltest01]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGrp01 3 1 0 wz--n- 11.73G 11.54G
VolGrp02 2 0 0 wz--n- 3.73G 3.73G
[root@SimpleLinux voltest01]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 VolGrp01 lvm2 a- 8.00G 7.80G
/dev/sdc1 VolGrp01 lvm2 a- 1.87G 1.87G
/dev/sdc2 VolGrp02 lvm2 a- 1.87G 1.87G
/dev/sdc3 VolGrp02 lvm2 a- 1.87G 1.87G
/dev/sdc5 VolGrp01 lvm2 a- 1.87G 1.87G
/dev/sdc6 lvm2 -- 3.07G 3.07G
同样,需要进行剔除的时候,也是使用vgreduce命令进行。
[root@SimpleLinux ~]# vgreduce VolGrp01 /dev/sdc5
Removed "/dev/sdc5" from volume group "VolGrp01"
[root@SimpleLinux ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 VolGrp01 lvm2 a- 8.00G 7.22G
/dev/sdc1 VolGrp01 lvm2 a- 1.87G 1.87G
/dev/sdc2 VolGrp02 lvm2 a- 1.87G 1.87G
/dev/sdc3 VolGrp02 lvm2 a- 1.87G 1.87G
/dev/sdc5 lvm2 -- 1.87G 1.87G
/dev/sdc6 lvm2 -- 3.07G 3.07G
6、结论
对实际的运维场景而言,Logical Volume Manager是一种非常实用的工具包。LVM可以实现灵活高效的空间使用和配置。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17203031/viewspace-774121/ ,如需转载,请注明出处,否则将追究法律责任。