生产中底层用RAID,上层用LVM组合
LVM
LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷,在存储卷上建立文件系统。
LVM优势就是动态调整容量
名词解释:
名词解释:
物理卷(PV):磁盘分区或从逻辑上与磁盘分区具有相同功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(VG):类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV
逻辑卷(LV):类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统
物理块(PE):
LVM实现过程
#1.创建物理卷(PV)
yum -y install lvm2
#分区需要更改分区类型为LVM
#硬盘直接用
pvcreate /dev/sd{b1,c} #把sdb1和sdc创建成物理卷
[21:48:17 root@centos8 ~]#pvs #查看物理卷
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 5.00g 5.00g
/dev/sdc lvm2 --- 20.00g 20.00g
[21:50:09 root@centos8 ~]#pvdisplay #pvdisplay 可以查看到更全的信息
"/dev/sdb1" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name #卷组信息
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 9DQKuy-5YRm-rouS-Jqhm-OjO8-J3bm-POjfG2
"/dev/sdc" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 8dAUng-gu4x-5XA8-oC8J-LoeY-ZdUo-lcTsLD
#2.创建卷组(VG)并物理卷(PV)加入卷组
vgcreate vg0 /dev/sd{b1,c} #vg0为名称 把两个物理卷PV加入卷组VG
#3.创建逻辑卷(LV)
lvcreate -L 5G -n lv-mysql vg0 #-L后直接指定大小,-n 指定逻辑卷LV名称,vg0指定从哪个卷组分空间
lvcreate -L 5G -n lv-logs vg0
----------------------------------------------------------------------#此时/dev/vg0/lv-mysql 与分区相同
#4.创建文件系统
mkfs.ext4 /dev/vg0/lv-mysql
#5.持久挂载
vim /etc/fstab
:r!blkid /dev/vg0/lv-mysql
mount -a
扩容逻辑卷LV
前提:LV所在的VG有足够的空间
vgdisplay #查看卷组信息
lvresize -r -L +5G /dev/vg0/lv-mysql #-r 连带文件系统一起扩容
扩容卷组VG
#前提有硬盘或者分区
pvcreate /dev/sdb2
vgextend vg0 /dev/sdb2 #把新创建的PV加入VG,使用vgextend
缩减逻辑卷LV
#注意:缩减有数据损坏风险,建议先备份再缩减,xfs文件系统不支持缩减
#1.先取消挂载
umount /dev/vg0/lv-mysql
#2.检查文件系统用完整性
e2fsck -f /dev/vg0/lv-mysql
#3.缩减文件系统
resize2fs /dev/vg0/lv-mysql 5G
#4.缩减逻辑卷LV
lvreduce -L 5G /dev/vg0/lv-mysql
#5.恢复挂载
mount -a #-a 可以恢复/etc/fstab的挂载
实现LV快照
#逻辑卷LV快照:写时复制。快照的生命只有一次。
# 特点:备份速度快,瞬间完成
# 应用场景是测试环境,不能完成代替备份
# 快照后,逻辑卷的修改速度会有一定影响
#实现LV快照:LV快照只保存创建快照时的文件内容类似VM快照
#1.创建快照
#xfs
lvcreate -L 100m -s -n mysql-snap /dev/vg0/lv-mysql
#ext4 使用-p r 实现只读
lvcreate -L 100m -s -n mysql-snap -p r /dev/vg0/lv-mysql
#2.挂载
mkdir /data/mysql-snap
#快照与LV用的UUID一样,xfs挂载需要加 -o nouuid,ro 实现只读,防止快照被修改
mount -o nouuid,ro /dev/vg0/mysql-snap /data/mysql-snap
#ext4
mount /dev/vg0/mysql-snap /data/mysql-snap
#恢复快照--
#1.取消挂载
umount /dev/vg0/lv-mysql
umount /dev/vg0/mysql-snap
#2.恢复快照
lvconvert --merge /dev/vg0/mysql-snap
删除
#删除需要按下面顺序
#1.取消所有挂载
#2.1删除逻辑卷lv
lvremove /dev/vg0/lv-mysql
#2.2删除卷组VG
vgremove vg0
#2.3删除物理卷PV
pvremove /dev/sd{b1,c}