简介
Logical Volume Manager(LVM,逻辑卷管理),是在硬盘分区文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,帮文件系统动态管理磁盘。
设计
背景知识
- 物理卷PV(physical volume):物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质比较却包含与LVM相关的管理参数,创建物理卷可以用硬盘分区,也可以用硬盘本身。
- 卷组VG(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,一个卷组VG由一个或多个物理卷PV组成。可以在卷组VG上建立多个逻辑卷LV。
- 逻辑卷LV(logical volume):通过将文件系统挂到LV,这个样就跟硬盘关联起来
- 对于文件系统/dir,它只用关联对应的LV,不需要关心它使用的是那块硬盘。
- VG是个存储池,里面由很多个PV组成,它可以面向多个LV提供存储,当VG不够时,可通过添加PV来扩容,LV可以指定大小增加
- 第一次将LV挂到dir时候,dir不能有数据,不然无法mount,需要停应用与备份再拷入,但已使用LVM的话,就可以热添加,只要你的物理插口够用
结合设计,假设VG容量不足,需添加PV并扩容LV,上图的蓝色线部分
#1. 新添加盘后扫盘
rescan-scsi-bus.sh
#查看盘
lsblk
#2. 根据新添加的盘创建PV
pvcreate /dev/sdc
pvs
#3. 已存在VG,添加PV
##根据FS看VG
df -h
#查看VG列表
vgs
vgextend VolGroup00 /dev/sdc
#4. 扩充已经有的LV,可以指定PV或者只关心大小、直接多少G等
lvextend -l +100%FREE /dev/sdc /dev/mapper/VolGroup00-LVvar
#5. 扩容文件系统
xfs_growfs /dev/mapper/VolGroup00-LVvar
#6. 校验
df -h | grep vars
echo "aa" > /vars/test
cat /vars/test
结合设计,已有数据目录,初次创建LVM
#0 停应用,备份
mv xxx xxx_bk
mkdir xxx
#1. 新添加盘后扫盘
rescan-scsi-bus.sh
#查看盘
lsblk
#2. 根据新添加的盘创建PV
pvcreate /dev/sdc
pvs
#3 根据PV创建VG
vgcreate VGlogs /dev/sdc
vgs
#4. 根据VG创建LV,并将所有存储都给对应LV
lvcreate -l 100%VG -n LVlogs VGlogs
lvs
#5. 格式化
mkfs -t ext4 /dev/mapper/VGlogs-LVlogs
#6. 手动挂载
mount /dev/mapper/VGlogs-LVlogs xxxdir
#7. 开机自动挂载,将下面写入/etc/fstab
/dev/mapper/VGlogs-LVlogs xxx ext4 defaults 0 0
#8. 校验
df -h | grep xxx
echo "aa" > /xxx/test
cat /xxx/test
#9 将数据搬进去后,启动应用
mv xxx_bk/* xxx
ll xxx
rm -rf xxx_bk