使用 Stratis 管理 RHEL 8/CentOS 8 上的本地存储使用 Stratis 管理 RHEL 8/CentOS 8 上的本地存储使用 Stratis 管理 RHEL 8/CentOS 8 上的本地存储使用 Stratis 管理 RHEL 8/CentOS 8 上的本地存储
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

使用 Stratis 管理 RHEL 8/CentOS 8 上的本地存储

发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 8/RHEL 8 上安装 Stratis? Stratis 是一款适用于 Linux 的本地存储管理解决方案,注重简单性和易用性。它使用 Linux 的 devicemapper 子系统和 XFS 文件系统。 Stratis 还允许您访问高级存储功能,例如:

  • 精简配置
  • 文件系统快照
  • 基于池的管理
  • 监控。

作为系统管理员,您可以轻松设置新存储并管理 Stratis 高层系统集成的复杂存储配置。它是一个混合用户和内核本地存储管理系统,使用存储池的概念。

Stratis 是 RHEL 8 的新本地存储管理器。您可以在 Red Hat Enterprise Linux 8 (RHEL 8) 新功能和评论上查看其他 RHEL 8 新功能

Stratis 术语

使用 Stratis 时,您经常会遇到以下术语:

  • blockdev:这是块设备,例如磁盘或磁盘分区。
  • 池:池由一个或多个块设备组成,其总大小固定,等于块设备的大小。
  • 文件系统:每个池可以包含一个或多个用于存储文件的文件系统。文件系统没有固定的总大小,因为它是精简配置的。如果数据大小接近文件系统的虚拟大小,Stratis 会自动增长精简卷和文件系统。

Stratis 池位于 /dev/stratis/ 目录下。

Stratis 支持的设备

Stratis 可与以下块设备配合使用:

  • iSCSI
  • LVM 逻辑卷
  • 设备映射器多路径
  • 硬盘驱动器
  • 卢克斯
  • 固态硬盘
  • NVMe存储设备
  • 姆德莱德

Stratis 软件组件

Stratis 提供两个软件组件:

  • stratisd 守护进程:管理块设备集合,并提供 D-Bus API。
  • stratis-cli:它提供了一个命令行工具stratis,它本身使用 D-Bus API 与 stratisd 进行通信。

第 1 步:在 RHEL 8/CentOS 8 上安装 Stratis

RHEL 8 随 stratisd 和 stratis-cli 一起分发,可以使用 yum 包管理工具轻松安装。

sudo yum -y install stratisd stratis-cli

您可以使用 rpm 命令获取完整的软件包详细信息:

# rpm -qi stratisd stratis-cli
Name        : stratisd
Version     : 2.4.2
Release     : 2.el8
Architecture: x86_64
Install Date: Mon 05 Jun 2023 10:57:36 PM UTC
Group       : Unspecified
Size        : 13527243
License     : MPLv2.0
Signature   : RSA/SHA256, Tue 09 Nov 2021 03:01:31 PM UTC, Key ID 15af5dac6d745a60
Source RPM  : stratisd-2.4.2-2.el8.src.rpm
Build Date  : Tue 09 Nov 2021 02:35:59 PM UTC
Build Host  : ord1-prod-x86build004.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email 
.....
Name        : stratis-cli
Version     : 2.4.2
Release     : 1.el8
Architecture: noarch
Install Date: Mon 05 Jun 2023 10:57:36 PM UTC
Group       : Unspecified
Size        : 311001
License     : ASL 2.0
Signature   : RSA/SHA256, Tue 09 Nov 2021 03:00:53 PM UTC, Key ID 15af5dac6d745a60
Source RPM  : stratis-cli-2.4.2-1.el8.src.rpm
Build Date  : Tue 09 Nov 2021 02:29:36 PM UTC
Build Host  : ord1-prod-x86build003.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email 

第 2 步:启动 Stratis 服务

安装 Stratis 软件包后,您需要启动该服务并启用它。

systemctl enable --now stratisd

