搞台 NAS (3):Openmediavault 部署 ZFS 文件系统
在上一篇文章,我们装好了 Openmediavault,完成了基本的配置,安装了 Openmediavault 插件,这次我们就可以开始尝试部署 ZFS 文件系统了。在 OMV 上使用软 RAID 加 ext4 或者 btrfs 是完全够用的,我这纯粹是听了群友的鬼话非要折腾 ZFS。ext4、btrfs 等其他文件系统的使用方法,可以参照参考资料中的介绍。
OMV 部分总共分为三篇文章,这是第 2 篇:
- Openmediavault 的安装与配置
- Openmediavault 部署 ZFS 文件系统
- Openmediavault 通过 Docker 部署 qBittorrent
替换 Proxmox 内核
Proxmox 内核(即 pve 内核)对 ZFS 文件系统的支持要更好。要使用 ZFS 文件系统,首先需要将 Debian 内核替换为 Proxmox 内核。
PS:踩的坑之一,不换 Proxmox 内核,ZFS 跑不起来……
安装 openmediavault-kernel 插件
登录 OMV 的 Web 管理界面,点击左侧“系统”、“插件”,在右侧搜索“proxmox”即可找到 openmediavault-kernel 插件。选中 openmediavault-kernel,点击“安装”按钮,确认安装。
安装完成后,按下 Ctrl + Shift + R
或者 Ctrl + F5
强制刷新页面缓存,然后可以在左侧“系统”菜单下看到“内核”项。
安装 Proxmox 内核
点击左侧“系统”、“内核”,点击右侧“Proxmox”图标,选择“安装 Proxmox 内核”一项,开始安装进程。
安装完成后,刷新页面,可以看到 pve 内核已是默认。
点击右上角电源图标,重启系统。如果能够正常进入系统,就可以移除常规内核了。
清理其他内核
点击左侧“系统”、“内核”,点击右侧“Proxmox”图标,选择“移除非 Proxmox 内核”一项,开始清理其他内核。
刷新页面后,可看到只有 pve 内核了。这里可以考虑再重启系统一次。
安装 ZFS 文件系统支持
禁用 backports 源
PS:踩的坑之二,不禁用 backports 源,ZFS 装不上……
点击左侧“系统”、“omv-extras”、“设置”,取消勾选“Backports”选项,点击保存,二次确认应用。
安装 openmediavault-zfs 插件
点击左侧“系统”、“插件“,在右侧搜索“zfs”即可找到 openmediavault-zfs 插件。选中 openmediavault-zfs,点击“安装”按钮,确认安装。
安装完成后,按下 Ctrl + Shift + R
或者 Ctrl + F5
强制刷新页面缓存,然后可以在左侧“存储器”菜单下看到“zfs”项。
创建 ZFS 存储池、数据集
ZFS 文件系统中,有存储池、数据集、卷等概念。存储池是一组磁盘构成的逻辑卷,多个磁盘组成软 RAID 阵列;数据集则相当于存储池的一个子文件夹,可更改的选项会比存储池更多,通常用它来存储数据。
擦除硬盘
创建存储池前需要先将磁盘擦除。登录 OMV 的 Web 管理界面,点击左侧“存储器”、“磁盘”,选中需要擦除的硬盘,点击“擦除”图标,二次确认擦除,选择“快速”模式即可。
重复上述步骤,将所有要放入 ZFS 存储池的磁盘都擦除。
创建存储池
点击左侧“存储器”、“zfs”、“池”,点击加号图标,选择“添加池”一项,进入创建存储池页面。
在创建存储池页面:
- 名称:存储池的名称,根据个人喜好,我这里叫
main
; - 池类型:RAID 类型,通常根据磁盘数量选择,磁盘应当是同品牌、同型号、同大小的。我这里只有 2 块盘,所以选择“镜像”;
- 设备:勾选上一步中擦除过的设备;
- 挂载点:可以留空,系统会自动设置,也可以根据习惯自行设置;
- 设备别名:“以 ID”,不要改;
- 强制创建:磁盘大小不同时才需要,这里不勾选;
- 设置ashift:注释都说了不要改;
- 压缩:可以勾上,压缩类型选默认的“zf4”就好,不会占用太多资源。
点击“保存”按钮创建存储池,二次确认应用设置。可以看到存储池已经在列表中了,挂载点是 /main
,可以用命令行访问这个目录看看。
创建数据集
OMV 里面,ZFS 的数据集被称作“文件系统”。点击左侧“存储器”、“zfs”、“池”,勾选刚刚创建的存储池,点击加号图标,选择“添加文件系统快照卷”选项。
PS:这里的“添加文件系统快照卷”指的是“添加文件系统、快照、卷”,并不存在某个东西叫“文件系统快照卷”……
在弹出的对话框里:
- 类型:选择“文件系统”,即数据集;
- 前缀:存储池的名称,不需要修改;
- 名称:根据需要起名,我这里叫
test
; - 挂载点:同样可以留空。
点击“保存”按钮创建数据集,二次确认应用设置。可以看到数据卷已经在列表中了,挂载点是 /main/test
,可以用命令行访问这个目录看看。
设置共享
设置好共享后,就可以在局域网内访问 NAS 上的存储空间了。我的主力机器是 Windows 的,这里主要介绍 SMB 协议的共享。
调整存储池 ACL 设置
ZFS 插件默认禁用了 ACL 权限控制,这会对之后共享文件夹的设置产生一定的影响,需要手动开启。
点击左侧“存储器”、“zfs”、“池”,选中之前创建的存储池,点击“特性”图标,进入特性页面。修改以下几个参数:
- aclmode:改为
groupmask
; - aclinherit:确认为
restricted
; - acltype:改为
posix
。
上面这些修改都需要先选中修改项,再到上方点击“编辑”按钮,然后再手动输入值,保存。
新建用户
为了访问共享文件,我们需要创建一个新用户。点击左侧“用户”、“用户”,点击“新建|导入”图标,选择“创建”项。填入以下信息:
- 用户名:自己选择一个用户名,这里使用
asdf
; - 密码:自己选择一个密码;
- 用户组:留空即可,系统会自动加入
users
用户组。
点击保存,二次确认应用,即可看到新建的用户出现在列表之中。
设置共享文件夹和权限
点击左侧“存储器”、“共享文件夹”,点击“创建”图标。
在打开的页面中,设置如下参数:
- 名称:共享文件夹的名称,可以和数据集保持一致;
- 文件系统:选择之前创建的数据集;
- 相对路径:选择共享文件夹本身,显示出来应当是
/
; - 权限:默认即可,或根据自己需要修改;
点击保存,二次确认应用,即可看到创建的共享文件夹出现于列表之中。
选中刚刚创建的共享文件夹,点击“访问控制列表”按钮,在进入的页面中:
- 找到刚刚创建的
asdf
用户,将之权限改为“读/写”; - 将下方的所有者从
root
改为admin
;- OMV 其他文件系统默认的所有者即是
admin
,推荐手动调整一下;
- OMV 其他文件系统默认的所有者即是
- 将用户组的权限改为“读/写/执行”;
- 勾选下方的“取代”和“递归”选项。
点击保存即可。
设置 SMB 共享
点击左侧“服务”、“SMB”、“设置”,勾选“已启动”项。点击下方保存,二次确认应用,即可打开 SMB 服务。
点击左侧“服务”、“SMB”、“共享”,点击“创建”按钮,设置如下项:
- 共享文件夹:选择刚才创建的共享文件夹;
- 公开:选择“否”或者“允许访客”均可;
- 勾选“继承ACL”、“继承权限”。
点击保存,二次确认应用,SMB 设置就 OK 了。
连接和测试
在本地机器上,打开 Windows 资源管理器,通过以下两种方法之一访问:
- 打开“网络”文件夹,找到“OPENMEDIAVAULT”(安装时设置的主机名)项目,双击进入;
- 在地址栏中输入
\\<your_nas_ip>
(两个反斜杠 + IP地址),按回车进入。
随后会弹出窗口请求用户名和密码,输入此前创建的用户即可登录。
尝试复制文件到 NAS,或者从 NAS 复制文件,速度能够基本跑满千兆以太网。
结语
到这一步,NAS 算是达到一个可用的状态了,同样是非常麻烦。部署 ZFS 文件系统踩了巨大多的坑。
参考资料
- Dannyda. How to Fix OpenMediaVault ZFS pool ACL/Privileges Error (Failed to execute command ‘export…Operation not supported). dannyda.com.
- ACL Property Modes. Solaris ZFS Administration Guide.
- Filesystems. openmediavault 6.x documentation.
- OMV6.0 Kernel Regular Vs Proxmox for ZFS. Openmediavault Forum.
- raulfg3. HOWTO Instal ZFS-Plugin & use ZFS on OMV. Openmediavault Forum.
- OMV 6: Error when installing openmediavault-zfs 6.0.5. Openmediavault Forum.
- OMV6: Unable to install openmediavault-zfs 6.0.9. Openmediavault Forum.
- latest update fails compiling zfs module (kernel 5.18). Openmediavault Forum.
- 司波图. 【教程】OMV5下实现Freenas及unRAID相同的文件系统(司波图)——OMV系列教程02,SnapRaid,联合文件系统,ZFS. Bilibili.
本作品采用知识共享署名 4.0 国际许可协议进行许可。
本文链接:https://blog.ceba.tech/2022/07/NAS-3-OMV-ZFS/