逻辑卷
物理卷(PV, Physical Volume)
物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝.默认为1,保存在设备的开始处.为2时,在设备结束处保存第二份备份.
PE(physical extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小是可设置的,默认为4MB。
卷组(VG, Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(LV, Logical Volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。
pv ##物理卷 被处理过的物理分区
pe ##物理扩展 设定存储最小单元
vg ##物理卷组 捆绑pv到一个组中
lv ##逻辑卷 分配最终的使用设备
lvm设备建立
建立物理分区并设定分区type为lvm
pvcreate /dev/vdb1 ##创建pv
vgcreate westosvg -s 2M /dev/vdb1 ##创建vg -s设定pe大小位2M
lvcreate -L 300M -n westoslv westosvg ##创建lvm -L指定大小 -n指定名称
mkfs.xfs /dev/mapper/westosvg-westoslv ##格式化
mount /dev/westosvg/westoslv /data/ ##挂载
打开一个监控 方便观察变化!!
*监控建立过程
watch -n 1 “pvs;echo ====;vgs;echo =====;lvs;echo =====;df -h /data”*
再添加一块分区
取消之前的挂载
创建PV
创建VG
创建LV
格式化VG,LV
挂载到data里
查看
监控画面 :watch -n 1 “pvs;echo ====;vgs;echo =====;lvs;echo =====;df -h /data”
lvm拉伸
1.当vg中的容量充足
lvextend -L 400M /dev/mapper/westosvg-westoslv 拉伸设备
xfs_growfs /data/
拉伸文件系统,在rhel7中可以用设备或挂载点
在rhel8中只能用挂载点
resize2fs /dev/mapper/westosvg-westoslv
当文件系统为ext时使用此命令
当内存够的时候 直接拉伸到400M
然后格式化
2.当vg中的容量不足
划分分区
pvcreate /dev/vdb2
vgextend westosvg /dev/vdb2
lvextend -L 2500M /dev/westosvg/westoslv
xfs_growfs /data/
创建一个新的PV
扩大VG 把vdb2的内容扩大到vg里面去
发现VG容量变为1。5G
然后给lv扩大到600M内存 如下图
lvm缩减
xfs文件系统不支持缩减ext文件系统可以
mkfs.ext4 /dev/westosvg/westoslv
格式化
检查文件信息
ext4文件系统拉伸:
resize2fs /dev/mapper/westosvg-westoslv
缩减步骤:
umount /data
e2fsck -f /dev/westosvg/westoslv
resize2fs /dev/westosvg/westoslv 400M 压缩文件系统
lvreduce -L 400M /dev/westosvg/westoslv 压缩设备
mount /dev/westosvg/westoslv /weixindata/
pvmove /dev/vdb1 /dev/vdb2 将1中的数据传输到2中
vgreduce westosvg /dev/vdb1
pvremove /dev/vdb1
压缩文件系统
压缩设备,可以看到lv的内存变为400M
把vdb1的数据转移到2中
发现 vdb2的使用就剩下400M,而vdb1全部可用
把pv中vdb1移除掉
发现VG中westosvg的内存由1.5G变为1G
lvm删除:
umount /dev/mapper/westosvg-westoslv
lvremove /dev/westosvg/westoslv
vgremove westosvg
pvremove /dev/vdb2
取消挂载后,删掉lv
然后把vg也移除掉
移除掉vdb2
vdo
DO(Virtual Data Optimize虚拟数据优化):通过压缩或删除存储设备上的数据来优化存储空间 VDO层放置在现有块存储设备例如RAID设备或本地磁盘的顶部。这些块设备也可以是加密设备。存储层(如LVM logic卷和文件系统放置在VDO层的顶部。 VDO按以下顺序将三个阶段应用于数据,减少存储设备上的占用空间 零区块的排除: 在初始化阶段,整块为0的会被元数据记录下来,这个可以用水杯里面的水和沙子混合的例子来解释,使用滤纸(零块排除),把沙子(非零空间)给过滤出来,然后就是下一个阶段的处理 重复数据删除: 在第二阶段,输入的数据会判断是不是冗余数据(在写入之前就判断),这个部分的数据通过UDS内核模块来判断(U niversal D eduplication S ervice),被判断为重复数据的部分不会被写入,然后对元数据进行更新,直接指向原始已经存储的数据块即可 压缩: 一旦消零和重删完成,LZ4压缩会对每个单独的数据块进行处理,然后压缩好的数据块会以固定大小4KB的数据块存储在介质上,由于一个物理块可以包含很多的压缩块,这个也可以加速读取的性能。
虚拟数据优化器
kvdo ##压缩数据
uds ##优化重复数据
vdo建立
dnf install vdo -y
vdo create --name westos_vdo --device /dev/vdb
先安装服务
建立vdo
然后发现内存不够
增加内存
然后创建
查看一下vdo状态
使用vdo设备
mkfs.xfs -K /dev/mapper/westos_vdo1
mkdir /westos_vdo
mount /dev/mapper/westos_vdo1 /westos_vdo
格式化
然后挂载,查看挂载
查看分区
测试vdo性能
vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/westos_vdo1 20.0G 4.0G 16.0G 20% 98%
挂载光盘 我们需要找到一个内存很大的文件
cp /westos/images/install.img /westos_vdo/
vdostats --human-readable
复制这个大文件过来之后发现,
查看状态时,使用的变多了,剩余的变少了
在复制同一个文件到相同路径下
会发现占有的使用率 并没有变化
但是到这个路径下去,会发现有两个文件 大小累加,都存在大小
重复复制两次同样的文件,查看文件的时候存储两份,但是文件大小仅占了一个文件的大小,两个文件都存在,并不是以硬链接的形式存在。
所以说明了vdo 的压缩,优化重复数据的功能。
永久设置:
然后mount -a启动
重启发现启动不起来
输入密码 获得shell,然后打开vim /etc/fstab
在配置里把数据补齐
exit退出!
vdo设备的删除
vdo remove --name=westos_vdo
先取消挂载 然后再删除设备