分层存储Stratis
Stratis称为卷管理文件系统,以管理物理存储设备池的服务形式运行,透明的为所创建的文件系统创建和管理卷
相较于Lvm操作简化了,Stratis可以动态管理卷层,不需要预分配未使用的块设备空间(不需要提前设置大小信息)
使用存储的元数据来识别所管理的池、卷和文件系统
文件系统的大小取决于池的大小,池的大小取决于池化设备的大小
不建议手动重新格式化或重新配置,可能会导致源数据丢失。建议使用Stratis工具和命令进行管理
Stratis的三个概念:blockdevs块设备(eg:磁盘或磁盘分区)、池和文件系统。使用不同的块儿设备可以创建多个池,每个池可以创建一个或多个文件系统,每个池对多创建2^24个文件系统
Stratis的优点:
管理快照和精简配置
根据需要自动增加文件系统的大小
维护文件系统
1、安装stratisd stratis-cli软件包
[root@njw ~]# mount /dev/cdrom /mnt
[root@njw ~]# yum -y install stratisd stratis-cli
[root@njw ~]# rpm -q stratisd stratis-cli
2、重启程序
[root@njw ~]# systemctl restart stratisd.service
3、添加新的硬盘(即:sdb,sdc...),查看存储设备
[root@njw ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 4G 0 disk
├─sde1 8:65 0 1G 0 part
└─sde2 8:66 0 1G 0 part
4、创建stratis存储池,将设备/dev/sdb创建为存储池,存储池名为pool1
[root@njw ~]# stratis pool create pool1 /dev/sdb #创建存储池
[root@njw ~]# stratis pool list #查看stratis存储池信息
Name Total Physical Properties
pool1 2 GiB / 37.63 MiB / 1.96 GiB ~Ca,~Cr #pool1池大小为2G,已物理使用37.63M
5、扩大pool1池的大小,添加设备/dev/sdc
[root@njw ~]# stratis pool add-data pool1 /dev/sdc #扩大pool1池
[root@njw ~]# stratis pool list
Name Total Physical Properties
pool1 4 GiB / 41.63 MiB / 3.96 GiB ~Ca,~Cr
[root@njw ~]# stratis blockdev list #查看池中的块设备信息
Pool Name Device Node Physical Size Tier
pool1 /dev/sdb 2 GiB Data
pool1 /dev/sdc 2 GiB Data #pool1池的组成
6、使用块设备分区创建、添加块设备,并查看池信息
[root@njw ~]# stratis pool create pool2 /dev/sde1
[root@njw ~]# stratis pool add-data pool2 /dev/sde2
[root@njw ~]# stratis pool list
Name Total Physical Properties
pool2 2 GiB / 41.63 MiB / 1.96 GiB ~Ca,~Cr
[root@njw ~]# stratis blockdev list
Pool Name Device Node Physical Size Tier
pool2 /dev/sde1 1 GiB Data
pool2 /dev/sde2 1 GiB Data
7、为池创建文件系统
[root@njw ~]# stratis filesystem create pool1 fs1 #给存储池pool1创建一个名为fs1的文件系统
[root@njw ~]# stratis filesystem list #查看可用文件系统的列表
Pool Name Name Used Created Device UUID
pool1 fs1 546 MiB May 26 2021 19:37 /stratis/pool1/fs1 a2b91a4d78d2465096531d385b0b0206
8、创建挂载点并进行手动挂载
[root@njw ~]# mkdir /opt/fs1 #创建挂载点
[root@njw ~]# mount /stratis/pool1/fs1 /opt/fs1 #将文件系统fs1,挂载到/opt/fs1
[root@njw ~]# mount #查看挂载信息
/dev/mapper/stratis-1-fe2829e762874269a7c9572257c6fc3c-thin-fs-a2b91a4d78d2465096531d385b0b0206 on /opt/fs1 type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,sunit=2048,swidth=2048,noquota)
#从挂载点信息中可以看到文件系统类型是xfs
9、设置开机自动挂载
[root@njw ~]# lsblk --output=UUID /stratis/pool1/fs1 #获取UUID
[root@njw ~]# vim /etc/fstab
UUID=a2b91a4d-78d2-4650-9653-1d385b0b0206 /opt/fs1 xfs defaults,x-systemd.requires=stratisd.service 0 0
#x-systemd.requires=stratisd.service挂载选项可以延迟挂载文件系统,直到systemd在启动过程中启动stratisd.service为止。若不添加此选项,在下次重启时会发生引导错误。
重启验证是否自动挂载成功
[root@njw ~]# reboot
[root@njw ~]# df -h
10、创建存储池文件系统的快照
快照:
快照是将快照卷挂载到某个挂载点目录
快照卷存放的不是原分区的所有数据信息,而是创建一个快照的监视器,来监视原分区中所有元数据信息
当数据区有数据更新时,首先将数据区的数据备份到快照卷中,再更新数据区信息
[root@njw ~]# stratis fs list #先查看未复制文件时的文件大小,初始文件系统的默认大小(546 M)
[root@njw ~]# cp -r /var/log/* /opt/fs1
[root@njw ~]# stratis fs list #查看复制文件后文件系统大小
[root@njw ~]# stratis fs snapshot pool1 fs1 fs1_snap_01 #对pool1池中的fs1拍摄名为fs1_snap_01的快照
[root@njw ~]# stratis fs list #查看文件系统列表
Pool Name Name Used Created Device UUID
pool1 fs1 576 MiB May 26 2021 19:37 /stratis/pool1/fs1 a2b91a4d78d2465096531d385b0b0206
pool1 fs1_snap_01 576 MiB May 26 2021 20:42 /stratis/pool1/fs1_snap_01 88a44cdc760142d0b8e83bed8a2e97d8
#多了一个名为fs1_snap_01的快照文件系统
进行验证:
[root@njw ~]# rm -rf /opt/fs1/* 删除/opt/fs1中所有的文件信息
[root@njw ~]# ll /opt/fs1 #查看已无数据文件信息
通过快照恢复数据信息:
[root@njw ~]# mount /stratis/pool1/fs1_snap_01 /opt/fs1 #通过挂载快照卷,来获取数据文件信息,来达到恢复数据的目的
[root@njw ~]# ll /opt/fs1 #查看发现恢复数据文件信息