Part2.6——Linux高级存储管理

目录

一、逻辑卷

1、几个概念

2、建立监控过程

 3、lvm设备建立

4、lvm拉伸

(1)当vg中的容量充足时

(2)当vg中的容量不足时

 5、lvm缩减

 6、lvm删除

二、vdo(Virtual Data Optimize)

1、vdo设备的建立

第一步:安装vdo

 第二步:创建vdo设备

 第三步:测试vdo性能

 第四步:vdo设备开机启动

 2、vdo设备的删除

 三、本章总结


一、逻辑卷

1、几个概念

pv 物理卷,被处理过的物理分区
vg 物理卷组,多个pv捆绑到一个起称为物理卷组
lv 逻辑卷,分配最终的使用设备
pe 物理扩展,设定存储最小单元

2、建立监控过程

第一步:这里先在根下创建一个目录</data>,稍后进行的实验都在这里进行。

watch -n 1 "pvs;echo ====;vgs;echo ===;lvs;echo ===;df -h /data"

第二步: 为虚拟机添加一个新硬盘。

 3、lvm设备建立

这里先理解一下概念,也就是为什么要建立lvm设备?在之前的学习中,空间容量一旦指定下来就不能再改变大小了,而实际情况中,当服务器给客户指定一定空间的存储容量后,如果用户数据过多,导致容量不够,那么接下来就应该在原有的容量基础上再加一些;那么这就需要涉及到硬盘存储的弹性空间了,用户数据过多时,适当增加容量,数据过少时,适当减少容量。按需分配。这样既可以满足用户需求,又可以避免服务器存储成本过大。

建立物理分区并设定分区type为lvm:

第一步:在<fdisk>命令下创建分区,将创建好的分区类型设置为<Linux LVM>

 第二步:创建pv

使用<pvcreat >命令将刚才的新分区建立为pv的分区

pvcreate /dev/vdb1            #创建pv

 第二步:创建vg

vgcreate -s 2M vg0 /dev/vdb1         #创建vg,并将pe大小设置为2M

 使用<vgcreate>命令将刚才的分区创建为vg分区,其中参数<-s>为pe大小,不设置时默认为4M,这里设置为2M。

 第三步:创建lvm

lvcreate -L 200M -n lv0 vg0        #创建lvm,-L指定大小,-n指定名称

 使用<lvcreate>命令在刚才创建的vg(物理卷组)上建立lvm分区,参数<-L>指定分区大小,参数<-n>指定lvm分区的名称。

 第四步:格式化

以上三步新建立的lvm分区需要格式化以后才能使用

mkfs.xfs /dev/vg0/lv0            #将lvm分区格式化

第五步:挂载

mount /dev/vg0/lv0 /data            #将lvm分区挂载在/data目录下

到了这里lvm分区就建立好了,接下来就是调整分区大小了。

4、lvm拉伸

(1)当vg中的容量充足时

第一步:先拉伸lvm设备

lvextend -L 500M /dev/vg0/lv0        #拉伸设备

 第二步:再拉伸文件系统(rhel8中只能使用设备或挂载点都可以)

xfs_growfs /dev/vg0/lv0        #拉伸文件系统

 注意:如果是ext文件系统,只能使用<resize2fs>命令

resize2fs  /dev/vg0/lv0  500M            #重置容量为500M

(2)当vg中的容量不足时

当vg中容量不足时,就需要在vg组中添加新的物理卷pv以拓展vg组的容量。

以下图所示,当lvm请求1500M的空间时,vg总共只有1000M,就会显示空间不足而报错。所以要给vg组中再加入一块pv分区。

 第一步:按照上述步骤的方法,再建立一个格式为<Linux LVM>的分区,并使用<pvcreate>命令转化为pv设备后再<vgcreate>命令加到<vg0>物理卷组中。

第二步:再使用<lvcreate>命令拉伸设备后,接着用<xfs_growfs>命令拉伸文家系统。新的LVM设备容量就调整好了。

 5、lvm缩减

注意:xfs文件系统不支持缩减,ext文件系统支持缩减。(所以在刚开始设置的时候应该优先选择ext文件系统)

在把分区的文件系统格式化为<ext4>后,以下为缩减步骤:

第一步:卸载设备,并查看设备占用情况

umount /data                #卸载设备
e2fsck -f /dev/vg0/lv0        #查看设备占用情况

 第二步:重设分区大小,并缩减lvm分区

resize2fs /dev/vg0/lv0 100M        #重设分区大小
lvreduce -L 100M /dev/vg0/lv0        #缩减lvm设备大小

 <resize2fs>命令是在物理上限制<dev/vg0/lv0>的大小,然后使用<lvreduce>缩减lvm设备的大小。

 第三步:重新挂载

