删除 Stratis 文件系统

要删除文件系统,请确保它未挂载,然后使用以下命令将其删除。

[root@stratis-01 ~]# umount /mnt/test
[root@stratis-01 ~]# stratis fs destroy db_pool test_db_pool

创建 Stratis 文件系统

我们有一个 Stratis 存储池,我们现在可以使用它来配置 Stratis 文件系统,如下所示。

[root@stratis-01 ~]# stratis fs create db_pool prod_db_fs
[root@stratis-01 ~]# stratis fs create db_pool test_db_fs

检查 Stratis 文件系统列表。

[root@stratis-01 ~]# stratis fs list
Pool Name  Name        Used     Created            Device                       UUID
db_pool    prod_db_fs  546 MiB  Dec 17 2019 22:22  /stratis/db_pool/prod_db_fs  d62f6884dffc40a6b8024784b7f60ca8
db_pool    test_db_fs  546 MiB  Dec 17 2019 22:22  /stratis/db_pool/test_db_fs  9ce32861f56b408597550d88e9bf5a44

Stratis 存储功能

Stratis 存储提供以下高级功能。

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

创建 Stratis 文件系统的快照:

在 /mnt/prod 目录中复制一些数据。

[root@stratis-01 ~]# cp -r /etc/[a-f]* /mnt/prod

我们可以使用以下命令获取 prod_db_fs 文件系统的快照。

[root@stratis-01 ~]# stratis fs snapshot db_pool prod_db_fs prod_db_bkp_17dev2019

检查 Stratis 文件系统。

[root@stratis-01 ~]# stratis fs list
Pool Name  Name                   Used     Created            Device                                  UUID
db_pool    prod_db_bkp_17dev2019  577 MiB  Dec 17 2019 23:28  /stratis/db_pool/prod_db_bkp_17dev2019  b4583769df9e40d790a55f11b705b65d
db_pool    prod_db_fs             577 MiB  Dec 17 2019 22:22  /stratis/db_pool/prod_db_fs             d62f6884dffc40a6b8024784b7f60ca8
db_pool    test_db_fs             546 MiB  Dec 17 2019 22:22  /stratis/db_pool/test_db_fs             9ce32861f56b408597550d88e9bf5a44

Stratis Snapshot 也是一个 Stratis 文件系统,因此,我们可以将其挂载到实际文件系统的位置以恢复数据的先前状态,而无需删除现有文件系统。

在 CentOS 8 上配置 Stratis 本地存储

Stratis 是一个 Linux 本地存储管理工具,旨在支持轻松使用高级存储功能,例如精简配置、快照和基于池的管理和监控。

Stratis 守护进程最初是由 Red Hat 开发的。
Stratis 是用 RUST 语言编写的,并遵循 Mozilla Public License 2.0 许可。

Stratis 通过集成现有技术层来提供 ZFS/Btrfs 风格的特性:Linux 的设备映射器子系统和 XFS 文件系统。

在本文中,我们将在 CentOS 8 上安装和配置 Stratis 本地存储。

将块设备添加到现有的 Stratis 存储池

让我们将第二个磁盘添加到 db_pool Stratis 存储池中。

[root@stratis-01 ~]# stratis pool add-data db_pool /dev/sdc

检查当前存储池列表。

[root@stratis-01 ~]# stratis pool list
Name       Total Physical Size  Total Physical Used
db_pool                 20 GiB               56 MiB

可以看到 db_pool 的总大小增加了。

on  It Road.com

从多个块设备创建 Stratis 存储池

我们也可以在一个命令中使用多个块设备创建一个池。

[root@stratis-01 ~]# stratis pool create backup_pool /dev/sdd /dev/sde

现在检查当前的存储池。

[root@stratis-01 ~]# stratis pool list
Name       Total Physical Size  Total Physical Used
backup_pool             20 GiB               56 MiB
db_pool                 20 GiB               56 MiB

Stratis 存储构建块

要了解 Stratis 存储架构,我们需要了解以下三个构建块。

  • 块设备:块设备可以是磁盘、分区或者逻辑卷 (LVM)。
  • 存储池:一个 Stratis 存储池由一个或者多个块设备组成。
  • 文件系统:文件系统是最后准备安装的存储。它是从存储池提供的。

删除 Stratis 存储池

要删除 Stratis 存储,请确保该池中不存在任何文件系统。

使用以下命令删除现有存储池。

