在 Centos 8 中使用 Stratis 管理本地存储

存储 存储软件
Stratis是RHEL8/Centos8中提供的一个新的本地存储管理工具,它将有助于在块设备上创建分层存储。在RHEL8/Centos8中,可以通过安装两个软件包获得Stratis。

[[397428]]

Stratis是RHEL8/Centos8中提供的一个新的本地存储管理工具,它将有助于在块设备上创建分层存储。在RHEL8/Centos8中,可以通过安装两个软件包获得Stratis。在RHEL7,我们有了BTRFS文件系统,Red Hat在RHEL 8中删除了BTRFS支持,并提供了Stratis本地存储管理系统。

[[397429]]

为了开始使用Stratis,我们需要添加一些磁盘设备,并创建一个单独的池,在一个Stratis池中,可以创建多个文件系统。

安装Stratis

通过下面命令使用yum安装stratis:

  1. [root@localhost ~]# yum -y install stratis* 

安装完成之后,设置开机启用并立即启动:

  1. [root@localhost ~]# systemctl enable stratisd --now 

查看以下是否启动:

列出可用磁盘

在这添加了5个2GB磁盘,使用下面命令列出磁盘:

  1. [root@localhost ~]# lsblk 

列出现有的池和文件系统:

使用下面几条命令列出块设备、stratis池、文件系统:

  1. [root@localhost ~]# stratis blockdev list  
  2. [root@localhost ~]# stratis pool list 
  3. [root@localhost ~]# stratis filesystem list 

创建池和文件系统

首先,我们创建“data01_pool”的池。将/dev/sda,/dev/sdb,/dev/sdc,/dev/sdd添加到该池中:

  1. [root@localhost ~]# stratis pool create data01_pool /dev/sd{a..d} 
  2. [root@localhost ~]# stratis pool list  
  3. [root@localhost ~]# stratis blockdev list 

上面命令创建"data01_pool"池、查看池、查看块设备。

下面从“data01_pool”池中创建两个文件系统:

  1. [root@localhost ~]# stratis filesystem create data01_pool user_data01 
  2. [root@localhost ~]# stratis filesystem create data01_pool user_data02 

下面命令列出创建的文件系统:

  1. [root@localhost ~]# stratis filesystem list  
  2. 或者 
  3. [root@localhost ~]# stratis fs list 

上图中列出的文件系统中,字段Device是stratis设备的位置。

挂载创建好的文件系统

一旦从池中创建了文件系统,请创建一个挂载点并挂载文件系统。默认情况下在创建文件系统时,它将使用XFS文件系统对其进行格式化。

  1. # 创建挂载点 
  2. [root@localhost ~]# mkdir /user_data01 
  3. [root@localhost ~]# mkdir /user_data02 
  4. # 挂载文件系统 
  5. [root@localhost ~]# mount /stratis/data01_pool/user_data01 /user_data01/ 
  6. [root@localhost ~]# mount /stratis/data01_pool/user_data02 /user_data02/ 

使用df -h查看挂载的情况:

  1. [root@localhost ~]# df -h /user_data* 
  2. Filesystem                                                                                       Size  Used Avail Use% Mounted on 
  3. /dev/mapper/stratis-1-359fd7072d8349d390741a1a71f885fb-thin-fs-0657c26979ed443aa4d3a70c15606e1c  1.0T  7.2G 1017G   1% /user_data01 
  4. /dev/mapper/stratis-1-359fd7072d8349d390741a1a71f885fb-thin-fs-b91b970f23d94eb6b2ed56f347f770d2  1.0T  7.2G 1017G   1% /user_data02 

希望你已经观察到我们没有格式化文件系统。Stratis程序为我们解决了这一问题,并创建了XFS类型的文件系统。

同样,由于自动精简配置,默认情况下,它将显示文件系统大小为1 TB,并且该大小仅是虚拟的,而不是实际的。要检查实际大小,您将必须使用Stratis命令

使用df -hT /user*匹配出user_data01和user_data02挂载点的文件系统,可以看到他们的类型都是XFS格式。

在/etc/fstab中添加开机挂载的条目

首先需要获取文件系统的UUID,有两种方式:

第一种方式,是通过使用stratis fs list就可以获取到文件系统的UUID。

  1. [root@localhost ~]# stratis fs list 

第二种方式,使用blkid获取块存储的uuid,过滤出stratis文件系统:

  1. [root@localhost ~]# blkid|grep stratis 

下面就是将挂载信息写入到/etc/fstab中:

  1. [root@localhost ~]# echo "UUID=0657c26979ed443aa4d3a70c15606e1c /user_data01  xfs  defaults,x-systemd.requires=stratis.service  0 0" >> /etc/fstab  
  2. [root@localhost ~]# echo "UUID=b91b970f23d94eb6b2ed56f347f770d2 /user_data02  xfs  defaults,x-systemd.requires=stratis.service  0 0" >> /etc/fstab 

检查Stratis守护程序版本

如果需要检查Stratis运行的守护进程版本,使用如下命令:

  1. [root@localhost ~]# stratis daemon version  
  2. 2.1.0 

向Stratis池中添加其他磁盘

