(Linux下的stratis高级存储)
一、stratis存储介绍
1.stratis存储简介
Stratis将磁盘设备放置于一个精简配置的共享池中,stratis 文件系统没有固定大小,也不 会预分配未使用的块空间。 一个共享池中可以创建多个文件系统,文件系统类型为xfs.
2.stratis的架构图
3.stratis存储的高级特性
1.自动精简配置Thin provisioning 2.文件系统快照File system snapshots 3.基于池的存储管理Pool-based management 4.存储监控Monitoring
4.stratis的专业术语
blockdev:这是一个块设备,例如磁盘或磁盘分区
Pool池:一个池由一个或多个具有固定总大小的块设备组成,其大小等于块设备的总大小。
filesystem文件系统:每个池可以包含一个或多个文件系统,用于存储文件。
文件系统没有固定的总大小,如果数据的大小接近文件系统的虚拟大小,分层就会自动增加卷和文件系统空间大小,只要池的物理空间充够大,就不用担心文件系统空间会爆掉
5.stratis支持的设备
iSCSI
LVM逻辑卷
Device Mapper Multipath设备多路径
硬盘驱动器
LUKS
SSDs
NVMe存储设备
mdraid软件Raid
二、配置stratis精简池
1.系统版本
[root@node2 ~]# cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.0 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.0"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.0 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8.0:GA"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.0
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.0"
2.安装stratis包
[root@node2 ~]# yum -y install stratis-cli.noarch stratisd
3.开启服务
[root@node2 ~]# systemctl enable --now stratisd
4.创建精简池
[root@node2 ~]# stratis pool create pool01 /dev/sda /dev/sdb
5.查看所有精简池信息
[root@node2 ~]# stratis pool list
Name Total Physical Size Total Physical Used
pool01 40 GiB 72 MiB
6.查看单个精简池详细信息
[root@node2 ~]# stratis blockdev list pool01
Pool Name Device Node Physical Size State Tier
pool01 /dev/sda 20 GiB In-use Data
pool01 /dev/sdb 20 GiB In-use Data
三、配置stratis文件系统
1.创建文件系统
[root@node2 ~]# stratis filesystem create pool01 fs01
2.查看文件系统
[root@node2 ~]# stratis filesystem list
Pool Name Name Used Created Device UUID
pool01 fs01 546 MiB Jun 22 2022 15:14 /stratis/pool01/fs01 3f5b31456c4348e29a11a628ec08dc2a
四、挂载stratis文件系统
1.查看uuid
[root@node2 ~]# lsblk --output=UUID /stratis/pool01/fs01
UUID
3f5b3145-6c43-48e2-9a11-a628ec08dc2a
2.配置自动挂载
[root@node2 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Mar 19 22:38:50 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=87963a70-7bf1-415a-90dc-952c441fb8a9 / xfs defaults 0 0
UUID=67c8633f-d3f0-4901-9677-c5bdf032d810 /boot xfs defaults 0 0
UUID=86cc5bb5-f6fa-45de-9d97-efef926f6549 swap swap defaults 0 0
UUID=3f5b3145-6c43-48e2-9a11-a628ec08dc2a /data/stratis xfs defaults,x-systemd.requires=stratisd.service 0 0
3.挂载目录
[root@node2 ~]#
[root@node2 ~]# mount -a
4.查看磁盘
[root@node2 ~]# df -hT |grep stratis
/dev/mapper/stratis-1-2b0561ccf26a47ae96f08e0ff198654c-thin-fs-3f5b31456c4348e29a11a628ec08dc2a xfs 1.0T 7.2G 1017G 1% /data/stratis
五、向精简池添加设备
[root@node2 ~]# stratis pool add-data pool01 /dev/sdd
六、stratis的快照设置
1.创建快照
[root@node2 ~]# stratis filesystem snapshot pool01 fs01 snap01
2.恢复快照
①删除文件系统
[root@node2 ~]# umount /stratis/pool01/fs01
[root@node2 ~]# stratis filesystem destroy pool01 fs
②还原文件系统
[root@node2 ~]# stratis filesystem snapshot pool01 snap01 fs01
Execution failure caused by:
ALREADY EXISTS: fs01
③查看文件系统
[root@node2 ~]# stratis filesystem list
Pool Name Name Used Created Device UUID
pool01 fs01 546 MiB Jun 22 2022 15:14 /stratis/pool01/fs01 3f5b31456c4348e29a11a628ec08dc2a
pool01 snap01 546 MiB Jun 22 2022 15:26 /stratis/pool01/snap01 958fe41bcd3342a79bb95709f97c40c2
七、startis的基本管理
1.查看文件系统
[root@node2 ~]# stratis filesystem list
Pool Name Name Used Created Device UUID
pool01 fs01 546 MiB Jun 22 2022 15:14 /stratis/pool01/fs01 3f5b31456c4348e29a11a628ec08dc2a
pool01 snap01 546 MiB Jun 22 2022 15:26 /stratis/pool01/snap01 958fe41bcd3342a79bb95709f97c40c2
2.查看精简池
[root@node2 ~]# stratis blockdev list pool01
Pool Name Device Node Physical Size State Tier
pool01 /dev/sda 20 GiB In-use Data
pool01 /dev/sdb 20 GiB In-use Data
3.删除文件系统
[root@node2 ~]# stratis filesystem destroy pool01 fs
4.删除精简池
[root@node2 ~]# stratis pool destroy pool01
5.关于快照相关命令
[root@node2 ~]# stratis filesystem snapshot --help
usage: stratis filesystem snapshot [-h] pool_name origin_name snapshot_name
positional arguments:
pool_name pool name
origin_name origin name
snapshot_name snapshot name
optional arguments:
-h, --help show this help message and exit
6.关于文件系统相关命令
[root@node2 ~]# stratis filesystem --help
usage: stratis filesystem [-h] {create,snapshot,list,destroy,rename} ...
optional arguments:
-h, --help show this help message and exit
subcommands:
{create,snapshot,list,destroy,rename}
create Create filesystems in a pool
snapshot Snapshot the named filesystem in a pool
list List filesystems
destroy Destroy filesystems in a pool
rename Rename a filesystem