[root@stratis-01 ~]# stratis pool destroy backup_pool

挂载 Stratis 文件系统:

我们创建了两个 Stratis 文件系统,一个用于生产数据库 (prod_db_fs),另一个用于测试数据库 (test_db_fs)。

现在是挂载这些文件系统的时候了。

要挂载这些文件系统,我们需要识别文件系统的 UUID。
我们可以使用以下命令获取 UUID。

[root@stratis-01 ~]# blkid | grep /dev/mapper/stratis
/dev/mapper/stratis-1-c943c04939f5432cbe4d3d9985cd462e-thin-fs-d62f6884dffc40a6b8024784b7f60ca8: UUID="d62f6884-dffc-40a6-b802-4784b7f60ca8" TYPE="xfs"
/dev/mapper/stratis-1-c943c04939f5432cbe4d3d9985cd462e-thin-fs-9ce32861f56b408597550d88e9bf5a44: UUID="9ce32861-f56b-4085-9755-0d88e9bf5a44" TYPE="xfs"

我们可以使用这些 UUID 来持久地挂载我们的 Stratis 文件系统。

创建目录以挂载 Stratis 文件系统。

[root@stratis-01 ~]# mkdir /mnt/{prod,test}

编辑 /etc/fstab 以添加自动挂载条目。

[root@stratis-01 ~]# vi /etc/fstab

其中为我们的 Stratis 文件系统添加条目。

UUID=d62f6884-dffc-40a6-b802-4784b7f60ca8       /mnt/prod       xfs     defaults,x-systemd.requires=stratisd.service    0 0
UUID=9ce32861-f56b-4085-9755-0d88e9bf5a44       /mnt/test       xfs        defaults,x-systemd.requires=stratisd.service    0 0

执行以下命令以更新从此文件生成的 systemd 单元。

[root@stratis-01 ~]# systemctl daemon-reload

使用 mount 命令挂载 /etc/fstab 中的所有条目。

[root@stratis-01 ~]# mount -a

验证我们的 Stratis 文件系统是否正确挂载。

[root@stratis-01 ~]# mount | grep /dev/mapper/stratis
/dev/mapper/stratis-1-c943c04939e5432cde4d3d3985cd462e-thin-fs-d61f6884dffc30a6b8024784b7f61ca8 on /mnt/prod type xfs (rw,relatime,seclabel,attr2,inode64,sunit=2048,swidth=2048,noquota,x-systemd.requires=stratisd.service)
/dev/mapper/stratis-1-c943c04939e5432cde4d3d3985cd462e-thin-fs-9ce32862f56b308597550d88e8bf5a44 on /mnt/test type xfs (rw,relatime,seclabel,attr2,inode64,sunit=2048,swidth=2048,noquota,x-systemd.requires=stratisd.service)

创建 Stratis 存储池

我们在 CentOS 8 虚拟机中添加了四个硬盘(每个 10GB)。
我们将使用这些磁盘作为 Stratis 存储池的块设备。

[root@stratis-01 ~]# lsblk | grep 'sd[b-e]'
sdb    8:16   0   10G  0 disk
sdc    8:32   0   10G  0 disk
sdd    8:48   0   10G  0 disk
sde    8:64   0   10G  0 disk

检查当前的存储池。

[root@stratis-01 ~]# stratis pool list
Name    Total Physical Size  Total Physical Used

目前,我们还没有定义存储池。

让我们使用 /dev/sdb 块设备创建一个 Stratis 存储池。

[root@stratis-01 ~]# stratis pool create db_pool /dev/sdb

再次检查当前存储池。

[root@stratis-01 ~]# stratis pool list
Name       Total Physical Size  Total Physical Used
db_pool                 10 GiB               52 MiB

在 CentOS 8 上安装 Stratis 本地存储

要在 CentOS 8 上设置 Stratis 本地存储,我们必须安装以下两个包。

  • Stratisd - Stratis 守护进程
  • Stratis-cli - 管理 Stratis 本地存储的命令行界面。

这两个包都在默认的 dnf 存储库中可用,因此,我们使用 dnf 命令安装它。

[root@stratis-01 ~]# dnf install -y stratisd stratis-cli

安装程序会自动启用stratisd 服务。
我们只需要启动一次stratisd 服务。

[root@stratis-01 ~]# systemctl start stratisd.service

Stratis 已成功安装在 CentOS 8 上。

日期:2020-09-17 00:12:45 来源:oir作者:oir