lvm的管理
pv ##物理卷
被lv命令处理过的卷
vg ##物理卷组
被组装到一起的物理卷
pe ##图里扩展
lvm设备的最小存储单元lvm时pe的整数倍
lvm ##逻辑卷
直接使用的设备,可以增大所见并保持原有数据不变
lvm建立
1.建立步骤:
watch -n 1 'pvs;echo ==;vgs;echo ==;lvs;echo ==;df -h /mnt' #监控mnt
新建两个分区,这里新建的分区为vdb1,vdb2
将两个分区的类型转化为lvm格式并查看是否修改
退出保存
pvcreate /dev/vdb1 #建立物理卷
pvcreate /dev/vdb2 #建立物理卷
vgcreate vg0 /dev/vdb1 #新建物理卷组命名为vg0
vgextend vg0 /dev/vdb2 #扩展物理卷组
lvcreate -L 200M -n lv0 vg0 #建立新的逻辑卷为200M
mkfs.xfs /dev/vg0/lv0 #将lv0格式化为xfs,只有格式化后才能挂载
mount /dev/vg0/lv0 /mnt #挂载lv0到/mnt下
2.拉伸步骤
当vg中的剩余容量充足时:
lvextend -L 800M /dev/vg0/lv0 #扩展lv0的大小,扩展到800M,看到还剩下200M
xfs_growfs /dev/vg0/lv0 #拉伸文件系统
当vg中的容量不足时:
再次建立分区并修改标签8e
fdisk /dev/vdb #建立新的分区,大小为自己设定,这里设置为1G
修改dvb3的id为8e
退出保存
partprobe #根据提示更新同步分区
pvcreate /dev/vdb3 #新加物理卷vdb3
vgextend vg0 /dev/vdb3 #拉伸物理卷组
lvextend -L 1500M /dev/vg0/lv0 #扩展lv0的大小,扩展到1500M
xfs_growfs /dev/vg0/lv0 #格式化
lvextend -L 1800M /dev/vg0/lv0
umount /mnt #卸载/dev/mapper/vg0-lv0
mkfs.ext4 /dev/vg0/lv0 #很重要,更改文件格式
mount /dev/vg0/ /mnt #再次挂载就会看到lv0的大小已经改变
df #查看分区挂载信息
resize2fs /dev/vg0/lv0
3.缩减步骤
缩减lvm
umount /mnt #卸载挂载在mnt上的设备
e2fsck -f /dev/vg0/lv0 #
resize2fs /dev/vg0/lv0 1000M
mount /dev/vg0/lv0 /mnt #挂载到/mnt下,可看到大小变为了1000M
lvreduce -L 1000M /dev/vg0/lv0
删除vg
pvmove /dev/vdb2 /dev/vdb3 #将vdb2中的文件全部移至vd3
vgreduce vg0 /dev/vdb2 将vdb2从vg0组中删除
删除pv
pvremove /dev/vdb2 将vdb2从物理卷中摘除
4.创建lv0的快照
cd /mnt #进入到mnt目录下
touch file{1..5} #在母盘中建立五个文件file1到file5
cd #回到根目录下
umount /mnt #卸载
lvcreate -L 50M -n /dev/vg0/lv0_snap -s #建立一个大小为50M的名为lv0_snap -s的快照
mount /dev/vg0/lv0_snap /mnt #挂载快照到mnt下
cd /mnt
ls #查看mnt目录下的文件,发现快照和母盘的内容一模一样
umount /mnt/ #卸载mnt下挂载的快照
lvremove /dev/vg0/lv0_snap #移除快照
5.lvm的删除
lvremove /dev/vg0/lv0
vgremove /dev/vg0
pvremove /dev/vdb1
pvremove /dev/vdb3
fdisk /dev/vdb