#####################
lvm逻辑卷####################
#
##LVM逻辑卷的简述
Linux LVM是linux逻辑卷管理(Logical Volume Manager)的缩写,在我们日常工作中,如果磁盘的大小固定为100G,那么我们只能在该磁盘存储小于或者等于100G的文件,我们引入LVM的概念就相当于我们要建立文件系统的盘不是传统的物理盘上,而是建立在一个叫LV逻辑卷上面,而且这个LV逻辑卷的空间可以扩展和缩小,在空间不足时我们只用添加逻辑卷的容量来实现扩容,从而满足很多的信息存储需求。
##LVM逻辑卷的定义
PV物理卷:就是物理空间的意思,其实就是指一个磁盘分区,比如/dev/vdb1 VG物理卷组:就是一个pool,有多个PV组成,可以动态向VG中添加PV,使整个VG空间增大,也可以缩小这个VG。 LVm逻辑卷:就是linux用来建立一个文件系统的空间,这个空间来源于VG,大小随意,可以扩展。
##LVM逻辑卷的建立
新建两个分区,改变分区id为8e(lvm) watch -n 1 'pvs;echo====;vgs;echo====lvs;df -h /date' ##监控命令
mkdir /redhat##新建一个挂载目录 pvcreate /dev/vdb1 ##将物理硬盘分区初始化为物理卷,以便lvm使用
vgcreate vg0 /dev/vdb1 ##创建lvm卷组 起名为vg0
lvcreate -L 50M -n lv0 vg0 ##创建50M大小的名字为lv0的lvm逻辑卷(使用的卷组为vg0) mkfs.xfs /dev/vg0/lv0 ##格式化
mount /dev/vg0/lv0 /redhat ##挂载
lvextend -L 80M /dev/vg0/lv0 ##修改逻辑卷大小 xfs_growfs /dev/vg0/lv0 ##做改变操作后需要同步文件
##LVM逻辑卷拉伸设备
当需要拉伸的逻辑卷大小超过了卷组大小,则需要给卷组做拉伸
pvcreate /dev/vdb2 ## 将物理硬盘vdb2分区初始化为物理卷 vgextend vg0 /dev/vdb2 ##将物理卷加到vg0卷组中
lvextend -L 180M /dev/vg0/lv0 ##修改逻辑卷大小 xfs_growfs /dev/vg0/lv0 ##做改变操作后需要同步文件
##LVM缩减卷组大小
如果想删除卷组里的设备,必须在挂载之前将lvm卷格式改为.ext4格式
umount /date mkfs.ext4 /dev/vg0/lv0
mount /dev/vg0/lv0 /redhat/ #挂载
lvextend -L 250M /dev/vg0/lv0 #拉神 resize2fs /dev/vg0/lv0
#resize2fs命令用来增大或缩小未加载的文件系统的大小,如果文件系统处于挂载状态,则它只能做扩容
umount /redhat/ #卸载挂载 e2fsck -f /dev/vg0/lv0 #扫描
resize2fs /dev/vg0/lv0 20M#缩减系统文件大小
mount /dev/vg0/lv0 /redhat/ #挂载 lvreduce -L 20M /dev/vg0/lv0 #缩减lvm卷占用的大小
#如果想要删除正在使用的物理卷,则需要将使用的物理卷同步到另一个物理卷 pvmove /dev/vdb1 /dev/vdb2 vgreduce vg0 /dev/vdb1 #将vdb1物理卷从vg0卷组中删除
##lvm的快照
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 ##给/dev/vg0/lv0拍快照 mount /dev/vg0/lv0-backup /mnt/ ##将快照挂载到/mnt/里
测试:
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 ##拍张快照 mount /dev/vg0/lv0-backup /mnt/ ##挂载
touch /mnt/file{4..6} ls /mnt/ ##查看/mnt/ 看之前的文件是否存在
umount /mnt/ ##卸载快照挂载
##删除逻辑卷
删除lvm卷的顺序跟建立lvm卷的顺序相反 umount /mnt umount /redhat ##卸载挂载 lvremove /dev/vg0/lv0-backup ##删除快照 Do you really want to remove active logical volume lv0-backup? [y/n]: y Logical volume "lv0-backup" successfully removed lvremove /dev/vg0/lv0 ##删除lvm卷 Do you really want to remove active logical volume lv0? [y/n]: y Logical volume "lv0" successfully removed vgremove vg0 ##删除卷组 Volume group "vg0" successfully removed pvremove /dev/vdb1 ##删除物理卷1 Labels on physical volume "/dev/vdb1" successfully wiped pvremove /dev/vdb2 ##删除物理卷2 Labels on physical volume "/dev/vdb2" successfully wiped pvs ##查看