ZFS RaidZ

备注

本文是一次在一个移动硬盘上完成的模拟测试,当时测试的移动硬盘盒有4块nvme磁盘,所以可以用来构建RaidZ存储。另外,实践在 macOS上运行ZFS 环境完成,但方法是通用的。

我的后续实践在 ZFS Stripe条带化 (FreeBSD环境实践) 以及 FreeBSD 环境中完成,使用FreeBSD原生支持的ZFS系统。

创建RAID-Z1存储池

警告

需要小心 macOS 上对磁盘的识别,我是采用 diskutils 工具一个个检查磁盘命名,确认当前插入USB磁盘被识别为:

disk2 disk3 disk4 diak5
  • 创建名为 zpool-data 的ZFS存储池:

创建RZID-Z1存储池
zpool create zpool-data raidz disk2 disk3 disk4 disk5
  • 检查zpool:

检查zpool
zpool list

输出显示如下:

检查zpool
NAME         USED  AVAIL  REFER  MOUNTPOINT
zpool-data  1.89M  38.8G  1.75M  /Volumes/zpool-data

可以看到 zpool-data 存储池默认被挂载,挂载点就是 /Volumes/zpool-data

使用 df -h 检查也能够看到:

创建 zpool-data 后挂载显示空间
Filesystem        Size    Used   Avail Capacity iused ifree %iused  Mounted on
...
/dev/disk8s1      39Gi   1.8Mi    39Gi     1%     119   81M    0%   /Volumes/zpool-dat

备注

考虑到我需要将ZFS存储池(磁盘)在不同主机间移动,我需要重命名 zpool-datazpool-dataz ,此时需要使用 ZFS导出和导入

在RAID-Z存储池中创建卷

在完成 ZFS导出和导入 之后,上述 zpool-data 被重命名为 zpool-dataz ,接下来在存储池中创建不同命名的卷以便分门别类存放数据:

创建不同用途的存储卷
# 创建ZFS卷
zfs create zpool-dataz/docs
zfs create zpool-dataz/ebooks
zfs create zpool-dataz/music
zfs create zpool-dataz/movices

# 设置部分卷(文档)压缩,而视频音频卷不要设置压缩
zfs set compression=lz4 zpool-dataz/docs
zfs set compression=lz4 zpool-dataz/ebooks

完成后检查 zfs list 输出可以看到不同的存储卷:

zfs list 列出创建的卷
NAME                  USED  AVAIL  REFER  MOUNTPOINT
zpool-dataz          9.15M  38.8G  1.76M  /Volumes/zpool-dataz
zpool-dataz/docs     1.75M  38.8G  1.75M  /Volumes/zpool-dataz/docs
zpool-dataz/ebooks   1.75M  38.8G  1.75M  /Volumes/zpool-dataz/ebooks
zpool-dataz/movices  1.75M  38.8G  1.75M  /Volumes/zpool-dataz/movices
zpool-dataz/music    1.75M  38.8G  1.75M  /Volumes/zpool-dataz/music

检查 df -h 输出可以看到

df 可以看到创建的zfs卷都被挂载好了
Filesystem             Size    Used   Avail Capacity iused ifree %iused  Mounted on
...
/dev/disk8s1           39Gi   1.8Mi    39Gi     1%     135   81M    0%   /Volumes/zpool-dataz
zpool-dataz/docs       39Gi   1.7Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/docs
zpool-dataz/ebooks     39Gi   1.8Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/ebooks
zpool-dataz/music      39Gi   1.7Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/music
zpool-dataz/movices    39Gi   1.8Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/movices

备注

对于zpool存储池执行 ZFS导出和导入 会自动将zpool中所有卷自动 umount

参考