创立于 2008 年 · 数字版 · 2026年6月15日

SMB IT Journal

面向小型企业的信息技术资源

中文
存储

选择开放式存储操作系统

如今越来越常见的做法是放弃传统的专有存储设备(无论是 NAS 还是 SAN),转而使用现成的硬件并在其上安装一套存储操作系统,构建许多人所称的“自己动手”式存储服务器。当然,这是一种用词不当的说法,因为没有人会仅仅因为你自己安装了 Windows,就把一台普通的文件服务器称作“自己动手”。围绕存储有着诸多神话与传说,当人们想到安装 Windows 并称之为 NAS、而非称之为文件服务器时,往往会感到慌张。所以,如果这样能让你心里好受些,那就用文件服务器或存储服务器这样的术语,而不要用 NAS 和 SAN–问题就解决了。这正是“开放式存储”运动的一部分–将存储系统从专有走向标准。

为存储服务器选择正确的操作系统很重要,而且并非总是那么容易。我在这一领域有大量的工作经验,人们常常问我推荐什么,而这些推荐会因场景而异,并且常常显得令人困惑。但其实这些考量因素相对简单,只要你了解那些造就了决策树中各种选择与路径的限制条件就行。

在选择操作系统之前,我们必须停下来考虑我们的需求将会是什么。需要考虑的一些方面包括:容量、性能、管理的难易程度、预算、连接技术、成本以及集群。我们还将考虑两大类系统:标准操作系统或存储设备操作系统。标准操作系统有 Windows、Linux、Solaris 和 FreeBSD。存储设备操作系统有 FreeNAS、OpenFiler 和 NexentaStor。这两类中还有其他选择,但这些是目前的主要参与者。

首先要做的决定是,你或你的组织是否愿意支持一套以存储服务器角色运行的普通操作系统。如果你考虑的是 NAS,那么只需问问自己能否管理一台文件服务器。管理一台块存储服务器(SAN)要稍微复杂一些,或者至少说不那么常见,因此这可能会引起一丝担忧,但其实与其他管理任务并无二致。如果答案是肯定的,即使用普通操作系统的工具和界面对你来说是可以接受的,那么就立刻把“设备”这一类排除掉。设备这条路会增加复杂性,并拖慢开发和支持的周期,所以除非必要,否则并不可取。

存储设备操作系统存在的唯一目的,是为运行一台存储服务器提供一种预先打包好的、“易于使用”的视图。这在概念上很不错,但这种方法存在实实在在的问题。最大的问题来自打包过程,它使你与企业级操作系统厂商本身相隔了一步,从而让你的系统比传统操作系统对应方更脆弱、更新和功能更滞后、也更不安全。它还使你在出问题时只能仰仗一家非常小的公司去获得 OEM 级别的支持,而不是依托一家拥有庞大用户群和社区的大型企业厂商。设备化的过程还必然会从系统中剥离掉一些功能和选项。到头来,吃亏的是你。

设备之所以好用,是因为你能获得一个方便的 Web 界面,“任何人”都可以借此管理你的存储。至少在理论上如此。但在现实中存在两个顾虑。第一是,总会时不时地需要切入操作系统本身去修复一些问题。而设备那个定制的 Web 界面使这件事比平常困难得多,所以在你最需要系统的设备特性之时,恰恰是你得不到它之日。第二是,把存储这样关键的东西交由“任何人”去摆弄,是一个令人毛骨悚然的念头。在你的基础设施中,很少有哪个部分比存储更需要倾注经验、规划和谨慎。让系统更难使用并不总是一件坏事。

如果你确实需要设备式的系统,那么你主要考虑的对象就是 FreeNAS 和 OpenFiler。NexentaStor 提供了一款颇具吸引力的产品,但它没有免费版本,而其成本可能令人难以承受。其可免费下载的版本似乎对前 18TB 的原始存储是免费的,但许可证的规定却并非如此,这使得它很少成为热门之选。(NexentaStor 的成本高到这样一个地步:购买一套获得完整支持的 Solaris 系统反而花费更少,而且能从原厂获得全面支持,而不是依赖 Nexenta——它本质上不过是把旧版本的 Solaris 和 ZFS 重新打包而已。更现代的代码和更新可以从原始来源以更低的价格获得。)

FreeNAS 在集群之外,是设备化封装形态下首选的存储平台。它拥有备受推崇的 ZFS 文件系统,这赋予了它 OpenFiler 及其他基于 Linux 的替代方案所缺乏的灵活性和易用性。它还拥有一套可正常工作的 iSCSI 实现,因此你可以放心地将 FreeNAS 用作 NAS 或 SAN。对 FreeNAS 的支持似乎正在增强,新的开发成果定期推出,功能也得以保留。FreeNAS 提供了大量的功能和受支持的协议。人们相信,集群功能未来也会到来 FreeNAS,因为这一功能最近已被加入到底层的 FreeBSD 操作系统中。若果真如此,FreeNAS 将彻底消除市场上对 OpenFiler 的需求。FreeNAS 是完全免费的。

