redhat8 stratis(新特性 / rhce考点)
该文章主要针对redhat8新特性stratis做个简述,不做最详细的理论介绍,如需了解更权威的理论知识请自行百度或看 这里
前奏
Stratis是支持用户和内核的混合本地存储管理系统,支持高级存储功能。Stratis的中心概念是一个存储池。该池是从一个或多个本地磁盘或分区创建的,而卷是从该池创建的。
该池启用了许多有用的功能,例如:
- 文件系统快照
- 精简配置
- 分层
Stratis卷的组成
在外部,Stratis在命令行界面和API中提供以下卷组件:
- blockdev
阻止设备,例如磁盘或磁盘分区。 - pool
由一个或多个块设备组成。
池具有固定的总大小,等于块设备的大小。
该池包含大多数Stratis层,例如使用dm-cache目标的非易失性数据高速缓存。
Stratis为每个池创建一个目录。该目录包含指向代表池中Stratis文件系统的设备的链接。 /stratis/my-pool/ - filesystem
每个池可以包含一个或多个存储文件的文件系统。
文件系统精简配置,并且没有固定的总大小。文件系统的实际大小随存储在其上的数据而增长。如果数据大小接近文件系统的虚拟大小,则Stratis会自动增加精简卷和文件系统。
文件系统默认使用XFS格式化。
Stratis可使用的块设备
Stratis池已经过测试,可以在以下类型的块设备上工作:
- LUKS
- LVM logical volumes
- MD RAID
- DM Multipath
- iSCSI
- HDDs and SSDs
- NVMe devices
由于Stratis包含一个精简配置层,因此Red Hat不建议将Stratis池放置在已经进行了精简配置的块设备上。
当前环境:
vmware 15.x
redhat8.1
单U双核
2G
自定义磁盘数量及大小(这里我使用的是NVMe格式的虚拟磁盘)
安装
stratis基于自带镜像安装,所以先要配置dnf源
vim /etc/yum.repos.d/opop.repo
[redhat8_baseos]
name=redhat8_baseos
baseurl=file:///mnt/usb1/BaseOS #/mnt/usb1为光盘挂载点
enabled=1
gpgcheck=0
[redhat8_appstream]
name=redhat8_appstream
baseurl=file:///mnt/usb1/AppStream
enabled=1
gpgcheck=0
自行创建挂载点并挂载
安装前先把磁盘创建几个分区或整盘
如使用整盘该步可略过
fdisk /dev/nvme0n2 #该盘为30g大小
fdisk /dev/nvme0n3 #该盘为40g大小
n--回--回--回--+15g--重复--w
注意:创建2个分区(可自定义),这里支持ext4和xfs格式分区格式,这里我没有做任何格式化请注意
如已格式化在再次安装时会提示已有签名:清除签名认证:wipefs -a /dev/nvme0n2p1
安装stratis
dnf -y isntall stratisd stratis-cli
systemctl start stratisd && systemctl enable stratisd
创建2个池
stratis pool create test_pool /dev/nvme0n3p1 /dev/nvme0n3p2
stratis pool create test_pool2 /dev/nvme0n2p1 /dev/nvme0n2p2
创建2个文件系统
stratis filesystem create test_pool test_fs
stratis filesystem create test_pool2 test_fs2
注意:会自动在/stratis/创建2个文件系统目录
创建挂载点
mkdir /mnt/pool{1..3}
lsblk --output=UUID /stratis/test_pool/test_fs
#查看文件系统的UUID
永久挂载
vim /etc/fstab
UUID=e64dabce-ed05-4df9-a216-abc5610cca03 /mnt/pool1 xfs defaults,x-systemd.requires=stratisd.service 0 0
UUID=3cfe709e-5eb3-4c97-9f85-f2e2de7d6928 /mnt/pool2 xfs defaults,x-systemd.requires=stratisd.service 0 0
#上面的写法格式见一定要注意,否则系统reboot后将起不来!!!! 起不来的原因见 我上一篇博客,
mount -a
df -Th
看容量那一列是否为1T,这里的1T并非实际就是1T,该特点官方也有说明:
大意为:因为精简配置减少了Stratis的实际存储使用量,还因为XFS层接近满时Stratis会自动增长文件系统,并且应定期监视写入Stratis文件系统的数据量,将其报告为“已使用的物理总量”值。确保它不超过“总物理尺寸”值。
添加块设备
stratis pool add-data my-pool device-1 device-2 device-n
注:支持的设备类型在该文章的起初有说明
在Stratis文件系统上使用快照
在Stratis中快照是作为另一个Stratis文件系统的副本创建的常规Stratis文件系统。快照最初包含与原始文件系统相同的文件内容,但是可以在修改快照时更改。您对快照所做的任何更改都不会反映在原始文件系统中。
Stratis当前的快照实现具有以下特点:
- 文件系统的快照是另一个文件系统。
- 快照及其来源在生存期内未链接。快照文件系统的生存期可以比创建快照的文件系统更长。
- 不必挂载文件系统即可从该文件系统创建快照。
- 每个快照使用大约一半的实际备份存储,这是XFS日志所需的。
创建Stratis快照
注:Pool Name列是池名,Name列为文件系统名
固定格式:stratis fs snapshot <池名> <文件系统名> <快照名>
注:该快照可以在源文件系统异常时将其卸载/删除,并将快照文件重命名为源文件名而后进行再次挂载即可与原始文件系统相同的名称访问
卸载:umount /stratis/my-pool/my-fs
重命名:stratis filesystem snapshot <池名> <快照名> <源文件系统名>
重新挂载:mount /stratis/my-pool/my-fs /mount-point
删除快照
umount /stratis/my-pool/my-fs-snapshot
stratis filesystem destroy <池名> <快照名>
删除文件系统
umount /stratis/my-pool/my-fs
stratis filesystem destroy <池名> <文件系统名>
删除池
查看某个池中的文件系统:stratis filesystem list my-pool
卸载文件系统:
umount /stratis/my-pool/my-fs-1 \
/stratis/my-pool/my-fs-2 \
/stratis/my-pool/my-fs-n
删除文件系统:stratis filesystem destroy my-pool my-fs-1 my-fs-2 .....
最后删除池:stratis pool destroy my-pool
其他
欢迎加入QQ群一起学习Linux、开源等技术