Linux 逻辑卷管理器 LVM
1.lvm
Linux用户安装linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。
而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
2.LVM各类操作
watch -n 1 \
‘echo “=== pvinfo ===”\
;pvs\
;echo “=== vginfo ===”\
;vgs\
;echo === lvinfo ===\
;lvs’
fdisk /dev/vdb ##创建一个分区
pvcreate /dev/vdb1 ##把创建的分区变成pv
vgcreate vg0 /dev/vdb1 ##创建一个vg0,并把pv加入vg0
lvcreate -L 100M -n lv0 vg0 ##创建一个lv0,并由vg0给分配100M空间 -n + name
mkfs.xfs /dev/vg0/lv0 ##格式化lv0
mount /dev/vg0/lv0 /mnt ##挂载
df ##查看挂载
lvextend -L 200M /dev/vg0/lv0 ##增加lv0的空间为200M(vg0给分配的所以不能大于vg0的最大容量)
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统,之前的文件还在
fdisk /dev/vdb ##再创建一个分区(相当于加一块硬盘)
partprobe ##同步分区表
pvcreate /dev/vdb2 ##将新建的分区变成pv
vgextend vg0 /dev/vdb2 ##把新建的pv 加入到vg0中
lvextend -L 1500M /dev/vg0/lv0 ##再次增大lv0的空间
xfs_growfs /dev/vg0/lv0
e2fsck -f /dev/westos/lv0 ##不管文件系统是不是出现问题,强行检测
resize2fs /dev/westos/lv0 550M
lvreduce -L 550M /dev/westos/lv0
pvmove /dev/vdb1 /dev/vdb2(删除pv,要先从lv ,vg删)
mount /dev/vg0/lv0 /mnt ##设备lv0在/mnt挂载着
touch /mnt/file{1..100} ##建立100个file,实际保存在lv0磁盘中
umount /mnt/ ##卸载设备lv0
lvcreate -L 20M -n lv0-kz -s /dev/vg0/lv0 ##生成快照
-L 设置快照大小
-n 设置快照名称
-s 被照的设备
mount /dev/vg0/lv0-kz /mnt ##将快照挂载在/mnt上
ls /mnt
rm -rf /mnt/* ##删除所以文件(文件损坏,需要恢复)
umount /mnt ##卸载快照
lvremove /dev/vg0/lv0-kz ##删除快照
lvcreate -L 20M -n lv0-kz -s /dev/vg0/lv0 ##生成新的快照
mount /dev/vg0/lv0-kz /mnt ##重新挂载(文件恢复到最初)
ls /mnt/
删除lvm:
df ##查看是否有设备挂载
umount /mnt ##卸载设备
lvremove /dev/vg0/lv0-kz ##删除快照
lvremove /dev/vg0/lv0 ##删除lv
vgremove vg0 ##删除vg
pvremove /dev/vdb2 ##删除pv