逻辑卷管理

前面两章有介绍过分区,但是当磁盘空间不堪重负时,给分区扩容就需要先卸载文件系统,在实际生产中不太方便,所以就用到了逻辑卷。逻辑卷可以在不需要卸载的情况下在线扩容以解决空间不足的问题。逻辑卷大于等于文件系统。 一.首先我们来看逻辑卷的创建流程: 1. pvcreate /dev/sdb1 /dev/sdb2 (创建物理卷,可以多块磁盘,raid,分区创建物理卷) pvs 或者pvdisplay (查看物理卷) 2. vgcreate vggroup /dev/sdb1 /dev/sdb2 (创建卷组vggroup) vgs 或者vgdisplay (查看卷组信息) 3. lvcreate -L 20M -n lvvolume vggroup (创建大小为20M的逻辑卷) lvs 或者lvdisplay (查看逻辑卷) 4. mkfs.ext4 /dev/vggroup/lvvolume (格式化逻辑卷,注意路径) 5. mount /dev/vggroup/volume /app 二.逻辑卷的在线扩容 情况1:卷组大小足够扩展 方法一: lvextend -L +1G /dev/vgmage/lvlinux31 resize2fs /dev/vgmage/lvlinux31 (因为逻辑卷扩容后不会马上生效) 方法二: lvextend -L 1.5G /dev/vgmage/lvlinux31 -r (xfs,ext文件系统均可用) 情况2:卷组大小不够扩展(扩展卷组) pvcreate /dev/sdj vgextend vggroup /dev/sdj lvextend -L +3G -r /dev/vggroup/lvvolume

XFS lvextend -r -L 1G /dev/vggroup/lvvolume xfs_growfs /dev/vggroup/lvvolume

三.逻辑卷缩小(遇见这样的公司赶紧跑路吧,哈哈) 1.卸载 mount /dev/vggroup/lvvolume 2.扫描 e2fsck -f /dev/vggroup/volume 3.减小文件系统大小 resize2fs /dev/vggroup/lvvolume 200M(size的设定不能小于数据的大小) 4.减小逻辑卷大小 lvreduce -L 200M /dev/vggroup/lvvolume

如果顺序反了,先执行了减逻辑卷,则扩展回去,再重新扫描 lvextend -L 500M /dev/vg_mage/lv_home e2fsck -f /dev/vg_mage/lv_home resize2fs /dev/vg_mage/lv_home 200M lvreduce -L 200M /dev/vg_mage/lv_home

四.重点:将逻辑卷迁移到其他主机 1.增加一个独立文件的虚拟磁盘到源主机 激活磁盘echo '- - -' > /sys/class/scsi_host/host0(2)/scan 2.将该磁盘做为PV,扩展进卷组 pvcreate /dev/vggroup 3.将所有数据都移动到将要拆卸的物理卷上 pvmove /dev/sdb1 /dev/sdk pvmove /dev/sdb2 /dev/sdk ***不可将卷组直接移到新磁盘 4.将源卷组设置为非激活 vgchange -an vggroup 5.如果卷组中除了要拆卸的硬盘外还有其他的PV(物理卷),则进行lvreduce,如没有,直接第6步 vgreduce vggroup /dev/md1 /dev/md5 /dev/sdi /dev/sdj (从卷组中删除) 6.将源卷组设置为export状态 vgexport vggroup 7.拔硬盘,并加到目标主机 新机系统会自动检测到卷组和逻辑卷 8.把vg设置为import vgimport vggroup 9.把卷组设置为激活 lvchange -ay vggroup 10.挂载

五.快照是特殊的逻辑卷,只可以对逻辑卷做快照。逻辑卷快照和需要做快照的逻辑卷必须在同一个卷组里面。

lvcreate -l 64 -s -n lvnmap /dev/vggroup/lvvolume 创建快照 mkdir -p /app/lvnmap
mount -o ro /dev/vggroup/lvnmap /app/lvnmap 挂载快照

umount /app/lvnmap lvremove /dev/vggroup/lvnmap 移除快照