关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo
  R6ZO6z1TYi7r 2023年11月02日 52 0

#注:stratis 和 vdo 目前都是属于redhat的预览技术,并没有实际投入到生产环境

stratis 精简卷(适用于海量应用场景,只需关注精简池容量,无需去管文件系统):


stratis (redhat8的新功能)会吧磁盘放在一个精简配置的共享池子里面(精简存储池),stratis 文件系统也是没有固定的大小,也不会提前分配没有使用的磁盘块空间(主要用于KVM虚拟化的存储)。一个共享池子中可以创建多个文件系统,文件系统类型统一为 xfs,无法选择

#stratis 主要解决了逻辑卷的扩容问题

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_块设备

注:如上图所示,最终卷被创建后是没有大小,也没有使用空间,该卷创建出来后默认大小为1T(实际存储量是根据精简存储池来定),并且随着使用量会自动加大,逐渐变成2T,3T...这样自动扩容;

所以这样来看我们无需关注文件系统的大小是否足够使用,只需要关注存储池中的资源是否足够使用,如果出现资源不够使用的情况直接扩容存储池即可,无需关心卷的扩容;

并且卷的实际大小是使用了多少算多少,不会出现创建出来后容量就直接被使用掉的现象。

制作stratis示例:

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_块设备_02

第1步:安装 stratis-cli(客户端工具)和stratisd(服务的名称),并启动服务

yum install stratis-cli stratisd -y

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_文件系统_03

systemctl enable --now stratisd

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_redhat_04

第2步:创建精简池并验证

stratis pool create 池子名称 分区1路径 分区2路径

stratis pool list

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_数据_05

#Properties 为池子的属性,其中Ca,Cr表示开启了超分配

第3步:创建文件系统并验证

stratis filesystem create 池子名称 文件系统名称

stratis filesystem list 

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_文件系统_06

第4步:挂载测试

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_redhat_07

注:文件系统的容量是没有一样的,需要以精简存储池的容量为准

#设置开机自动挂载时需要注意,不要直接在/etc/fstab 中直接已标准的形式去挂载,因为stratis 是 stratisd 这个服务所产生的卷,所以需要服务先起来,再来挂载,否则会开机直接挂...,可以使用延时挂载来解决

UUID=* /* xfs defaults,x-systemd.requires=stratisd.service 0 0

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_redhat_08

扩容精简存储池

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_linux_09

stratis pool add-data 池子名称 分区路径 #向精简池中添加块设备

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_数据_10

#所以在这里可以看出,在容量不够的情况下,我直接扩容精简存储池即可,不用再去对文件系统做拉伸

#查看存储池使用了哪些块设备

stratis blockdev list

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_数据_11

#stratis快照

stratis filesystem snapshot 池子 文件系统 快照

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_数据_12

恢复stratis快照

#因为 stratis 的快照是可以独立存在使用的,所以恢复快照就是将原来的快照重新做成文件系统

stratis filesystem snapshot pool01 snap01 fs01

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_块设备_13

删除stratis示例:

第1步:删除stratis文件系统

stratis filesystem destroy 池子名称 文件系统

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_linux_14

第2步:删除stratis 精简池

stratis pool destroy 池子名称

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_数据_15


vdo 压缩卷(redhat8中提出,redhat9中已经被废除,及其不稳定==》数据丢失无法找回):

#但是在redhat9中,vdo功能融合到lvm中,可以将底层的pv有vdo的属性标签,让其有压缩重删的功能,让lvm的性能和效率得到提升==》可以让底层实现超分配,超使用

背景:vdo主要是围绕现在的云业务进行的设计,可以作为虚拟化的底层存储,设计之初就是为了KVM


关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_文件系统_16

#例如系统盘中绝大部分数据都是相同的,例如内核文件,各种设备的文件等等,至少有70%以上的文件都是相同的,如果我每个虚拟机系统盘占用20G,那么三台虚拟机就需要占用60G的空间;

#那么这时候vdo的作用就发挥了,它会使用uds对block进行重删,让40G的空间搞定60G的内容,极大的让存储资源实现资源最大化

*所以vdo的劣势也就在这里,让业务跑在这上面,数据丢失是无法找回的。。。

vdo包含了两个内核的模块:

kvdo 控制数据压缩 ==》对于大文件的置0的数据,可以通过kvdo进行数据压缩例如使原本900M的数据只占用500M

uds 删除重复数据 ==》字面意思,对于磁盘中有一模一样的数据,可以进行重删

<<EOF
这里可以使用vdo来创建(逻辑设备)vdo卷,vdo卷与磁盘类似,可以将这些卷进行格式化,使其成为所需要使用的
文件系统;
创建vdo卷的时候,也可以指定块设备和逻辑设备的名称,大小等等,并且vdo卷的逻辑大小可以大于实际物理设备的
大小,但是需注意,当vdo的逻辑大小大于物理设备时,它的性能也会对应降低;
EOF

配置vdo:

安装:

yum install vdo kmod-kvdo -y #redhat8 中会自动安装

启动:

systemctl enable --now vdo.service

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_redhat_17

创建vdo:

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_linux_18

vdo create --name=vdo0 --device=/dev/sdb1 --vdoLogicalSize=50G

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_块设备_19

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_文件系统_20

格式化vdo:

mkfs.xfs /dev/mapper/vdo0

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_文件系统_21

vdo常见操作:

vdo list #查看当前正在使用的卷
vdo status --name vdo0 #查看vdo卷的特性
vdo --human-readable #查看卷的状态
vdo remove --name vdo0 #删除vdo卷
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  jnZtF7Co41Wg   2023年12月11日   37   0   0 文件系统xmlGNU
  nIt0XG0acU8j   2023年12月11日   32   0   0 linuxhtop
R6ZO6z1TYi7r