在Stratis管理下,将新的块设备添加到现有池非常容易。在上一篇文章《在Centos 中创建Stratis本地存储(一)》设置中,“ data01_pool”中有4个磁盘,现在我们需要通过添加新磁盘来扩展池中的空间。使用选项add-data来添加新磁盘,下面向"data01_pool"池中添加"/dev/sde"磁盘。

  1. [root@localhost ~]# stratis pool list  
  2. Name                       Total Physical   Properties 
  3. data01_pool   8 GiB / 1.11 GiB / 6.89 GiB      ~Ca,~Cr 
  4. [root@localhost ~]# stratis pool add-data data01_pool /dev/sde  
  5. [root@localhost ~]# stratis pool list  
  6. Name                        Total Physical   Properties 
  7. data01_pool   10 GiB / 1.12 GiB / 8.88 GiB      ~Ca,~Cr 

可以看到上图中扩展前是8G,扩展之后变成了10G。再查看一下stratis的块设备:

  1. [root@localhost ~]# stratis pool list  
  2. Name                       Total Physical   Properties 
  3. data01_pool   8 GiB / 1.11 GiB / 6.89 GiB      ~Ca,~Cr 
  4. [root@localhost ~]# stratis pool add-data data01_pool /dev/sde  
  5. [root@localhost ~]# stratis pool list  
  6. Name                        Total Physical   Properties 
  7. data01_pool   10 GiB / 1.12 GiB / 8.88 GiB      ~Ca,~Cr 

重命名池和文件系统

Stratis具有在运行中重命名池或文件系统的功能,而不会影响任何正在运行的设置。下面让我们将当前池名称“data01_pool”重命名为“data01_pool_old”。

  1. [root@localhost ~]# stratis pool rename data01_pool date01_pool_old 

下面我们来重命名文件系统,重命名文件系统类似于重命名池:

  1. [root@localhost ~]# stratis fs rename date01_pool_old user_data01 sys_data01 

在Stratis中创建快照

Stratis可以对任何文件系统进行快照。让我们对服务器中现有文件系统进行快照。下面先再user_data01中写入一些数据:

  1. [root@localhost ~]# touch /user_data01/file{1..100}.txt 

下面来打快照:

  1. [root@localhost ~]# stratis fs snapshot date01_pool_old sys_data01 sys_data01_snap 

可以看到快照已生成。下面挂载/stratis/data01_pool_old/sys_data01_snap这个快照到/mnt目录,然后查看文件是否存在。

  1. [root@localhost ~]# mount /stratis/date01_pool_old/sys_data01_snap /mnt/ 

删除Stratis文件系统

删除Stratis文件系统之前,需要在/etc/fstab中删除stratis相关的那两个文件系统条目。下面我只注释掉,没有删除条目。

卸载文件系统:

  1. [root@localhost ~]# umount /user_data01  
  2. [root@localhost ~]# umount /user_data02 

下面就开始删除文件系统啦:

  1. [root@localhost ~]# stratis fs destroy date01_pool_old sys_data01 
  2. [root@localhost ~]# stratis fs destroy date01_pool_old user_data02 
  3. [root@localhost ~]# stratis fs destroy date01_pool_old sys_data01_snap  
  4. [root@localhost ~]# stratis fs destroy date01_pool_old user_data02_snap 

删除Stratis池

要删除Stratis池,我们应该删除在其下创建的所有文件系统。否则会提示:

  1. [root@localhost ~]# stratis pool destroy data01_pool_old  
  2. Execution failure caused by
  3. BUSY: filesystems remaining on pool 

下面来删除池:

  1. [root@localhost ~]# stratis pool destroy date01_pool_old  
  2. [root@localhost ~]# stratis pool  
  3. Name   Total Physical   Properties 

总结

Stratis是RHEL8/Centos8中提供的一个新的本地存储管理工具,它将有助于在块设备上创建分层存储。在RHEL8/Centos8中,可以通过安装两个软件包获得Stratis。我们已经看到了如何通过添加磁盘并重命名来管理Stratis分层存储。

本文转载自微信公众号「Linux就该这么学」,可以通过以下二维码关注。转载本文请联系Linux就该这么学公众号。

 

责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2018-06-11 12:53:53

LinuxStratis本地存储

2018-06-19 16:05:27

LinuxStratis存储

2018-03-26 14:25:55

KubernetesSkaffold命令

2010-01-13 13:04:25

minicom软件

2021-04-28 16:41:26

Stratis磁盘加密系统运维

2021-10-14 18:00:51

systemd系统管理员系统运维

2022-04-30 09:41:14

LinuxNTP服务器

2017-03-02 09:05:56

CentOS 7Sendmail邮件

2013-12-13 17:21:14

Lua脚本语言

2009-06-25 16:49:24

Hibernate

2023-11-17 12:04:39

GORM并发

2023-04-12 15:25:09

Bytrace鸿蒙

2013-11-20 15:32:13

红帽RedHatYUM包

2021-03-17 11:21:06

React数据存储

2021-10-13 14:06:46

MySQLUtf8符号

2009-03-17 15:51:41

数据库存储过程封装

2020-12-15 18:56:26

MirantisDockersKubernetes

2024-03-04 11:52:16

Flutter应用程序资产管理

2017-04-05 13:17:26

LinuxShellvi

2011-06-15 10:08:01

Qt CVS
点赞
收藏

51CTO技术栈公众号