![无需专用启动驱动器的 ZFS JBOD 服务器](https://linux22.com/image/683194/%E6%97%A0%E9%9C%80%E4%B8%93%E7%94%A8%E5%90%AF%E5%8A%A8%E9%A9%B1%E5%8A%A8%E5%99%A8%E7%9A%84%20ZFS%20JBOD%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我正在寻找一款经济实惠的机器来使用openAttic,它只是带有 ZFS 的 Ubuntu 14.04 64 位。
我正在看的服务器有 8 个 3.5 英寸托架,我计划在其中放置 SAS 7.2k 企业级硬盘,可能是 3Tb 或 4Tb。我的目标是 18Tb 到 24Tb 的可用空间,并使用 2 个硬盘来实现冗余。我至少会得到 32Gb 的 ECC RAM,但我会考虑 64Gb 的成本。
我对 ZFS 还不够熟悉,但最初我的计划是使用一个小型的启动和系统分区,镜像到所有驱动器,使用 ext4。然后将剩余空间用于 ZFS。
服务器有一个 M.2 插槽:我是否应该在那里安装一个 M.2 SSD 用作启动/系统驱动器?OpenATTIC 对系统分区的需求很小,因此,当 RAM 和 SAS 驱动器将完成大部分工作并成为瓶颈时,为此购买高级 SSD 似乎是一种浪费。
我读到过 ZFS 喜欢直接访问磁盘,所以我想知道:当你将 ZFS 配置为不使用整个磁盘时,它能否正常工作?或者我应该获得 SSD 并让 ZFS 占用所有 SAS 磁盘?
如果钱不是问题,我当然会买 SSD,但我追求的是“物有所值”。谢谢!
答案1
您有多种选择:
- 廉价的 USB 2.0 棒:不推荐,因为它们很慢,而且写入会很快杀死大多数,例外:像 SmartOS(用于 ZFS)或 ESXi(没有 ZFS,仅作为示例)这样的只读系统,它只在启动时或每小时写入一次,并将其他所有内容保存在 RAM 或数据池中。
- 更昂贵的 USB 3.0 记忆棒,配有 SLC 内存或 USB 3.0 HDD:虽然大多数系统都不支持,但效果很好。我建议镜像这些驱动器,这样也可以轻松实现无缝升级和备份。
- SATA 或 M.2 磁盘/SSD:可能会浪费宝贵的空间,价格更贵,但不会出问题。如果您负担得起,我建议使用镜像对。对于大多数空间和金钱不是最重要的制约因素的情况,这是最佳解决方案。最佳选择是具有完全断电保护(如 Intel 730 和所有 S3xxx/DC3xxx 版本)。
- NFS/iSCSI 安装:如果您有多个没有剩余空间/端口的盒子,并且想要进行集中管理/配置,那么这很有用。通过 PXE 启动,然后映射网络驱动器并使用它们。几乎所有服务器 NIC 都支持此功能,但您需要单独的服务器来提供服务。
我的个人建议:
- 如果您只有普通的文件服务器设置并希望达到 1Gbps:请使用 2 个 SLC USB 记忆棒(如 MX-ES 型号(外部))或两个小型 SATA Intel SSD(内部)
- 如果你有更大的设置,想要高性能、快速更换故障磁盘,可能有虚拟化或高正常运行时间要求:使用带有断电保护的 2 个英特尔固态硬盘的普通机箱
- 如果您拥有/增加大量机器,并且想要节省时间/金钱:请考虑使用 SmartOS(为此用例构建)或通过 PXE 使用网络启动
我读到过 ZFS 喜欢直接访问磁盘,所以我想知道:当你将 ZFS 配置为不使用整个磁盘时,它能否正常工作?或者我应该获得 SSD 并让 ZFS 占用所有 SAS 磁盘?
这是受到推崇的要将整个磁盘用于您的池:
对于生产系统,请使用整个磁盘而不是切片作为存储池,原因如下:
- 允许 ZFS 为具有写缓存的磁盘启用磁盘的写缓存。如果您使用的是具有非易失性写缓存的 RAID 阵列,那么这不是什么大问题,并且作为 vdev 的切片仍应能从阵列的写缓存中获益。
- 对于 JBOD 附加存储,启用磁盘缓存后,可以将一些同步写入作为多个磁盘写入发出,然后进行一次缓存刷新,从而使磁盘控制器能够优化 I/O 调度。另外,对于缺乏对 SATA NCQ 或 SCSI TCQ 适当支持的系统,启用写入缓存后,主机可以与物理 I/O 异步发出单个 I/O 操作。
- 当磁盘的切片上同时包含 ZFS 和 UFS 文件系统时,更换故障磁盘的恢复过程更加复杂。
- 在切片上也包含 UFS 文件系统的 ZFS 池(和底层磁盘)无法通过使用 zpool import 和 export 功能轻松地迁移到其他系统。
- 一般而言,维护切片会增加管理时间和成本。通过简化存储池配置模型可以降低管理成本。
答案2
对于这种规模的设备,请使用单独的驱动器或驱动器对来运行操作系统。也许 M.2 SSD 插槽是最合适的。
给 ZFS 完整的磁盘并且不要尝试将操作系统分布在这些驱动器上。
对于家庭规模,不要听信所有关于获取 ZIL 和 L2ARC 的建议。ZIL 仅适用于同步写入,而 L2ARC 被高估了。您拥有足够的 RAM 数量,这就是您应该最大化的。