首页 > 其他分享 >关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo

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

时间:2023-08-03 11:05:08浏览次数:39  
标签:10 process oss --- image 菜鸡 stratis vdo

#注: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_文件系统_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_块设备_07

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

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

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

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

扩容精简存储池

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

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

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

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

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

stratis blockdev list

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

#stratis快照

stratis filesystem snapshot 池子 文件系统 快照

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

恢复stratis快照

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

stratis filesystem snapshot pool01 snap01 fs01

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

删除stratis示例:

第1步:删除stratis文件系统

stratis filesystem destroy 池子名称 文件系统

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

第2步:删除stratis 精简池

stratis pool destroy 池子名称

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


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

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

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


关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_linux_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_块设备_17

创建vdo:

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

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

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

关于菜鸡学习RHEL8的一些小笔记--->stratis和vdo_redhat_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卷

标签:10,process,oss,---,image,菜鸡,stratis,vdo
From: https://blog.51cto.com/u_16170308/6947161

相关文章

  • JavaScript学习 -- RSA算法应用实例及公钥私钥的生成方法
    正文:RSA算法是一种非对称加密算法,用于加密、解密和数字签名等场景。本文将介绍如何在JavaScript中使用RSA算法,并提供一个实际的案例,同时也会说明如何生成公钥和私钥。首先,确保您已经引入了jsencrypt库。以下是一个使用RSA算法进行加密和解密的示例,同时也包含了公钥和私钥的生成方法......
  • iTOP-RK3588开发板Ubuntu 系统交叉编译 Qt 工程-命令行交叉编译
    使用源码rk3588_linux/buildroot/output/rockchip_rk3588/host/bin/qmake交叉编译QT工程。最后烧写编译好的buildroot镜像,将编译好的QT工程可执行程序在buildroot系统上运行。交叉编译QT工程如下所示,首先进入QLed的工程目录下。然后使用以下命令交叉编译QT工程,如下......
  • el-transfer
     <template><divclass="p-box"><el-transferclass="new-el-transfer"filterablefilter-placeholder="请输入组织名称"v-model="value":data="dataListzz":ti......
  • xxx-系统要点(一)
    springbootmybaitplushplusspringsecuritythyemleaf比较稳定版本springboot2.5.9创建spring项目时,可以使用配置阿里镜像,但是idea2020之前版本无法使用配置数据库通用mybatis-plus.mapper-locations=classpath:mapper/*.xml#设置日志mybatis-plus.configuration.log-......
  • 【2023-08-02】踏出去吧
    20:00所以我就向这“温暖”和“爱”的方面,怀着永久的憧憬和追求。                                                 ——萧红我们公司的业务,主要由两大部门运转支撑,一......
  • linux根据地址添加出站策略--脚本
    文件名称:add_policy.sh内容:#!/bin/bashmain(){num=1echo"<?xmlversion="1.0"encoding="utf-8"?><direct></direct>">direct.xml#read-p"请输入文件全路径名称:"ip_addrwhilereadlinedo......
  • gitlab 报错error: 20667 bytes of body are still expectedB fatal: early EOF
    报错如下:C:\Users\meiktv\StudioProjects\meiktv_android_vod_3>gitclonehttps://gitlab.meiktv.com/client/meiktv_android_vod.gitCloninginto'meiktv_android_vod'...remote:Enumeratingobjects:46631,done.remote:Countingobjects:100%(26......
  • 我用 GPT-4 生成了性能全网第一的 Golang Worker Pool,轻松打败 GitHub 万星项目
    目录1.我写了一个超牛的开源项目1.1你看看这性能1.2你看看这功能1.3你猜我这一百天都经历了啥2.你有多久没写并发程序了?3.问:一个WorkerPool程序需要包含哪些功能?4.让GPT-4写第一行代码!4.1我对GPT-4说4.2GPT-4回答4.3我又对GPT-4说4.4GPT-4......
  • 【pandas小技巧】--拆分列
    拆分列是pandas中常用的一种数据操作,它可以将一个包含多个值的列按照指定的规则拆分成多个新列,方便进行后续的分析和处理。拆分列的使用场景比较广泛,以下是一些常见的应用场景:处理日期数据:在日期数据中,经常会将年、月、日等信息合并成一列,通过拆分列可以将其拆分成多个新列,方便......
  • cocoapi-pycocotools使用
    cocoapi-pycocotools使用安装pipinstallpycocotools==2.0.0orpipinstallpycocotools-windowsfrompycocotools.cocoimportCOCO函数和说明#这个文件实现了访问COCO数据集的接口.可以进行COCO标注信息的加载,解析和可视化操作classCOCO:#用于加载COCO标......