实施高级存储管理

21 篇文章 0 订阅
21 篇文章 0 订阅

使用 Stratis 管理分层存储

描述 STRATIS 架构

RHEL 的本地存储解决方案中有 device mapper (dm) LVM XFS 等技术。每个存储堆栈层均使用专门的命令和程序进行管理
新一代的存储管理解决方案,称为 volume-managing file systems ,它在创建文件系统及调整其大小时以动态、透明的方式来管理 volume 层。但尽管社区开发已经持续了很多年,但仍未满足 RHEL 本地存储所需的功能和稳定性
RHEL 8 中,红帽推出了 Stratis 存储管理解决方案,以管理 物理存储 设备池的服务形式运行,并透明地为所创建的文件系统创建和管理卷
由于 Stratis 使用现有存储驱动和工具,因此支持当前在 LVM XFS 和 dm 中使用的所有高级存储功能
Stratis 使用存储的元数据来识别所管理的池、卷和文件系统。 绝不能对Stratis 创建的文件系统进行手动重新格式化或重新配置 ,只应使用Stratis 工具和命令对它们进行管理
可以使用不同组的块设备来创建多个池,在每个池中,可创建一个或多个文件系统。目前,每个池最多可以创建 224 个文件系统
池可将块设备分组到数据层,或分组到缓存层(可选)。数据层侧重于灵 活性和完整性,而缓存层则侧重于提高性能(SSD )。下图说明 Stratis中元素如何组装:

描述简化的存储堆栈

Stratis 简化了各红帽产品之间本地存储部署和配置。包括 Anaconda 、Cockpit、红帽虚拟化和 Atomic 主机均可使用 Stratis
Stratis 令存储空间和快照的管理变得更为简单,且更不容易出错。 Stratis 更容易与高级管理工具进行集成

描述 Stratis 层

在内部, Stratis 使用 Backstore 子系统 来管理 block device , 并使用 Thinpool 子系统 来管理池
Backstore 有一个数据层,负责维护 block device 上的元数据, 以及检测和纠正数据损坏。缓存层使用高性能块设备,作为数据层之上的缓存
Thinpool 子系统管理与 Stratis 文件系统关联的 thin- provisioned volume精简配置卷,该子系统使用 dm-thin 取代 LVM 进行虚拟卷管理
dm-thin 可以创建虚拟空间比较大、采用 XFS 格式,但物理空间比较小的卷。当物理空间快满时,Stratis 会自动将其扩大

管理 Thin-provisioned 的文件系统

管理 Thin-provisioned 文件系统,需安装 stratis-cli stratisd 软件包
stratis-cli 软件包中提供了 stratis 命令,将用户请求发送到 stratisd 服务
stratisd 软件包中提供了 stratisd 服务,管理和监控 Stratis 的元素,如块设备、池和文件系统
安装并激活 Stratis
- 使用 yum install 命令安装 stratis-cli 和 stratisd

- 使用 systemctl 命令激活 stratisd 服务 

使用 Stratis 执行的常规管理操作::
- 使用 stratis pool create 命令创建块设备的池,每个池都是 /stratis 下的一个子目录

- 使用 stratis pool list 命令查看可用池的列表

使用 Stratis 执行的常规管理操作::
- 使用 stratis pool add-data 命令向池中添加额外的块设备

- 使用 stratis blockdev list 命令查看池的块设备 

使用 Stratis 执行的常规管理操作:
- 使用 stratis filesystem create 命令为池创建动态文件系统。 Stratis 文件系统的链接位于 /stratis/pool1 目录中

- 使用 stratis filesystem snapshot 命令创建文件系统快照 - 使用 stratis filesystem list 命令查看可用文件系统的列表

使用 Stratis 执行的常规管理操作:
- 为了持久挂载 Stratis 文件系统,需编辑 /etc/fstab
重要 x-systemd.requires=stratisd.service 挂载选项可延迟挂载文件系统,
直到 systemd 在启动过程中启动 stratisd.service 为止

使用 VDO 压缩存储和去重

描述虚拟数据优化器

RHEL 8 包含 Virtual Data Optimizer VDO )驱动程序,可以优化块设备上数据的空间占用
VDO 是一个 Linux device mapper 驱动程序,它可以减少块设备上的磁盘空间使用,同时最大限度减少数据重复,从而节省磁盘空间,甚至提高数据吞吐量
VDO 包括两个内核模块: kvdo 模块用于以透明的方式控制数据压缩, uds 则可用于重复数据删除
VDO 层位于块存储设备的顶部,而存储层(如 LVM 逻辑卷和文件系统)位于 VDO 设备之上
VDO 按以下顺序对数据实施三个阶段的处理,以减少空间占用:
1). 零块消除将过滤掉仅包含 0 的数据块,且仅在元数据中记录这些块的信息。非零数据块随即被传递到下一个处理阶段
2). 重复数据删除将去除冗余的数据块。在创建相同数据的多个副本时, VDO 会检测重复数据块并更新元数据,不会创建冗余数据块。 uds 内核模块将通过其维护的元数据来检查数据的冗余
3). 最后一个阶段是压缩, kvdo 内核模块使用 LZ4 压缩对块进行压缩,并以 4 KB 块进行分组

实施 VDO

利用 VDO 创建的逻辑设备被称为 VDO 卷。 VDO 卷与磁盘分区类似
可以将这些卷格式化为所需的文件系统,并进行挂载。此外,还可以将VDO 卷用作 LVM 物理卷
要创建 VDO 卷,需指定块设备和逻辑设备的名称。也可指定 VDO 卷的逻辑大小(可选),VDO 卷的逻辑大小可以大于实际块设备的物理大小
由于 VDO 卷采用了精简配置,因此用户只能看到正在使用的逻辑空间,而无法了解实际可用的物理空间
如果在创建卷时未指定逻辑大小,则 VDO 会将实际物理大小视为卷的逻辑大小。这种采用 1:1 的比率映射方式有利于提高性能,但也会降低存储空间的使用效率。 生产中应根据基础架构要求来确定是优先考虑性能还是空间效率
VDO 卷的逻辑大小超过实际物理大小时,应使用 vdostats --verbose命令主动监控卷统计信息,以查看实际使用情况

启动 VDO

需要安装 VDO 和 kmod-kvdo 软件包

创建 VDO 卷

运行 vdo create 命令创建 VDO 卷

如果省略逻辑大小,则生成的 VDO 卷将与其物理设备的大小相同

分析 VDO 卷

运行 vdo status 命令分析 VDO 卷,结果以 yaml 格式显示
vdo list 命令显示当前启动的 VDO 卷的列表
可以分别使用 vdo start vdo stop 命令来启动和停止 VDO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值