/dev/sdb1
, /dev/sdb2
, 和 /dev/sdb3
确保 LVM 工具已安装。如果没有,请安装它:
yum install lvm2 -y
使用 /dev/sdb1
, /dev/sdb2
, 和 /dev/sdb3
创建物理卷。
pvcreate /dev/sdb1
pvcreate /dev/sdb2
pvcreate /dev/sdb3
pvs
pvdisplay
使用所有三个物理卷创建卷组 myvg
。
vgcreate myvg /dev/sdb1 /dev/sdb2 /dev/sdb3
vgs
vgdisplay
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 3 0 0 wz--n- <14.99g <14.99g
rhel 1 2 0 wz--n- <19.00g 0
[root@localhost ~]# pvcreate /dev/sdb{5,6}
Physical volume "/dev/sdb5" successfully created.
Physical volume "/dev/sdb6" successfully created.
[root@localhost ~]# vgextend myvg /dev/sdb{5,6}
Volume group "myvg" successfully extended
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 5 0 0 wz--n- 18.98g 18.98g
rhel 1 2 0 wz--n- <19.00g 0
[root@localhost ~]# vgreduce myvg /dev/sdb6
Removed "/dev/sdb6" from volume group "myvg"
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 4 0 0 wz--n- 16.98g 16.98g
rhel 1 2 0 wz--n- <19.00g 0
[root@localhost ~]#
创建两个逻辑卷:mylv1
和 mylv2
。
[root@localhost ~]# lvcreate -l 10 -n mylv1 myvg
Logical volume "mylv1" created.
[root@localhost ~]# lvcreate -L 100M -n mylv2 myvg
Logical volume "mylv2" created.
lvs
lvdisplay
格式化新创建的逻辑卷为 ext4
文件系统。
mkfs.ext4 /dev/myvg/mylv1
mkfs.ext4 /dev/myvg/mylv2
创建挂载点并挂载逻辑卷。
[root@localhost ~]# mkdir -p /mydir/mylv1
[root@localhost ~]# mkdir -p /mydir/mylv2
[root@localhost ~]# mount /dev/myvg/mylv1 /mydir/mylv1
[root@localhost ~]# mount /dev/myvg/mylv2 /mydir/mylv2
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root xfs 17G 3.8G 14G 22% /
devtmpfs devtmpfs 897M 0 897M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.0M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 183M 20K 183M 1% /run/user/0
/dev/mapper/myvg-mylv1 ext4 35M 782K 32M 3% /mydir/mylv1
/dev/mapper/myvg-mylv2 ext4 93M 1.6M 85M 2% /mydir/mylv2
扩展 mylv1
的大小。
[root@localhost ~]# lvextend -L +60M /dev/myvg/mylv1
[root@localhost ~]# resize2fs /dev/myvg/mylv1
先卸载逻辑卷,然后检查并调整文件系统大小,最后调整逻辑卷大小。
[root@localhost ~]# umount /mydir/mylv1
[root@localhost ~]# e2fsck -f /dev/myvg/mylv1
[root@localhost ~]# resize2fs /dev/myvg/mylv1 50M
[root@localhost ~]# lvreduce -L -50M /dev/myvg/mylv1
[root@localhost ~]# mount /dev/myvg/mylv1 /mydir/mylv1
[root@localhost ~]# lvs
创建 mylv2
的快照 mysnop
。
[root@localhost ~]# echo "test data" > /mydir/mylv2/newfile
[root@localhost ~]# lvcreate -L 20M -s -n mysnop /dev/myvg/mylv2
[root@localhost ~]# lvs
假设在 mylv2
中写入了一些数据,现在需要恢复到快照时的状态。
[root@localhost ~]# ls /mydir/mylv2/
[root@localhost ~]# rm -rf /mydir/mylv2/newfile
[root@localhost ~]# umount /mydir/mylv2
[root@localhost ~]# lvconvert --merge /dev/myvg/mysnop
[root@localhost ~]# mount /dev/myvg/mylv2 /mydir/mylv2
[root@localhost ~]# ls /mydir/mylv2/
[root@localhost ~]# lvs
当实验完成后,清理创建的所有资源。
umount /mydir/mylv1
umount /mydir/mylv2
lvremove /dev/myvg/mylv1
lvremove /dev/myvg/mylv2
vgremove myvg
pvremove /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5
e2fsck
) 并调整文件系统大小 (resize2fs
)。完成上述步骤后,您应该能够掌握 LVM 的基本管理和操作技巧。请确保在实验过程中记录下重要的输出结果和观察到的现象,以便于后续分析和学习。