Stratis存储速查表参考教程

时间:2020-02-23 14:31:28  来源:igfitidea点击:

这是终极的Stratis Local Storage Management速查表/参考教程。 Stratis是Linux的本地存储管理器。它为存储池顶部的托管文件系统提供了其他功能给用户。Stratis通过集成layersLinux devicemapper子系统和XFS文件系统来提供ZFS/Btrfs风格的功能。

Stratis使我们可以访问高级存储功能,例如:精简配置文件系统快照基于池的管理监视。

Stratis术语

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

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

Stratis支持的设备

Stratis可与以下块设备配合使用:iSCSI LVM逻辑卷设备映射器多路径硬盘LUKSSSDs NVMe存储设备mdraid

Stratis软件组件

Stratis提供了两个软件组件:Stratisd守护程序:管理块设备的集合,并提供D-Bus API。Stratis-cli:提供命令行工具Stratis,其本身使用D-Bus API与Stratisd进行通信。

在Linux上安装Stratis

使用以下教程在Linux服务器上安装Stratis:

安装并使用Stratis来管理RHEL 8/CentOS 8上的本地存储

创建一个Stratis池

为此,我们将需要未使用或者安装的块设备,以从中创建Stratis池。每个块设备应至少击败1 GiB大小。

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

# 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

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

从池中创建文件系统

准备好池之后,可以使用以下语法在池上创建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 2016 01:00  /dev/stratis/mypool1/logs  
mypool2    data  546 MiB  Dec 11 2016 01:04  /dev/stratis/mypool2/data

我们还可以将输出限制为指定的池:

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

lslkk的输出应类似于以下内容:

$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

挂载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文件系统之前,需要先卸载它

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 2016 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 Snapshot是源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 2016 01:06  /dev/stratis/mypool2/web                     
mypool2    websnapshot-2016-12-11  546 MiB  Dec 11 2016 03:34  /dev/stratis/mypool2/websnapshot-2016-12-11  
mypool2    data                    546 MiB  Dec 11 2016 01:04  /dev/stratis/mypool2/data

我们可以独立于源文件系统安装和操作Snapshot。

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

将Stratis文件系统还原到以前的快照

可以将Statis文件系统还原为先前创建的快照。见下文

FirstUnmount并删除原始文件系统:

sudo umount /srv
sudo stratis filesystem destroy mypool2 web

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

sudo  stratis filesystem snapshot mypool2  websnapshot-2016-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-2016-12-11

检查:

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

重命名文件系统

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

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

下面的示例将logs文件系统重命名为备份

sudo stratis filesystem rename mypool1  logs  backups

确认:

$sudo stratis filesystem list mypool1
Pool Name  Name     Used     Created            Device                        
mypool1    backups  546 MiB  Dec 11 2016 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 2016 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.Remove/etc/fstab行以销毁文件系统

sudo vim /etc/fstab