LVM是建立在磁盘和分区之上,文件系统之下的一个逻辑层,提高了磁盘分区管理的灵活性,注意:启动分区(/boot)不可基于LVM创建,须按照独立分区的形式创建;
前奏:在不重启服务器的情况下,添加磁盘的方法:
1、查看当前已添加的scsi设备,#cat /proc/scsi/scsi
2、添加插入的磁盘#echo "scsi add-single-device a b c d">/proc/scsi/scsi
a是硬盘所在SCSI控制器号(如图a);
b是硬盘所在SCSI通道的编号(如图b一般单通道的就是0,多通道的要看是哪个通道了);
c是硬盘的SCSI ID号(如图c);
d是硬盘的lun号(默认情况都是0,如图d)。
由当前磁盘的a b c d可推出插入的新磁盘的scsi ID号(往后+1即可)如当前磁盘的下一个磁盘为2 0 2 0
回归主题,创建LVM:
1、首先在新添加的空硬盘sdb(添加了3个虚拟硬盘)上创建分区sdb1,sdb2;
#fdisk -l;
#fdisk /dev/sdb;
Command (m for help): n;按照提示完成分区创建
Command (m for help): p
Command (m for help): w;保存分区表
2、创建物理卷
#pvcreate /dev/sdb1 /dev/sdb2 /dev/sdc
3、创建卷组vgtest
# vgcreate vgtest /dev/sdb1 /dev/sdb2 /dev/sdc;默认PE大小为4MB,PE是卷组的最小存储单元.可以通过 –s参数修改大小。
4、创建逻辑卷lvtest,从vgtest中划分3G用来创建(创建好之后,会在/dev/mapper/生成一个软连接名字为”卷组-逻辑卷”/dev/mapper/vgtest-lvtest 同/dev/vgtest/lvtest)
# lvcreate -L 3G -n lvtest vgtest
5、创建文件系统,并挂载到/mnt/test,可写入/etc/fstab实现开机自动挂载(如/dev/vgtest/lvtest /mnt/test ext4 defaults 0 0)
# mkfs.ext4 /dev/vgtest/lvtest
# mount /dev/vgtest/lvtest /mnt/test
6、对逻辑卷lvtest进行扩展,对逻辑卷进行扩展不会影响以前空间的使用,无需卸载文件系统
1)直接将卷组vgtest中的可用容量划一部分给lvtest,
# lvextend -L +1G /dev/vgtest/lvtest
# resize2fs /dev/vgtest/lvtest 同步到文件系统
2)如遇卷组vgtest本身空间不足,可向vgtest新添加一个硬盘/dev/sdd
# vgextend vgtest /dev/sdd
3)如何将可用的逻辑卷空间释放给其他逻辑卷使用
释放逻辑卷空间:
a.卸载当前的逻辑卷
# umount /mnt/test
b.缩减文件系统,要特别注意,文件系统缩减的大小一定要与缩减的逻辑卷大小保持一致
# e2fsck -f /dev/vgtest/lvtest,检测逻辑卷的可用空间
# resize2fs /dev/vgtest/lvtest 2G,缩减到2G
c.缩减逻辑卷到2G
#lvreduce -L 2G /dev/vgtest/lvtest
d.可以重新挂载使用
7、其他命令,pvmove命令转移空间数据(# pvmove /dev/sdb1 /dev/sdb2),vgreduce命令将磁盘或者分区从卷组vgtest中移除(# vgreduce vgtest /dev/sdb1),pvremove命令删除物理卷转换成普通分区(pvremove /dev/sdb1)
8、删除逻辑卷,需先卸载逻辑卷(umount /mnt/test),删除/etc/fstab中之前添加的挂载信息,通过# lvremove /dev/vgtest/lvtest删除逻辑卷,通过# vgremove /dev/vgtest删除卷组