OpenFiler 缺乏可靠的 iSCSI SAN 实现(除非你花一大笔钱把系统的那部分替换成一个能正常工作的组件),而且比其竞争对手要过时得多,但它确实提供了完整的块级实时复制,使其能够以集群模式运行以提升可靠性。这里的问题在于,NAS 设备那个方便的 Web 界面并不能应对这一场景,如果你想这么做,就得在命令行上亲自动手,而且要弄得相当脏。这是专家级别的活儿,任何有能力哪怕只是考虑要把 OpenFiler 做成一个可靠集群这一项目的人,都会同样自在地——而且很可能要自在得多地——在自己所选的 Linux 发行版上从零开始构建整个集群。OpenFiler 构建于颇不受欢迎、如今已完全停止维护的 rPath Linux 之上,并使用 Conary 打包系统,而这两者在 Linux 世界中都属于小众产品,说得客气一点。你几乎找不到其他管理员对 rPath 的支持,而许多你可能希望使用的软件包和功能也都无从获取。OpenFiler 唯一一项具有任何重要意义的优势,是 DRBD 用于集群的可用性,而正如上文所述,这毫无道理可言。对 OpenFiler 的支持似乎正在衰退,新功能根本不见踪影,事实上,像 AFP 这样的关键功能反而被砍掉了,而非有新功能被加入。OpenFiler 是免费的,但像可靠的 iSCSI 这样的关键功能却并不免费。来自 OpenFiler 用户的近期报告显示,在最新发布的版本中,甚至连非 iSCSI 存储都已变得不稳定,丢失数据成了家常便饭。OpenFiler 在这一行业细分领域的人们心目中仍然非常受欢迎,但应当被彻底避而远之。

如果你不需要把你的存储操作系统设备化,那么你将拥有更多、更好的选择,但决策树也要复杂得多。设备操作系统市场遍布陷阱(NexentaStor 有意料之外的成本,OpenFiler 看似支持 iSCSI 却会导致数据丢失,新版本中功能被移除),而与之不同,这里提到的全部四款操作系统都极其稳健且功能丰富。其中三款拥有 OEM 厂商支持,这可能是一个重要的决定性因素,而所有四款都拥有出色的第三方支持选项,其覆盖面远比设备市场所能提供的要广泛得多。

第一个决定是,是否需要 Windows 独有的功能,尤其是 NTFS ACL。新接触 NAS 的用户常常会惊讶地发现,SMB 协议并不能提供他们在 Windows 中所习惯的那种细粒度文件系统控制。这是因为那些控制实际上是由文件系统、而非网络协议来处理的,而唯有 Windows 通过 NTFS 提供了它们。因此,如果需要那种细粒度的 Windows 文件控制,Windows 就是你唯一的选择。

另外三位参选者——Linux、Solaris 和 FreeBSD——都共享着基本的能力,唯一值得注意的例外是集群。它们都拥有良好的软件 RAID,都拥有强大而稳健的文件系统,都拥有强大的逻辑卷管理,并且都提供了多种 NAS 和 SAN 连接选项。许多版本的 Linux 和 FreeBSD 都可以完全免费获得。Solaris 虽然可免费用于测试,但不能免费用于生产用途。

这三个操作系统选项之间最大的区别在于集群。Linux 拥有 DRBD 已经很长时间了,这是一项稳健的文件系统集群技术。FreeBSD 最近(自 9.0 起)加入了 HAST 以达成相同的目的。所以,从理论上讲,FreeBSD 拥有与 Linux 相同的集群选项,但这要新得多,也远不为人所熟知。Solaris 在其基础操作系统中缺乏文件系统集群,目前需要商业附加组件才能处理这一需求。

Solaris 和 FreeBSD 共享着强大且久经考验的 ZFS 文件系统。ZFS 极其强大而灵活,长期以来一直是这些平台的关键卖点。Linux 对文件系统的支持则更为错综复杂。几乎任何 Linux 发行版(我们这里主要关心的是 RHEL/CentOS、Oracle Unbreakable Linux、Suse/OpenSuse 和 Ubuntu)都支持 EXT4,它强大而快速,但缺乏 ZFS 那些真正出色的某些功能。不过,Linux 正在迅速采纳 BtrFS,它与 ZFS 极具竞争力,但尚处于萌芽阶段,目前仅在 Suse 和 Oracle Linux 发行版中可用。我们预计其他发行版很快也会推出可用于生产用途的版本,但目前它仍处于实验阶段。

在集群之外,这三者之间的操作系统选择很可能主要归结于经验和习惯。Solaris 通常以提供最佳吞吐量而著称,而 FreeBSD 则以最差而闻名。但三者其实都相当接近。一旦 BtrFS 在 Linux 上广泛可用且稳定下来,Linux 很可能会像过去一样成为事实上的首选。

在没有外部影响的情况下,我对存储平台的推荐是 FreeBSD,其次是 Linux,而 Solaris 则被排除,理由是很少有人在寻求商业支持,因此它被自动排除在外。这几乎完全基于写时复制文件系统的可用性,并假定不需要集群——而集群并不常见。如果确实需要集群,那么首选 Linux,其次是 FreeBSD,Solaris 同样被排除。

Linux 和 FreeBSD 在功能上正在迅速彼此靠拢。随着 BtrFS 在 Linux 上日趋成熟、HAST 在 FreeBSD 上日趋成熟,它们似乎正在中间地带会合,二者之间的选择不过是难分伯仲、各凭喜好而已。

并不存在单一而简单的答案。选择存储操作系统的关键,全在于在性能、资源、功能、支持、稳定性等等众多因素之间求得平衡。有一些因素可以用来排除许多候选者,而了解这些硬性的界定条件是关键所在。明确知道你打算如何使用该系统、以及哪些因素对你重要,对于从现有选项中去芜存菁至关重要。

即便你已经选定了一个平台,仍有许多决定要做。有些平台包含多种文件系统。有 SAN 和 NAS。有多种 SAN 和 NAS 协议。有网络绑定(在 Windows 世界里称作组合,teaming)。有多路径。有快照、卷、RAID。这份清单还可以一直列下去。

 

标签"open storage" freebsd linux nas sam-sd san solaris storage windows

广告

SMB IT Journal — the IT resource for small business