红帽的 Stratis 是新一代的存储管理解决方案,称为卷管理文件系统。可以通过它创建文件系统及调整其大小时以动态、透明的方式来管理卷层。不过,尽管这些文件系统的社区开发已经持续很多年,但仍未达到红帽企业 Linux 主要本地存储所需要的功能支持和稳定性水平。
Stratis 以管理物理存储池的服务形式运行,并透明地为所创建的文件系统创建和管理卷。由于 Stratis 使用现有的存储驱动程序和工具,因此 Stratis 也支持当前在 lvm、xfs 和设备映射器中使用的所有高级存储功能。Stratis 文件系统没有固定大小,也不再预分配未使用的块空间。
Stratis 使用存储的元数据来识别所管理的池、卷和文件系统。因此绝不应该对 Stratis 创建的文件系统进行手动重新格式化或重新配置;只应使用 Stratis 工具和命令对它们进行管理。手动配置 Stratis 文件系统可能会导致该元数据丢失,并阻止 Stratis 识别它已创建的文件系统。您可以使用不同组的块设备来创建多个池。在每个池中,您可以创建一个或多个文件系统。目前每个池最多可以创建 2^24 个文件系统。
在内部 Stratis 使用 Backstore 子系统来管理块设备,并使用 Thinpool 子系统来管理池。Backstore 有一个数据层,负责维护块设备磁盘上的元数据,以及检测和纠正数据损坏。缓存层使用高性能块设备作为数据层之上的缓存。Thinpool 子系统管理与 Stratis 文件系统关联的精简部署卷。该子系统使用 dm-tin设备映射器驱动程序取代 LVM 进行虚拟卷大小调整和管理。dm-thin 可以创建虚拟大小比较大,但物理大小比较小的卷, 采用 XFS 格式。当物理大小快要满时,Stratis 会自动将其扩大。
-
管理精简配置的文件系统
-
要使用 Stratis 存储管理解决方案来管理精简配置的文件系统,请安装 stratis-cli 和 stratisd 软件包。
-
stratis-cli 软件包中提供了 stratis 命令,它通过 D-Bus API 将用户请求转换为 stratisd 服务。stratisd软件包中提供了 stratisd 服务,它实现 D-Bus 接口并管理和监控 Stratis 的元素,如块设备、池和文件系统。
-
实验环境 CentOS 8
- 使用 yum 安装 stratis-cli 和 stratisd
- yum install stratis-cli stratisd -y
- 设置开机启动,-now 为开启的同时立即运行程序
- systemctl enable --now stratisd
- 使用 stratis pool create 命令来创建包含一个或多个块设备的池
stratis pool create pool1 /dev/sdc
- 查看可用池的列表
- stratis pool list
- 每个池都是/stratis 目录下的一个子目录
- 使用 stratis pool add-data 命令向池中添加额外的块设备
stratis pool add-data pool1 /dev/sdd
- 使用 stratis blockdev list 命令查看池的块设备
stratis blockdev list pool1
- 使用 stratis filesystem create 命令为池创建动态、灵活的文件系统
stratis filesystem create pool1 filesystem1
Stratis 文件系统的链接位于/stratis/pool1 目录中
使用 stratis filesystem list 命令查看可用文件系统的列表
stratis filesystem list
- 挂载文件系统
创建挂载点并挂载
mkdir /opt/fs1
mount /stratis/pool1/fs1 /opt/fs1
- 默认属性
- type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,sunit=2048,swidth=2048,noquota)
- relatime -每次读取档案/目录内容时,只在档案/目录 inode 上原先的最后存取时间旧于最后修改时间 (modify time) 或更新时间 (change time) 才更新最后存取时间。可以减少对档案系统的负荷,但不影响如 mutt 之类需要存取时间的应用程序。
- 为了确保持久挂载 Stratis 文件系统,请编辑/etc/fstab 并指定文件系统的详细信息。
获取 uuid
lsblk --output=UUID /stratis/pool1/fs1 - 或者使用 blkid 命令
- x-systemd.requires=stratisd.service 挂载选项可延迟挂载文件系统,直到 systemd 在启动过程中启动 stratisd.service 为止。若不使用此选项,将会导致计算机在下一次重启时引导到 emergency.target。
- 重启验证
- 配置stratis分层存储 : 再添加一块磁盘做为存储缓存cache-data,实现分层存储
- 首先开启缓存
- stratis pool init-cache pool1 /dev/sde
- 如果再次添加新的 cache 硬盘
- stratis pool add-cache pool1 /dev/sdf
- 卸载和删除文件系统
- 删除文件系统
- 首先要卸载挂载
- umount /opt/fs1
- stratis filesystem destroy pool1 fs1
- stratis filesystem list
- stratis pool destroy pool1