可以看到重新挂载后的lvm设备大小只有100M了,实际显示67M是因为文件系统等等因素占用。

 6、lvm删除

lvm删除操作本着“正着建,倒着删”的原则,即建立lvm的时候按照<pv-----vg--------lv>的顺序进行,那么删除的时候就按照<lv------vg------pv>的顺序进行。

(1)在删除之前先考虑一个问题:

刚才在硬盘上新建了两个分区<dev/vdb1>和</dev/vdb2>,大小都是1G,现在lvm设备只占用了第一个分区的一部分,第二个分区没有使用,可以直接删除。那么问题来了,如果我想删除第一个设备该怎么办呢?

这就需要先将第一个分区上的东西全部移动到第二个分区上,让第一个分区闲置,就可以删除了。具体操作步骤如下:

第一步:移动设备

pvmove /dev/vdb1 /dev/vdb2        #从vdb1中移动pv设备到vdb2中

 移动完成后,通过命令监视窗口可以看到,</dev/vdb1>的已经完全闲置,</dev/vdb2>开始被占用了。

 第二步:从vg组中解除设备占用

pvreduce vg0 /dev/vdb1            #解除vdb1的vg0组的占用

 命令执行后,可以看到</dev/vdb1>已经不属于物理卷组“vg0”了。

 第三步:移除闲置分区

pvremove /dev/vdb1        #移除vdb1设备

 执行命令后,可以看到lvm使用的分区就只有一个</dev/vdb2>了。

 最后总结一下lvm设备删除的常规操作:

(1)解除设备占用: umount   /dev/vg0/lv0

(2)解除lvm占用:lvremove   /dev/vg0/lv0

(3)解除vg占用:vgremove    vg0(移除vg0物理卷组以后,设备就自动退出vg0组了,不必再<vgreduce vg0 /dev/vdb1>了)

(4)解除pv占用:pvremove    /dev/vdb1

二、vdo(Virtual Data Optimize)

vdo(Virtual Data Optimize)虚拟数据优化器:
kvdo                        ##压缩数据
uds                        ##优化重复数据

vdo设备建议新加一块硬盘,在新的硬盘上进行测试

1、vdo设备的建立

第一步:安装vdo

dnf install vdo -y            #安装vdo服务/应用

 第二步:创建vdo设备

(1)检查系统内当前硬盘

(2)创建vdo设备

vdo creat --name=westos_vdo1 --device=/dev/vdb        #创建vdo设备
vdo status --name=westos_vdo1 | less                  #查看vdo设备
#####vdo状态中检查以下两项#####
Deduplication: enabled                #vdo检测并删除重复数据的功能时开启
Compression: enabled                  #vdo数据压缩功能开启

 创建vdo设备:

 查询vdo状态:

 使用vdo设备:

vdo设备创建好以后,还需要先进行格式化,然后挂载才可以使用。

mkfs.xfs -K /dev/mapper/westos_vdo1                #格式化vdo设备
mkdir  /westos_vdo                                 #创建挂载目录
mount  /dev/mapper/westos_vdo1  /westos_vdo        #挂载vdo设备

 第三步:测试vdo性能

使用下边命令可以查看vdo设备的存储状态,为了方便观察,我们把它监视起来。

vdostats --human-readale            #查看vdo设备的存储状态

 先下载一个文件,然后向目录</westos_vdo>中复制一份,再改变文件名重新复制一份。

第一次复制文件时,vdo设备的空间减小了。

 第二次复制文件时,虽然改变了文件名,但是文件和第一个文件一模一样,就不会重复占用空间,所以vdo设备的容量不变。

 第四步:vdo设备开机启动

开机自动挂载vdo设备,需要更改</etc/fstab>文件。

由于vdo设备比较特殊,如果直接和普通设备的挂载方法,将会导致系统启动失败。所以先<man vdo>查询“fstab”挂载帮助,然后在</etc/fstab>文件中编写开机自动挂载命令。

/dev/mapper/westos_vdo1   /westos_vdo    xfs    default,x-systemd.requires=vdo.service 0 0

vdo设备名                              挂载目录  文件系统类型                 参数             不备份 不检测

 2、vdo设备的删除

先卸载,再移除(如果更改了“fstab”文件,一定要先还原)

1>>>>>umount /westos_vdo                    #卸载
2>>>>>vdo stop --name westos_vdo1           #停止do设备
3>>>>>vdo remove  --name westos_vdo1        #删除vdo设备

 三、本章总结

1、vdo设备的文件删除后,内存并不会被释放,在复制新文件后会直接覆盖掉已删文件所占用的内存

2、

おすすめ

転載: blog.csdn.net/Zhaohui_Zhang/article/details/121184375