RH134 使用STRATIS管理分层存储
在RHEL 8中,红帽推出了Stratis存储管理解决方案。与其他存储项目的尝试一样,Stratis 的开发并不是从零开始,而是使用现有的RHEL存储组件。Stratis 以管理物理存储设备池的服务形式运行,并透明地为所创建的文件系统创建和管理卷。由于Stratis使用现有的存储驱动程序和工具,因此Stratis也支持当前在LVM、XFS 和设备映射器中使用的所有高级存储功能。
一、Stratis文件系统介绍
Stratis 是一个卷管理文件系统volume-managing filesystem(VMF),类似于 ZFS 和 Btrfs。它使用了存储“池”的核心思想,该思想被各种 VMF 和 形如 LVM 的独立卷管理器采用。VMF 更进一步与文件系统层结合起来。用户无需在卷上部署选取的文件系统,因为文件系统和卷已经被合并在一起,成为一个概念上的文件树(ZFS 称之为数据集dataset,Brtfs 称之为子卷subvolume,Stratis 称之为文件系统),文件数据位于存储池中,但文件大小仅受存储池整体容量限制。
Stratis分层高级的存储功能
- 自动精简配置Thin provisioning
- 文件系统快照File system snapshots
- 基于池的存储管理Pool-based management
- 存储监控Monitoring
二、创建使用Stratis文件系统
需要先安装相关软件包,并启用
1[root@serverb ~]# yum install stratis-cli stratisd
2[root@serverb ~]# systemctl enable --now stratisd
创建文件系统
1[root@serverb ~]# stratis pool create pool1 /dev/vdb
2[root@serverb ~]# ls /stratis/
3pool1
4[root@serverb ~]# ls /stratis/pool1/
5[root@serverb ~]# stratis pool list
6Name Total Physical
7pool1 5 GiB / 37.63 MiB / 4.96 GiB
8[root@serverb ~]# stratis pool add-data pool1 /dev/vdc
9[root@serverb ~]# stratis blockdev list pool1
10Pool Name Device Node Physical Size Tier
11pool1 /dev/vdb 5 GiB Data
12pool1 /dev/vdc 5 GiB Data
13[root@serverb ~]# stratis filesystem create pool1 filesystem1
14[root@serverb ~]# ls /stratis/pool1/filesystem1
15/stratis/pool1/filesystem1
16[root@serverb ~]# ls /stratis/pool1/filesystem1 -l
17lrwxrwxrwx. 1 root root 9 Apr 12 23:59 /stratis/pool1/filesystem1 -> /dev/dm-5
18[root@serverb ~]# stratis filesystem list
19Pool Name Name Used Created Device UUID
20pool1 filesystem1 546 MiB Apr 12 2021 23:59 /stratis/pool1/filesystem1 8329587deb4a4980b1f71578c7de7723
21[root@serverb ~]# lsblk --output=UUID /stratis/pool1/filesystem1
22UUID
238329587d-eb4a-4980-b1f7-1578c7de7723
挂载使用
1[root@serverb ~]# grep stratis /etc/fstab
2UUID=8329587d-eb4a-4980-b1f7-1578c7de7723 /opt xfs defaults,x-systemd.requires=stratisd.service 0 0
3[root@serverb ~]# mount -a
x-systemd.requires=stratisd.service挂载选项可延迟挂载文件系统,直到systemd在启动过程中启动stratisd. service为止。
三、快照的使用
使用该挂载点并创建文件后,并创建快照,快照创建完成后删除相应的文件,并回到快照里查看原始数据是否存在。
1[root@serverb opt]# touch file{1..5}
2[root@serverb opt]# ls
3file1 file2 file3 file4 file5
4[root@serverb opt]# echo "snapshot test!!!" > file1
5echo "snapshot testls!" > file1
6[root@serverb opt]# cat file
7cat: file: No such file or directory
8[root@serverb opt]# cat file1
9snapshot testls!
10[root@serverb opt]# stratis filesystem destroy pool1 snapshot1
11[root@serverb opt]# stratis filesystem list
12Pool Name Name Used Created Device UUID
13pool1 filesystem1 546 MiB Apr 12 2021 23:59 /stratis/pool1/filesystem1 8329587deb4a4980b1f71578c7de7723
14[root@serverb opt]# stratis filesystem snapshot pool1 filesystem1 snapshot1
15[root@serverb opt]# ll
16total 4
17-rw-r--r--. 1 root root 17 Apr 13 09:49 file1
18-rw-r--r--. 1 root root 0 Apr 13 09:49 file2
19-rw-r--r--. 1 root root 0 Apr 13 09:49 file3
20-rw-r--r--. 1 root root 0 Apr 13 09:49 file4
21-rw-r--r--. 1 root root 0 Apr 13 09:49 file5
22[root@serverb opt]# rm -rf file1 //删除文件
23[root@serverb opt]# stratis filesystem list
24Pool Name Name Used Created Device UUID
25pool1 filesystem1 546 MiB Apr 12 2021 23:59 /stratis/pool1/filesystem1 8329587deb4a4980b1f71578c7de7723
26pool1 snapshot1 546 MiB Apr 13 2021 09:54 /stratis/pool1/snapshot1 9073ac6f15d14153bd850b83748ad992
27[root@serverb opt]# mount /stratis/pool1/snapshot1 /mnt/
28[root@serverb opt]# cd /mnt/
29[root@serverb mnt]# ls
30file1 file2 file3 file4 file5
31[root@serverb mnt]# cat file1 //从快照数据中找回文件
32snapshot testls!
四、文件系统及快照的销毁
在destory删除操作之前,需要先umount掉相关的挂载点。不然会报错,具体的操作如下:
1[root@serverb ~]# stratis pool list
2Name Total Physical
3pool1 10 GiB / 1.11 GiB / 8.89 GiB
4[root@serverb ~]# stratis filesystem destroy pool1 snapshot1
5Execution failed:
6stratisd failed to perform the operation that you requested. It returned the following information via the D-Bus: ERROR: low-level ioctl error due to nix error: EBUSY: Device or resource busy.
7[root@serverb ~]# umount /mnt
8[root@serverb ~]# stratis filesystem destroy pool1 snapshot1
9[root@serverb ~]# stratis pool list
10Name Total Physical
11pool1 10 GiB / 587.65 MiB / 9.43 GiB
12[root@serverb ~]# umount /opt
13[root@serverb ~]# stratis filesystem destroy pool1 filesystem1
14[root@serverb ~]# stratis filesystem list
15Pool Name Name Used Created Device UUID
如果pool也不再使用,可以使用stratis pool destroy pool1 指令把pool也删除掉。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/rh134-stratis/6554.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.