实施高级存储功能
使用Stratis管理分层存储
Stratis
适用于Linux的本地存储管理解决方案。旨在提供更便利的方式执行存储的初始配置,对存储配置进行修改,并使用高级存储功能。
Stratis以管理物理存储设备池的服务形式运行,并透明地为新创建地文件系统创建和管理卷。
使用Stratis存储
使用Stratis存储管理解决方案来管理文件系统,请安装stratis-cli和stratisd软件包。
查看块设备
[root@clear ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 10G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 100M 0 part /boot/efi
└─vda3 252:3 0 9.9G 0 part /
vdb 252:16 0 10G 0 disk
vdc 252:32 0 10G 0 disk
vdd 252:48 0 10G 0 disk
安装并启用
[root@clear ~]# yum install stratis-cli stratisd -y
[root@clear ~]# systemctl enable --now stratisd
将块存储组装到Stratis池中
#创建一个池
[root@clear ~]# stratis pool create pool1 /dev/vdb
每个池都是/stratis目录下的子目录
查看可用池列表
[root@clear ~]# stratis pool list
Name Total Physical
pool1 10 GiB / 37.63 MiB / 9.96 GiB
向池中添加额外的块设备
[root@clear ~]# stratis pool add-data pool1 /dev/vdc
查看池中块设备
[root@clear ~]# stratis blockdev list pool1
Pool Name Device Node Physical Size Tier
pool1 /dev/vdb 10 GiB Data
pool1 /dev/vdc 10 GiB Data
管理Stratis文件系统
为池创建文件系统
[root@clear ~]# stratis filesystem create pool1 fs1
Stratis文件系统链接位于/stratis/pool1
下
查看可用文件系统列表
[root@clear ~]# stratis filesystem list
Pool Name Name Used Created Device UUID
pool1 fs1 546 MiB Aug 06 2023 11:50 /stratis/pool1/fs1 649e6e0f7ddd41cd8e7312536d99ee3c
创建文件系统的快照
[root@clear ~]# stratis filesystem snapshot pool1 fs1 snapshot1
持久挂载Stratis文件系统
为确保持久挂载Stratis文件系统,请编辑/etc/fstab
并指定文件系统信息。
[root@clear ~]# lsblk --output=UUID /stratis/pool1/fs1
UUID
649e6e0f-7ddd-41cd-8e73-12536d99ee3c
持久挂载示例
[root@clear ~]# cat /etc/fstab | grep stratis
UUID=649e6e0f-7ddd-41cd-8e73-12536d99ee3c /dir1 xfs defaults,x-systemd.requires=stratisd.service 0 0
x-systemd.requires=stratisd.service 选项可延迟挂载 知道systemd在启动过程中启动stratisd.service为止
[root@clear ~]# mkdir /dir1
[root@clear ~]# mount -a
[root@clear ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 887M 0 887M 0% /dev
tmpfs 914M 0 914M 0% /dev/shm
tmpfs 914M 17M 897M 2% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/vda3 9.9G 1.9G 8.1G 19% /
/dev/vda2 100M 6.8M 94M 7% /boot/efi
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/stratis-1-5ef6680b3e394818a4338f650e374f0b-thin-fs-649e6e0f7ddd41cd8e7312536d99ee3c 1.0T 7.2G 1017G 1% /dir1
df命令会将Stratis管理的任何新xfs文件系统大小均报告为1TiB,无论当前分配给文件系统的物理存储量是多少。
查看实际存储
[root@clear ~]# stratis pool list
Name Total Physical
pool1 20 GiB / 1.11 GiB / 18.89 GiB
使用VDO压缩存储和删除重复数据
虚拟数据优化器
VDO可以优化块设备上数据的空间占用。VDO是一个Linux设备映射器驱动程序,可以减少块设备上磁盘空间的使用,同时最大限度减少数据的重复,从而节省磁盘空间甚至提高数据吞吐量。VDO内核模块:kvdo用于透明方式控制数据压缩,uds用于重复数据删除。
VDO位于块设备(RAID或本地磁盘)的顶部。
实施寻数据优化器
利用VDO创建的逻辑设备被称为VDO卷。VDO卷与磁盘分区类似;可以将卷格式化为所需要的文件系统,并挂载,也可以将VDO卷作为LVM物理卷。
启用VDO
#安装VDO和kmod-kvdo软件包
[root@clear ~]# yum install vdo kmod-kvdo -y
创建VDO卷
[root@clear ~]# vdo create --name=vdo1 --device=/dev/vdd --vdoLogicalSize=5G
Creating VDO vdo1
The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
It can grow to address at most 16 TB of physical storage in 8192 slabs.
If a larger maximum size might be needed, use bigger slabs.
Starting VDO vdo1
Starting compression on VDO vdo1
VDO instance 0 volume is ready at /dev/mapper/vdo1
你可以将其格式化为需要的文件系统并挂载
分析VDO卷
[root@clear ~]# vdo status --name=vdo1
VDO status:
Date: '2023-08-06 12:45:25-04:00'
Node: clear.domain250.example.com
Kernel module:
Loaded: true
Name: kvdo
Version information:
kvdo version: 6.2.2.117
Configuration:
File: /etc/vdoconf.yml
Last modified: '2023-08-06 12:42:31'
VDOs:
vdo1:
Acknowledgement threads: 1
Activate: enabled
Bio rotation interval: 64
Bio submission threads: 4
Block map cache size: 128M
Block map period: 16380
Block size: 4096
CPU-work threads: 2
Compression: enabled
Configured write policy: auto
Deduplication: enabled
Device mapper status: 0 10485760 vdo /dev/vdd normal - online online 1049638 2621440
...output omitted...