通过Stratis,便捷的使用精简配置(thin provisioning),快照(snapshots)和基于池(pool-based )的管理和监控等高级存储功能;
Stratis 是一个卷管理文件系统volume-managing filesystem(VMF),类似于 ZFS 和 Btrfs。它使用了存储“池”的核心思想,该思想被各种 VMF 和 形如 LVM 的独立卷管理器采用。使用一个或多个硬盘(或分区)创建存储池,然后在存储池中创建卷volume。与使用 fdisk 或 GParted 执行的传统硬盘分区不同,存储池中的卷分布无需用户指定。
案例:
新增两块5G硬盘
1、配置yum源,安装软件包
[root@kongd ~]# tail -1 /etc/fstab /dev/sr0 /media/cdrom iso9660 defaults 0 0 [root@kongd ~]# mkdir /media/cdrom [root@kongd ~]# mount -a [root@kongd ~]# cat /etc/yum.repos.d/rhel8.repo [AppStream] name=AppStream baseurl=file:///media/cdrom/AppStream gpgcheck=0 [BaseOS] name=BaseOS baseurl=file:///media/cdrom/BaseOS gpgcheck=0 [root@kongd ~]# dnf install -y stratisd stratis-cli
2、启动stratisd服务
[root@kongd ~]# systemctl enable --now stratisd.service [root@kongd ~]# systemctl is-enabled stratisd.service enabled
3、创建池
[root@kongd ~]# stratis --version 1.0.0 [root@kongd ~]# stratis pool --help usage: stratis pool [-h] {create,list,destroy,rename,add-data,add-cache} ... [root@kongd ~]# stratis pool create redhat /dev/nvme0n2 # 池的名字redhat /dev/nvme0n2--池中加入的设备 [root@kongd ~]# stratis pool list Name Total Physical Size Total Physical Used redhat 5 GiB 52 MiB
4、构建文件系统
对于stratis管理的存储分层而言,文件系统是构建在池中的
[root@kongd ~]# stratis filesystem create redhat rhce [root@kongd ~]# stratis filesystem list Pool Name Name Used Created Device UUID redhat rhce 546 MiB Jan 08 2020 00:15 /stratis/redhat/rhce fe32e43bafa046d8b82210bcd7616ac1
5、挂载
[root@kongd ~]# mkdir /mnt/stratis [root@kongd ~]# mount /stratis/redhat/rhce /mnt/stratis [root@kongd ~]# df -hT | grep /mnt/stratis 永久挂载 [root@kongd ~]# tail -1 /etc/fstab /stratis/redhat/rhce /mnt/stratis xfs defaults 0 0
6、扩容
[root@kongd ~]# stratis pool add-data redhat /dev/nvme0n3 [root@kongd ~]# stratis pool list Name Total Physical Size Total Physical Used redhat 10 GiB 602 MiB 写入数据 [root@kongd ~]# dd if=/dev/zero of=/mnt/stratis/file bs=1G count=5 记录了5+0 的读入 记录了5+0 的写出 5368709120 bytes (5.4 GB, 5.0 GiB) copied, 13.4471 s, 399 MB/s
7、快照
[root@kongd ~]# stratis filesystem snapshot redhat rhce snap01 [root@kongd ~]# stratis filesystem list Pool Name Name Used Created Device UUID redhat rhce 5.53 GiB Jan 08 2020 00:15 /stratis/redhat/rhce fe32e43bafa046d8b82210bcd7616ac1 redhat snap01 5.53 GiB Jan 08 2020 00:23 /stratis/redhat/snap01 66e1027fcb41476786b88155593374ac 挂载快照读取数据 [root@kongd ~]# mkdir /mnt/snap [root@kongd ~]# mount /stratis/redhat/snap01 /mnt/snap/ [root@kongd ~]# du -sh /mnt/snap/file 5.0G /mnt/snap/file
8、一个池中可以构建多个文件系统
[root@kongd ~]# stratis filesystem create redhat rhce1 [root@kongd ~]# stratis filesystem list redhat Pool Name Name Used Created Device UUID redhat rhce 5.53 GiB Jan 08 2020 00:15 /stratis/redhat/rhce fe32e43bafa046d8b82210bcd7616ac1 redhat snap01 5.53 GiB Jan 08 2020 00:23 /stratis/redhat/snap01 66e1027fcb41476786b88155593374ac redhat rhce1 546 MiB Jan 08 2020 00:26 /stratis/redhat/rhce1 ec549c4e3bb84fa18f432109f435c520
9、文件系统删除
[root@kongd ~]# stratis filesystem destroy redhat rhce1 [root@kongd ~]# stratis filesystem destroy redhat snap01 Execution failure caused by: ERROR: low-level ioctl error due to nix error: EBUSY: Device or resource busy 注意:文件系统需要先卸载才能删除 [root@kongd ~]# umount /mnt/snap [root@kongd ~]# stratis filesystem destroy redhat snap01
10、删除池
[root@kongd ~]# umount /mnt/snap [root@kongd ~]# stratis filesystem destroy redhat snap01 [root@kongd ~]# stratis filesystem destroy redhat rhce [root@kongd ~]# stratis pool destroy redhat