*********************
********4.lvm********
*********************
**1.LVM建立**
1.划分物理分区并把id修改为8e【实验是先化两个物理分区,以便一个不够补用,理论上无限,但xfs文件系统最大只能是18eb】
pvs|pvdisplay;;
vgs|vgdisplay
lvs|lvdisplay
watch -n 1 'echo "=== pvinfo ===";pvs;echo "=== vginfo ===";vgs;echo === lvinfo ===;lvs;echo === ;df -h /mnt'【监控命令】
watch -n 1 \【分步写法】
'echo "=== pvinfo ===" \
;pvs \
;echo "=== vginfo ===" \
;vgs \
;echo === lvinfo === \
;lvs'
pvcreate /dev/vdb1【将/dev/vdb1做成一个PV容器】
vgcreate HXL /dev/vdb1【指定vg组为HXL】
lvcreate -L 100M -n lv0 HXL【指定lv0 HXL下的容量为100M,-n,指定名称】
mkfs.xfs /dev/HXL/lv0【将/dev/HXL/lv0 作为xfs文件系统】
mount /dev/HXL/lv0 /mnt/【挂载mnt】
lvextend -L 200M /dev/HXL/lv0【将/dev/HXL/lv0扩展到200M,-L:指定逻辑卷的大小】
xfs_growfs /dev/HXL/lv01【将扩充的不为xfs文件系统的部分进行扩充】
pvcreate /dev/vdb2【建立/dev/vdb2为PV容器】
vgextend HXL /dev/vdb2【指定/dev/vdb2的vg组为HXL】
lvextend -L 2G /dev/HXL/lv0【将/dev/HXL/lv0扩充为2G,因为新加入的/dev/vdb2同组都为HXL,故可以扩充到两个最大容量之和】【理论上可以无限扩充,但xfs文件系统的最大只能是18eb】
umount /mnt/【xsf文件不能缩减,先把它格式化为ext4文件系统】
e2fsck -f /dev/HXL/lv0【检测文件的使用情况,必作,要不然缩减补了】
resize2fs /dev/HXL/lv0 660M【将文件缩小为你所指定的大小】
lvreduce -L 900M /dev/HXL/lv0 【将你的文件设备缩减到900M】
pvmove /dev/vdb2 /dev/vdb1【将/dev/vdb1中的文件全部放在/dev/vdb2中】
vgreduce HXL /dev/vdb2【解除/dev/vdb1的HXL组名】
pvremove /dev/vdb2【移除 /dev/vdb1】
***错误排查***
1.如果在文件容量没有缩小的情况下,你将文件设备缩减到文件容量以下,会导致你下次挂载无法挂载上去
解决 先扩充文件设备容量:lvextend -L 200M /dev/HXL/lv0;在进行挂载
2.如果你在LVM运行的时候删掉了一个磁盘分区,会导致你的功能出现问题
解决 vgreduce --removemissing HXL(就类比与,我将坏掉的牙拔掉了,如果你还想添加,你根据上面的步骤添加就行)
***制作快照****
umount /mnt/【卸载挂载】
lvcreate -L 10M -n lv0-backup -s /dev/HXL/lv0【制作一张快照】
mount /dev/HXL/lv0-backup /mnt/【将制作好的快照挂在mnt下】
如果快照损坏
umount /mnt/【先卸载挂载】
lvremove/dev/HXL/lv0-backup【删除快照】
lvcreate -L 10M -n lv0-backup -s /dev/HXL/lv0【制作一张快照】
mount /dev/HXL/lv0-backup /mnt/【将制作好的快照挂在mnt下】
****所有的删除***
umount /mnt/【删除前先卸载】
lvremove /dev/HXL/lv0-backup【删除它的快照文件】
lvremove /dev/HXL/lv0【删除文件】
vgremove HXL【删除LVM组】
pvremove /dev/vdb1【删除PV容器】
pvs【查看删除结果】 【如果能删除干净,就OK。若不知名原因删除不干净,暂时只能重起了,】
*****查询 expect 命令**** (补录)
来源:oschina
链接:https://my.oschina.net/u/4274555/blog/4317257