需要知道:
LVM是linux环境下对磁盘分区的管理的一种机制,是在Linux2.4内核实现可以解决普通的磁盘分区管理方式在逻辑分区建立好以后就无法改变其大小,当一个逻辑分区放不下某个文件时,这个文件受上层文件系统的限制,不能跨越多个分区来存放,不能同时放在别的磁盘上,而遇到出现某个分区空间耗尽时解决办法通常是使用符号链接,或者使用调整分区大小的工具,只是暂时解决,治标不治本。
pv | 物理卷,物理分区 |
---|---|
vg | 物理卷组 |
lv | 逻辑卷 |
PE | 物理块,lvm设备最小存储单元 |
LE | 逻辑块 |
lvm | 逻辑卷,直接使用 |
一、建立lvm 逻辑卷
步骤方法:
重置reset 虚拟机
1.开启监控命令:
watch -n 1 'pvs;echo====;vgs;echo====;lvs;echo====;df -h /weixindata'
2.建立目标目录:
mkdir /weixindata
3.查看fdisk -l
4.划分一个主分区 fdisk /dev/vdb
1G
6.创建物理分区:pvcreate /dev/vdb1
7.创建物理卷组 :vgcreate vg0 /dev/vdb1
8.创建逻辑卷: lvcreate -L 200M -n lv0 vg0
9.格式化/dev/vg0/lv0 : mkfs.xfs /dev/vg0/lv0/dev
10.挂载: mount /dev/vg0/lv0 /weiixndata
11.
. ll /dev/mapper/vg0-lv0
12. ll /dev/vg0/lv0
二、拉伸lvm
xfs不支持缩减,ext4可以缩减
情况一:划分的主分区够用时直接拉伸
1.拉伸lv:lvextend -L 500M /dev/vg0/lv0
2.同步文件拓展:xfs_growfs /dev/vg0/lv0lv
情况二:不够用添加一块新的
1.利用 fdisk /dev/vdb
2.partprobe 同步分区表生效df
3.pvcreate /dev/vdb2
加入新的Pv
4. 拓展vg (将汁倒入大杯子)vgextend vg0 /dev/vdb2
5.拉伸Lv lvextend -L 1500M /dev/vg0/lv0
6.拉伸文件系统: xfs_growfs /dev/vg0/lv0
拉伸ext4文件:
1.将之前的挂载解挂
2.格式化为ext4格式: mkfs.ext4 /dev/vg0/lv0
3.挂载: mount /dev/vg0/lv0 /weixindata
4.扩展lv: lvextend -L 1800M /dev/vg0/lv0
5.文件系统拉伸: resize2fs /dev/vg0/lv0
ext4的缩减:
1.先解挂再扫描 直接缩减可能会损坏: e2fsck -f /dev/vg0/lv0
2.缩减文件系统: resize2fs /dev/vg0/lv0 1500M
3.缩减lv : lvreduce -L 1500M /dev/vg0/lv0
4.挂载: mount /dev/vg0/lv0 /weixindata
将/dev/vdb1转移到/dev/vdb2
:
1.转移文件: pvmove /dev/vdb1 /dev/vdb2
2.缩减vg vgreduce vg0 /dev/vdb1
3.缩减Pv pvremove /dev/vdb1
三、建立Lvm快照:
保护数据,原理同虚拟机原理
1.先解挂 umount /weixindata
2.建立快照: lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
4.挂载快照 : mount /dev/vg0/lv0-backup /weixindata
6.进入目录 cd /weixindata
7.查看 ls
8.建立文件: touch file{1..5}
并查看
9.如果误操作,直接删除,重新快照
四、删除一个lvm(按照建立的逆序分层移)
1.先解挂1
2.移除快照 lvremove /dev/vg0/lv0-backup
3.移除lv lvremove /dev/vg0/lv0
4.移除vg vgremove vg0
5.移除pv pvremove /dev/vdb2
6.删除主分区 fdisk /dev/vdb