确认服务状态:

$ systemctl status stratisd
● stratisd.service - Stratis daemon
   Loaded: loaded (/usr/lib/systemd/system/stratisd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2023-06-05 22:58:27 UTC; 11s ago
     Docs: man:stratisd(8)
 Main PID: 71943 (stratisd)
    Tasks: 6 (limit: 23036)
   Memory: 1.6M
   CGroup: /system.slice/stratisd.service
           └─71943 /usr/libexec/stratisd --log-level debug

Jun 05 22:58:27 rocky8.mylab.io stratisd[71943]: [2023-06-05T22:58:27Z INFO  libstratis::stratis::run] stratis daemon version 2.4.2 started
Jun 05 22:58:27 rocky8.mylab.io stratisd[71943]: [2023-06-05T22:58:27Z INFO  libstratis::stratis::run] Using StratEngine
Jun 05 22:58:27 rocky8.mylab.io stratisd[71943]: [2023-06-05T22:58:27Z INFO  libstratis::engine::strat_engine::liminal::identify] Beginning initial search for Stratis block devices
Jun 05 22:58:27 rocky8.mylab.io stratisd[71943]: [2023-06-05T22:58:27Z DEBUG libstratis::stratis::run] 0: thread started
Jun 05 22:58:27 rocky8.mylab.io stratisd[71943]: [2023-06-05T22:58:27Z DEBUG libstratis::stratis::run] 1: thread started
Jun 05 22:58:27 rocky8.mylab.io stratisd[71943]: [2023-06-05T22:58:27Z DEBUG libstratis::stratis::run] 2: thread started
Jun 05 22:58:27 rocky8.mylab.io stratisd[71943]: [2023-06-05T22:58:27Z DEBUG libstratis::stratis::run] 3: thread started
Jun 05 22:58:27 rocky8.mylab.io stratisd[71943]: [2023-06-05T22:58:27Z INFO  libstratis::stratis::ipc_support::dbus_support] D-Bus API is available
Jun 05 22:58:27 rocky8.mylab.io stratisd[71943]: [2023-06-05T22:58:27Z DEBUG libstratis::stratis::run] 4: thread started
Jun 05 22:58:27 rocky8.mylab.io systemd[1]: Started Stratis daemon.

第 3 步:创建 Stratis 池

为此,您需要未使用或未安装的块设备来创建 Stratis 池。每个块设备的大小应至少为 1 GiB。

在我的 RHEL 8 服务器上,我有以下块设备:

# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0            11:0    1 1024M  0 rom  
vda           252:0    0   20G  0 disk 
├─vda1        252:1    0    1G  0 part /boot
└─vda2        252:2    0   19G  0 part 
  ├─rhel-root 253:0    0   17G  0 lvm  /
  └─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
vdb           252:16   0   10G  0 disk 
vdc           252:32   0   10G  0 disk 
vdd           252:48   0   10G  0 disk 
vde           252:64   0   10G  0 disk

我将使用单个块设备 /dev/vdb 创建第一个池,并使用三个块设备 /dev/vdc、/dev/vdd、/dev/vdd 创建另一个池>

这些块设备不应有分区表,请通过以下方式确认:

sudo blkid -p /<devicepath>

如果它有分区表并且您想使用它,请首先清除设备,以便 Stratis 可以使用它。

sudo wipefs -a /<devicepath>

使用一个块设备创建池

要使用一个块设备 /dev/vdb 创建池,请使用:

sudo stratis pool create mypool1 /dev/vdb

列出可用池:

$ sudo stratis pool list
Name       Total Physical Size  Total Physical Used
mypool1                 10 GiB               52 MiB

创建包含三个块设备的池

现在,让我们创建另一个包含三个块设备的池 /dev/vdc、/dev/vdd、/dev/vdd

sudo stratis pool create mypool2 /dev/vdc /dev/vdd /dev/vde

您现在应该有两个池:

$ sudo stratis pool list
Name       Total Physical Size  Total Physical Used
mypool1                 10 GiB               52 MiB
mypool2                 30 GiB               60 MiB

从输出中我们可以看到卷的大小是所有块设备原始存储的总和。

第 4 步:从池创建文件系统

准备好池后,您可以使用以下语法在池上创建 Stratis 文件系统:

sudo stratis fs create <poolname>  <filesystemname>

请参阅下面的示例。

在 mypool1 上创建文件系统
sudo stratis fs create mypool1 logs
在 mypool2 上创建文件系统
sudo stratis fs create mypool2  data
sudo stratis fs create mypool2  web

要列出已创建的文件系统,请使用:

$ sudo stratis fs list
Pool Name  Name  Used     Created            Device                     
mypool1    logs  546 MiB  Dec 11 2018 01:00  /dev/stratis/mypool1/logs  
mypool2    data  546 MiB  Dec 11 2018 01:04  /dev/stratis/mypool2/data

您还可以将输出限制到指定池:

$ sudo stratis fs list mypool2
Pool Name  Name  Used     Created            Device                     
mypool2    data  546 MiB  Dec 11 2018 01:04  /dev/stratis/mypool2/data  
mypool2    web   546 MiB  Dec 11 2018 01:06  /dev/stratis/mypool2/web

lsblk 输出应类似于以下内容:

$ sudo lsblk 
NAME                                                                                        MAJ:MIN RM  SIZE RO TYPE    MOUNTPOINT
sr0                                                                                          11:0    1 1024M  0 rom     
vda                                                                                         252:0    0   20G  0 disk    
├─vda1                                                                                      252:1    0    1G  0 part    /boot
└─vda2                                                                                      252:2    0   19G  0 part    
  ├─rhel-root                                                                               253:0    0   17G  0 lvm     /
  └─rhel-swap                                                                               253:1    0    2G  0 lvm     [SWAP]
vdb                                                                                         252:16   0   10G  0 disk    
└─stratis-1-private-68bf465c93eb4aa98ed2264b38d8c42a-physical-originsub                     253:2    0  1.8G  0 stratis 
  ├─stratis-1-private-68bf465c93eb4aa98ed2264b38d8c42a-flex-thinmeta                        253:3    0   16M  0 stratis 
  │ └─stratis-1-private-68bf465c93eb4aa98ed2264b38d8c42a-thinpool-pool                      253:6    0  1.8G  0 stratis 
  │   ├─stratis-1-68bf465c93eb4aa98ed2264b38d8c42a-thin-fs-217bee04c2f14266b496eaada54a0311 253:12   0    1T  0 stratis 
  │   └─stratis-1-68bf465c93eb4aa98ed2264b38d8c42a-thin-fs-1f563ecb6e0c497ab3fc24d5b2e33fe1 253:13   0    1T  0 stratis 
  ├─stratis-1-private-68bf465c93eb4aa98ed2264b38d8c42a-flex-thindata                        253:4    0  1.8G  0 stratis 
  │ └─stratis-1-private-68bf465c93eb4aa98ed2264b38d8c42a-thinpool-pool                      253:6    0  1.8G  0 stratis 
  │   ├─stratis-1-68bf465c93eb4aa98ed2264b38d8c42a-thin-fs-217bee04c2f14266b496eaada54a0311 253:12   0    1T  0 stratis 
  │   └─stratis-1-68bf465c93eb4aa98ed2264b38d8c42a-thin-fs-1f563ecb6e0c497ab3fc24d5b2e33fe1 253:13   0    1T  0 stratis 
  └─stratis-1-private-68bf465c93eb4aa98ed2264b38d8c42a-flex-mdv                             253:5    0   16M  0 stratis 
vdc                                                                                         252:32   0   10G  0 disk    
vdd                                                                                         252:48   0   10G  0 disk    
vde                                                                                         252:64   0   10G  0 disk    
└─stratis-1-private-557de29f274a45d583c62cafbab8edd6-physical-originsub                     253:7    0  816M  0 stratis 
  ├─stratis-1-private-557de29f274a45d583c62cafbab8edd6-flex-thinmeta                        253:8    0   16M  0 stratis 
  │ └─stratis-1-private-557de29f274a45d583c62cafbab8edd6-thinpool-pool                      253:11   0  768M  0 stratis 
  ├─stratis-1-private-557de29f274a45d583c62cafbab8edd6-flex-thindata                        253:9    0  768M  0 stratis 
  │ └─stratis-1-private-557de29f274a45d583c62cafbab8edd6-thinpool-pool                      253:11   0  768M  0 stratis 
  └─stratis-1-private-557de29f274a45d583c62cafbab8edd6-flex-mdv                             253:10   0   16M  0 stratis

第5步:挂载Stratis文件系统

要挂载文件系统,请使用 Stratis 在 /dev/stratis/ 目录中维护的条目。请参阅下面的示例:

sudo mkdir /data
sudo mount /dev/stratis/mypool2/data /data

我还将挂载 /dev/stratis/mypool2/web

sudo mount /dev/stratis/mypool2/web /srv

检查当前挂载点:

$ sudo df -hT | grep stratis

输出是:

将持久挂载点添加到 /etc/fstab

要配置持久挂载,请获取文件系统的 UUID。

# blkid -p /dev/stratis/mypool2/web
/dev/stratis/mypool2/web: UUID="7d3b49be-51d5-499c-b12b-b5ebe118c416" TYPE="xfs" USAGE="filesystem"

# blkid -p /dev/stratis/mypool2/data
/dev/stratis/mypool2/data: UUID="a6f40f25-140c-43e3-97af-e9e771f08a54" TYPE="xfs" USAGE="filesystem"

复制打印的 UUID 并将安装选项添加到 /etc/fstab 文件

echo "UUID=7d3b49be-51d5-499c-b12b-b5ebe118c416 /srv xfs defaults 0 0" | sudo tee -a /etc/fstab
echo "UUID=a6f40f25-140c-43e3-97af-e9e771f08a54 /data xfs defaults 0 0" | sudo tee -a /etc/fstab

测试 :

sudo umount /data
sudo umount /srv
sudo mount -a

其他 Stratis 管理命令

以下是您可以在 Stratis 池上执行的其他管理任务。

删除 Stratis 文件系统

在删除 Stratis 文件系统之前,您需要先卸载它

sudo umount /mountpoint

然后销毁它:

sudo stratis filesystem destroy <poolname<  <filesystemname>

例子

sudo umount /srv
sudo stratis filesystem destroy mypool2 web

确认 :

$  sudo stratis filesystem list mypool2
Pool Name  Name  Used     Created            Device                     
mypool2    data  546 MiB  Dec 11 2018 01:04  /dev/stratis/mypool2/data

将磁盘添加到现有池

要将另一个磁盘添加到池中,请使用:

sudo stratis pool add-data <poolname> /<devicepath>

例子 :

sudo stratis pool add-data mypool1 /dev/vdf

确认 :

$ sudo stratis pool list 
Name       Total Physical Size  Total Physical Used
mypool1                 20 GiB             1.12 GiB
mypool2                 30 GiB              606 MiB

创建 Stratis 快照

Stratis 快照是源 FS 的读/写精简配置的时间点副本。

要创建 Stratis 快照,请使用:

sudo stratis fs snapshot <poolname> <fsname> <snapshotname>

例子 :

sudo stratis fs snapshot  mypool2  web websnapshot-$(date +%Y-%m-%d)

确认 :

$ sudo stratis filesystem list mypool2
Pool Name  Name                    Used     Created            Device                                       
mypool2    web                     546 MiB  Dec 11 2018 01:06  /dev/stratis/mypool2/web                     
mypool2    websnapshot-2018-12-11  546 MiB  Dec 11 2018 03:34  /dev/stratis/mypool2/websnapshot-2018-12-11  
mypool2    data                    546 MiB  Dec 11 2018 01:04  /dev/stratis/mypool2/data

您可以独立于源文件系统挂载和操作快照。

sudo  mount /dev/stratis/mypool2/websnapshot-2018-12-11 /mnt
for i in {1..10}; do sudo touch /mnt/$i.txt; done
ls /mnt
ls /srv
sudo umount /mnt

将 Stratis 文件系统恢复到以前的快照

可以将 Statis 文件系统恢复到之前创建的快照。见下文

首先卸载并删除原始文件系统:

sudo umount /srv
sudo stratis filesystem destroy mypool2 web

然后以原始文件系统的名称创建快照的副本:

sudo  stratis filesystem snapshot mypool2  websnapshot-2018-12-11 web

挂载快照

sudo mount /dev/stratis/mypool2/web /srv

该文件系统应包含我们添加到快照的数据

$ ls /srv/
10.txt     1.txt  3.txt  5.txt  7.txt  9.txt
1..10.txt  2.txt  4.txt  6.txt  8.txt

同时更改 /etc/fstab 上的 UUID 以匹配新的文件系统 UUID。

# blkid -p /dev/stratis/mypool2/web
/dev/stratis/mypool2/web: UUID="110b737f-2117-4624-8c97-c3def8b2a539" TYPE="xfs" USAGE="filesystem"

# grep srv /etc/fstab 
UUID=110b737f-2117-4624-8c97-c3def8b2a539 /srv xfs defaults 0 0

删除 Stratis 快照

要删除快照,请卸载快照。

sudo unmount /snapmountpoint

现在销毁快照:

sudo stratis filesystem destroy <poolname> <snapshotname>

例子 :

sudo stratis filesystem destroy mypool2 websnapshot-2018-12-11

查看 :

$ sudo stratis filesystem list mypool2
Pool Name  Name  Used     Created            Device                     
mypool2    web   546 MiB  Dec 11 2018 03:58  /dev/stratis/mypool2/web   
mypool2    data  546 MiB  Dec 11 2018 01:04  /dev/stratis/mypool2/data

重命名文件系统

要重命名文件系统,请使用以下语法:

sudo stratis filesystem rename <poolname> <old-fsname>  <new-fsname>

以下示例将日志文件系统重命名为备份

sudo stratis filesystem rename mypool1  logs  backups

确认 :

$ sudo stratis filesystem list mypool1
Pool Name  Name     Used     Created            Device                        
mypool1    backups  546 MiB  Dec 11 2018 01:00  /dev/stratis/mypool1/backups

删除 Stratis 池

要完全销毁 Stratis 池,您需要:

  • 卸载池上的所有文件系统
  • 销毁文件系统:
  • 摧毁水池

在下面的示例中,我们将销毁 mypool2

1. 列出可用的文件系统

$ sudo stratis filesystem list mypool2
Pool Name  Name  Used     Created            Device                     
mypool2    data  546 MiB  Dec 11 2018 01:04  /dev/stratis/mypool2/data

2. 卸载文件系统

sudo umount /dev/stratis/mypool2/data

3. 销毁文件系统:

sudo stratis filesystem destroy mypool2 data

4. 销毁池

sudo stratis pool destroy mypool2

4. 验证池是否不再存在:

$ sudo stratis pool list
Name       Total Physical Size  Total Physical Used
mypool1                 20 GiB             1.12 GiB

6. 删除已损坏文件系统的 /etc/fstab 行

sudo vim /etc/fstab

您已经了解了如何安装和使用 Stratis 来管理 RHEL 8 和 Fedora Linux 发行版上的分层本地存储。我的下一篇文章将介绍 Stratis 在 CentOS 7、Debian 和 Ubuntu 上的安装和使用。

类似指南:

在 RHEL 8/CentOS 8 上安装和配置 NFS 服务器

在 CentOS 8/CentOS 7 上使用 Heketi 设置 GlusterFS 存储

如何使用 Minio 设置 S3 兼容的对象存储服务器

©2015-2025 Norria support@norria.com