stratis和vdo高级存储
Stratis
stratis将磁盘设备放置于一个精简配置的共享池中,stratis文件系统没有固定大小,也不会预分配未使用的块空间。一个共享池中可以创建多个文件系统,文件系统类型为xfs。

安装配置
-
安装软件包stratisd和stratis-cli
[root@localhost ~]# yum install -y stratisd stratis-cli -
激活stratisd服务
[root@localhost ~]# systemctl enable --now stratisd -
创建精简池
[root@localhost ~]# stratis pool create pool01 /dev/sda如果磁盘之前使用过可能会报错,该错误是由于磁盘中存在分区表导致不能加入存储池
[root@localhost ~]# stratis pool create pool01 /dev/sda Execution failure caused by: ERROR: Device /dev/sda has an existing signature ID_PART_TABLE_TYPE=gpt ID_PART_TABLE_UUID=1d02d7ab-54c5-42ce-8608-1d3bbd5bf118解决方式,将该磁盘的分区表擦除
[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1 -
查看精简池信息
[root@localhost ~]# stratis pool list Name Total Physical Size Total Physical Used pool01 10 GiB 52 MiB [root@localhost ~]# stratis blockdev list Pool Name Device Node Physical Size State Tier pool01 /dev/sda 10 GiB In-use Data -
创建文件系统
[root@localhost ~]# stratis filesystem create pool01 fs01 [root@localhost ~]# stratis filesystem list Pool Name Name Used Created Device UUID pool01 fs01 546 MiB Dec 17 2020 16:53 /stratis/pool01/fs01 ee4c21f61c674101a41b28b0d770af38 -
查看文件系统的UUID
[root@localhost ~]# lsblk --output=UUID /stratis/pool01/fs01 UUID ee4c21f6-1c67-4101-a41b-28b0d770af38 -
设置开机自动挂载
UUID=46929bbaaf4147798aef5a891eff7c67 /data xfs defaults,x-systemd.requires=stratisd.service 0 0挂载选项x-systemd.requires=stratisd.service可延迟挂载文件系统,直到stratisd.service启动为止
-
向精简池中添加块设备
[root@localhost ~]# stratis pool add-data pool01 /dev/sdb [root@localhost ~]# stratis blockdev list Pool Name Device Node Physical Size State Tier pool01 /dev/sda 10 GiB In-use Data pool01 /dev/sdb 10 GiB In-use Data -
创建快照
[root@localhost ~]# stratis filesystem snapshot pool01 fs01 sn ap01 [root@localhost ~]# ll /stratis/pool01 total 0 lrwxrwxrwx. 1 root root 9 Dec 17 16:53 fs01 -> /dev/dm-7 #文件系统 lrwxrwxrwx. 1 root root 9 Dec 17 17:07 snap01 -> /dev/dm-8 #快照 -
恢复快照
[root@localhost ~]# umount /stratis/pool01/fs01 #卸载源文件系统 [root@localhost ~]# stratis filesystem destroy pool01 fs01 #删除原文件系统 [root@localhost ~]# stratis filesystem snapshot pool01 snap01 fs01 #根据快照创建出原文件系统创建的快照可以独立存在因此可以删除原文件系统
-
删除配置
[root@localhost ~]# stratis filesystem destroy pool01 fs01 #删除文件系统 [root@localhost ~]# stratis pool destroy pool01 #删除精简池 -
查看帮助
# stratis --help 查看stratis命令帮助 # stratis pool --help 查看stratis关于存储池命令帮助 # stratis filesystem --help 查看stratis关于文件系统命令帮助 # stratis filesystem snapshot --help 查看stratis关于快照命令帮助
Vdo
vdo功能可以优化块设备上数据空间占用问题,它可以减少块设备上的磁盘使用空间,同时最大限度减小数据重复,从而节省磁盘空间。vdo包含两个模块:kvdo用于控制数据压缩,uds用于重复数据删除。
vdo层位于现在块设备(RAID或者本地磁盘)之上,存储层(如LVM和文件系统)位于vdo之上。
下图显示了KVM虚拟机架构中,vdo所处的位置

vdo特性
- 利用vdo创建的逻辑设备成为vdo卷,vdo卷与磁盘类似,可以将这些卷格式化为所需要的文件系统类型。此外,还可以将vdo卷用作LVM物理卷。
- 在创建vdo卷时,可以指定块设备,以及vdo向用户显示的逻辑设备的名称。也可以指定vdo卷的逻辑大小,vdo卷的逻辑大小可以大于实际块设备的物理大小。
- 如果未指定逻辑大小,则vdo会将实际物理大小试为卷的逻辑大小,这种方式有利于提高性能,但是会降低存储空间的使用效率,应视情况而定。
- 由于vdo卷采用了精简配置,因此用户只能看到正在使用的逻辑空间,而无法了解实际可用的物理空间。
- vdo卷的逻辑大小超过实际物理大小,应使用vdostatus -verbose命令查看实际使用情况。
配置
-
安装软件包
[root@localhost ~]# yum -y install vdo kmod-kvdo -
创建vdo卷
[root@localhost ~]# vdo create --name=vdo0 --device=/dev/sda --vdoLogicalSize=10T -
查看vdo卷
[root@localhost ~]# vdo status --name=vdo0 [root@localhost ~]# vdo list #查看vdo卷列表 vdo0 [root@localhost ~]# vdo start|stop -n vdo0 #启动和停止vdo卷 -
查看卷的状态
[root@localhost ~]# vdostats --human-readable Device Size Used Available Use% Space saving% /dev/mapper/vdo0 10.0G 4.0G 6.0G 40% 0% -
格式化vdo卷
[root@localhost ~]# mkfs.xfs /dev/mapper/vdo0 -
挂载vdo卷
/dev/mapper/vdo0 /data xfs defaults,x-systemd.requires=vdo.service 0 0挂载选项x-systemd.requires=vdo.service延迟挂载文件系统,直到vdo.service启动
-
删除vdo卷
[root@localhost ~]# vdo remove -n vdo0 Removing VDO vdo0 Stopping VDO vdo0

浙公网安备 33010602011771号