逻辑卷的原理:“榨汁机”
pv ##物理卷 被lv命令处理过的物理分区
vg ##物理卷组 被组装到一起的物理卷
pe ##物理扩展 lvm设备的最小单元,lvm是pe的整数倍
lvm ##逻辑卷 直接使用的设备,可以增大缩减并保持原有数据不变
###lvm的建立###
监控命令 watch -n 1 ‘pvs;vgs;lvs;df -h /mnt’
watch -n 1 ‘pvs;echo ====;vgs;echo ====;lvs;echo ====;df -h /mnt’
1.分区并指定标签为8e
pvcreate /dev/vdb1 创建pv
vgcreate vg0 /dev/vdb1 创建vg
lvcreate -L 20M -n lv0 vg0 创建lvm
mkfs.xfs /dev/vg0/lv0 格式化
mount /dev/vg0/lv0 /mnt/ 挂载
df -h /mnt 查看
lvm拉伸 lvm支持热拉伸
1.当vg中剩余容量充足时
lvextend -L 80M /dev/vg0/lv0 #拉伸设备
xfs_growfs /dev/vg0/lv0 #拉伸文件系统
2.当vg中剩余容量不足时
再次建立分区并指定标签为8e
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2 #拉伸物理卷组
lvextend -L 300M -n /dev/vg0/lv0 #拉伸lvm
xfs_growfs /dev/vg0/lv0
ext4格式支持拉伸和缩减,但不支持热缩减,xfs格式不支持缩减
热意思时在挂载使用设备的同时进行操作
拉伸是先拉伸设备,然后拉伸文件系统
而缩减时优先缩减文件系统,然后缩减设备。
假设你的文件系统中存储了200M文件,如果你先缩减设备成150M,那么剩下的50M文件会损坏。
3.针对ext文件系统的设备的拉伸与缩减
umount /mnt
mkfs.ext4 /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt ###挂载成ext格式
##lvextend -L 250M /dev/vg0/lv0
##resize2fs /dev/vg0/lv0 100M #拉伸/缩减文件系统
umount /mnt/
e2fsck -f /dev/vg0/lv0 ##检查设备
resize2fs /dev/vg0/lv0 100M ##缩减文件系统
lvreduce -L 100M /dev/vg0/lv0 ##缩减设备
mount /dev/vg0/lv0 /mnt/ ##重新挂载
pvdisplay 详细信息
vgreduce vg0 /dev/vdb2 #从vg0中将vdb2缩减掉
vgextend vg0 /dev/vdb2 #将vdb2重新装入vg0中
pvmove /dev/vdb1 /dev/vdb2 (过程中千万不能ctrl+c,会损坏两个设备里的文件) #把vdb1的数据转移到vdb2
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1 #删除vdb1这个pv
###创建lvm的快照###
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt/
如果截取数据大于20M,会损坏设备
dd if=/dev/zero of=/mnt/file bs=1M count=60
会自动卸载掉lv0-backuo,再次挂载会报错
umount /mnt #如果每自动卸载,请手动卸载
lvremove /dev/vg0/lvo-backup
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0 #相当于设备的reset
mount /dev/vg0/lvo-backup /mnt/
删除时先删除快照,再删除原来的本体。
lvremove /dev/vg0/lv0-backup
lvremove /dev/vg0/lv0
vgremove /dev/vg0
pvremove /dev/vdb1