Stratis存储速查表参考教程
这是终极的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