目录
前言
问:当一个产品上线之前无法估量这个产品是否成功,不可能吧所有的资金都投资在存储上,结果产品上线后,异常火爆,随着用户的增加,短时间内数据不断的写入,可能会把存储填满。怎么解决这个问题?
当系统中数据量超过单块硬盘的存储容量,仅仅通过添加存储硬件是无法解决该问题的,因为当另一个硬件设备挂载到系统中时,原来的将会被卸载,因此达不到扩展存储空间的目的,这时候就需要采用LVM程序来解决这个问题,它能够将不同硬件设备的存储空间连接到一起从而能被系统正常使用,就如同将两个橘子榨成汁融合在一起,两个橘子就相当于两块不同的硬盘,而LVM程序就相当于是榨汁机,两个橘子本身是不能融合在一起的,而经过榨汁机的加工成功融合在了一起。
一、LVM(逻辑卷管理)
1、基本概念
pv | 物理卷 ,被处理过的物理分区 |
pe | 物理扩展,设定存储最小单元 |
vg | 物理卷组,捆绑pv到一个组中 |
lv | 逻辑卷,分配最终的使用设备 |
监控建立过程
watch -n 1 "pvs;echo ====;vgs;echo =====;lvs;echo =====;df -h /weixindata"
2、lvm建立
(1)建立物理分区并设定分区type为lvm
(2)pvcreate /dev/设备名 %创建pv
(3)vgcreate westosvg -s 2M /dev/设备名 %创建vg,-s设定pe大小位2M
(4)lvcreate -L 100M -n westoslv westosvg %创建lvm,-L指定大小 -n指定名称
(5)mkfs.xfs /dev/mapper/westosvg-westoslv %格式化
(6)mount /dev/westosvg/westoslv /指定挂载目录/ %挂载
首先添加一块设备
3、lvm拉伸:
1.当vg中的容量充足
lvextend -L 200M /dev/mapper/westosvg-westoslv ##拉伸设备
xfs_growfs /weixindata/ ##拉伸文件系统,在rhel7中可以用设备或挂载点
在rhel8.0中只能用挂载点
resize2fs /dev/mapper/westosvg-westoslv ##当文件系统为ext时使用此命令
2.当vg中的容量不足
划分分区
pvcreate /dev/sda3
vgextend westosvg /dev/sda3
lvextend -L 2500M /dev/westosvg/westoslv
xfs_growfs /weixindata/
4、lvm缩减
xfs文件系统不支持缩减ext文件系统可以
mkfs.ext4 /dev/westosvg/westoslv
ext4文件系统拉伸:
resize2fs /dev/mapper/westosvg-westoslv
缩减步骤
umount /weixindata
e2fsck -f /dev/westosvg/westoslv
resize2fs /dev/westosvg/westoslv 1500M
lvreduce -L 1500M /dev/westosvg/westoslv
mount /dev/westosvg/westoslv /weixindata/
vgreduce westosvg /dev/sda3
pvremove /dev/sda3
5、快照建立步骤
类似虚拟机快照,这里建立的快照可以用于恢复设备信息,快照建立后读文件在快照上执行,写在硬盘上执行。
6、lvm删除
umount /weixindata 卸载
lvremove /dev/westosvg0/westoslv0 删除
lv vgremove westosvg0 删除
vg pvremove /dev/设备名 删除pv
二、Vdo(虚拟数据优化器)
1、vdo设备的建立
vdo create --name=vdo设备名 --device=/dev/设备名(硬盘)
vdo status --name=vdo设备名 | less
Deduplication: enabled vdo检测并删除重复数据的功能时开启的
Compression: enabled vdo数据压缩功能开启
2、vdo设备的使用
mkfs.xfs -K /dev/mapper/vdo设备名 格式化vdo设备的文件系统为xfs
mkdir /指定目录 创建一个目录用于挂载vdo设备
mount /dev/mapper/vdo设备名 /指定目录 挂载vdo设备到指定目录
3、测试vdo设备
(1)vdostats --human-readable 查看vdo设备信息如下所示
Device Size Used Available Use% Space saving%
/dev/mapper/vdo设备名 20.0G 4.0G 16.0G 20% 98%
(2)多次复制同一文件到vdo设备中,发现从第二次往后复制时间明显缩短,并且vdo设备中的所占内存基本不增加
cp /xxxx /xxxx /xxxx /vdo设备名/
vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo设备名 20.0G 4.4G 15.6G 22% 2%cp /xxxx /xxxx /xxxx /vdo设备名/
vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo设备名 20.0G 4.5G 15.5G 22% 50
4、vdo设备的删除
vdo remove --name=vdo设备名 删除vdo设备