开发者生态
morning
如何在没有 Synology、QNAP、TrueNAS 的情况下构建最小的 ZFS NAS (2024)
2026-07-08
1 阅读
约10分钟阅读
4diii
字号:
如何在没有 Synology、QNAP、TrueNAS 的情况下构建最小的 ZFS NAS 发布于:2024-08-23 Oracle 的 ZFS 系统 如果您需要一个基本的 NAS 并且不关心 GUI 功能,那么设置 ZFS 数据集并使用 Samba 通过网络共享它是非常简单的。范围: 范围和要求 Raid 级别 RAIDZ1(1 驱动器冗余) 操作系统 Debian 12 Bookworm 加密 无 ZFS 实施 OpenZFS、zfs-2.1.1 CPU 4 核、Xeon 服务器 CPU 价格便宜 RAM ECC RDIMM RAM 16 GB 存储 4x4TB NVMe SSD 备份 未涵盖,使用 ZFS 备份调度程序技能 基本熟悉 Linux 技能级别 初学者/简单 我使用本文来我自己将其记录下来以供将来使用,请随意根据您的需要采用它。 TrueNAS 的问题在于它是一个功能齐全、据称是企业级的软件套件。虽然设置它可能很简单(我从未尝试过),但我只是不需要它提供的任何附加功能。这是我所需要的和它所提供的不匹配; TrueNAS 并不是本质上有问题。对于一个你了解一切而不必依赖其他东西的系统,还有一些话要说。 ZFS 的最佳功能从未在 ZFS 文件系统的任何地方进行解释或编写,它是独立的。如果您的操作系统突然遭到破坏,只需将所有磁盘转移到另一台计算机或安装新操作系统,安装 zfs ,运行 zfs import 并恢复您的数据。这种自由被低估并且未被充分理解。它也没有在任何地方得到解释。值得强调的是:有关 ZFS 的所有配置/详细信息都存储在磁盘本身上。如果您设置了具有 6 个磁盘的 RAIDZ2 (Raid 6),它们是独立的。将它们移至安装了 zfs 工具的新计算机,然后只需运行 zfs import 即可。繁荣,他们会以 RAIDZ2 的身份出现。这是一个令人惊奇的功能,无论主机操作系统、机器等发生什么情况;只要磁盘没有损坏,您的数据就没有问题。步骤 1. 查找和组织磁盘 使用 lsblk -d -o TRAN,NAME,TYPE,MODEL,SERIAL,SIZE 命令列出 Linux 计算机上的所有磁盘。 [root@sys ~]# lsblk -d -o TRAN,NAME,TYPE,MODEL,SERIAL,SIZE TRAN NAME TYPE MODEL SERIAL SIZE sda 磁盘 虚拟磁盘 40G nvme nvme5n1 磁盘 Samsung SSD 990 PRO 4TB XXXXXXXXXXXXXXX 3.6T nvme nvme2n1 磁盘 Samsung SSD 990 PRO 4TB XXXXXXXXXXXXXXX 3.6T nvme nvme6n1 磁盘 Samsung SSD 990 PRO 4TB XXXXXXXXXXXXXXX 3.6T nvme nvme3n1 磁盘 Samsung SSD 990 PRO 4TB XXXXXXXXXXXXXXX 3.6T 这些是三星的全新 NVMe 驱动器,因此它们应该完全未分配。磁盘也会映射到一个 ID,运行 ls -lh /dev/disk/by-id : [root@sys ~]# ls -lh /dev/disk/by-id Total 0 lrwxrwxrwx。 1 root root 10 May 10 09:34 dm-name-rhel-root -> ../../dm-0 lrwxrwxrwx。 1 root root 10 May 10 09:34 dm-name-rhel-swap -> ../../dm-1 lrwxrwxrwx。 1根根20年5月10日09:34 lvm-pv-uuid-DGBpev-Na0C-tY20-YY6E-tpL3-epNA-8Ts3Y0 -> ../../sda3 lrwxrwxrwx。 1 root root 2010 年 5 月 13 日 09:34 nvme-Samsung_SSD_990_PRO_4TB_XXXXXXXXXXXXXXX -> ../../nvme2n1 lrwxrwxrwx。 1 root root 2010 年 5 月 13 日 09:34 nvme-Samsung_SSD_990_PRO_4TB_XXXXXXXXXXXXXXX -> ../../nvme5n1 lrwxrwxrwx。 1 root root 2010 年 5 月 13 日 09:34 nvme-Samsung_SSD_990_PRO_4TB_XXXXXXXXXXXXXXX -> ../../nvme3n1 lrwxrwxrwx。 1 root root 13 May 10 09:34 nvme-Samsung_SSD_990_PRO_4TB_XXXXXXXXXXXXXXX -> ../../nvme6n1 请注意,它们符号链接到 /dev/ 中的磁盘名称。我们可以创建一个 /etc/zfs/vdev_id.conf 将别名映射到这些 ID: [root@sys ~]# vim /etc/zfs/vdev_id.conf # 在 vdev_id.conf 文件中添加这些行 alias nvme0 /dev/disk/by-id/nvme-Samsung_SSD_990_PRO_4TB_XXXXXXXXXXXXXXX alias nvme1 /dev/disk/by-id/nvme-Samsung_SSD_990_PRO_4TB_XXXXXXXXXXXXXXX 别名 nvme2 /dev/disk/by-id/nvme-Samsung_SSD_990_PRO_4TB_XXXXXXXXXXXXXXX 别名 nvme3 /dev/disk/by-id/nvme-Samsung_SSD_990_PRO_4TB_XXXXXXXXXXXXXXX 运行 udevadm触发设置别名(或者您可以重新启动计算机)。我们可以通过运行 ls -lh /dev/disk/by-vdev : lrwxrwxrwx 来验证别名是否已映射。 1 root root 13 May 10 10:28 nvme0 -> ../../nvme2n1 lrwxrwxrwx。 1 root root 2010 年 5 月 13 日 10:28 nvme1 -> ../../nvme5n1 lrwxrwxrwx。 1 root root 13 May 10 10:28 nvme2 -> ../../nvme3n1 lrwxrwxrwx。 1 root root 13 May 10 10:28 nvme3 -> ../../nvme6n1 别名映射完全是可选的,如果您想在创建 zpool 时使用磁盘的完整 ID /dev/disk/by-id/nvme-eui.002538414143c248 ,您可以这样做,就像我们将在下一节中所做的那样。使用别名会很好。但是,请不要使用 /dev/nvme1、/dev/nvme2...,因为无法保证顺序,尤其是在将新驱动器安装到系统时。创建 vdev_id.con
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