适用于大型文件服务器的Linux文件系统


8

我想从经验丰富的人那里知道,对于硬盘容量超过20TB的文件服务器,使用文件系统的最佳选择是什么。我个人一直在我的个人计算机以及“小服务器”的BOOT和ROOT磁盘上使用EXT3(以前的版本)和EXT4(自可用)(曾经有ReiserFS 3,尽管它造成了很多数据损坏)。

但是,由于EXT4 工具(虽然不是EXT4本身)仅限于16TB分区,所以这可能不是我的最佳选择。发行版将是Debian 6.0(Squeeze)和/或Gentoo(最新版本),因此内核应该是最新的(至少在Debian上具有反向移植),这意味着linux内核> = 2.6.32。

文件服务器将用于邮件处理的三个目的(以及分隔的分区,因为目的是保持数据“安全”并且实际上并不在意过多的开销)。 虽然所有磁盘都使用LUKS加密

  1. 媒体,下载和本地Debian存储库[我至少有6台运行Debian的计算机]> 20TB(也许在媒体,下载和Debian存储库之间进一步分开)
  2. 数据(文档,照片等)〜4TB安全(意味着raid1或raid6 +备份磁盘)
  3. > = 20 TB的备份用于在千兆位局域网中备份其他计算机(您是否可以建议一种即使Windows也不备份整个OS的软件,BackupPC表示可以这样做,是否有其他选择?)

速度并不是真正必需的(并发访问:最多2个或3个大文件,例如视频),即使从10个HDD Raid6读取200MB / s的速度我也可以接受。

总而言之,我寻找一种可靠的,可扩展的(即易于扩展的)文件系统,该系统支持超过20TB /分区。FS越安全可靠,越好。所使用的硬件至少应为四核(amd x4 630或intel i5-2500k)和足够的RAM(> 8GB,也许> 16GB),因此应满足硬件要求。

万一停电,我的PC /服务器也将连接到UPS(不间断电源)。也 可能在单独的计算机(即两台服务器)上做媒体和备份。


7
以这种规模,您确实需要认真评估ZFS。重建时间和错误率成为您正在谈论的许多光盘所面临的严重问题,而zfs是目前唯一可用的稳定fs,它在堆栈中始终具有可靠的错误检查和纠正功能。
afrazier 2011年

1
ZFS本身不受Linux的支持(仅FUSE附带),或者在早期的pre-alpha状态中被本地支持。我不考虑使用solaris。从未尝试过FreeBSD,并且可能感兴趣,但是我现在不知道它的软件RAID支持(和常规硬件支持)是否与linux一样好
user51166 2011年

1
我知道,但是ZFS在其他平台上本地运行。虽然硬件支持与Linux不同,但这应该是您最少的担心。ZFS是一个完整的存储堆栈,因此无法进行软件突袭。在选择操作系统或存储系统之前,请先评估如何存储,管理,保护和备份数据。不要仅仅因为ZFS不是Linux本身而打折,它可能是目前免费提供的最先进的存储解决方案。
afrazier 2011年

谢谢您的答复,但我不明白:即使我可以毫无问题地使用FreeBSD(对此不太确定),是否还实施了类似raid的软件?类似FreeBSD的LUKS(Linux加密)吗?谢谢。我最熟悉Gentoo和Debian GNU / Linux。该服务器是家用服务器
user51166 2011年

还是您建议使用FreeBSD以外的其他操作系统?
user51166 2011年

Answers:


3

很多人建议使用ZFS。但是,除非通过保险丝,否则ZFS在Linux上本身不可用。对于性能可能很重要的情况,我不建议您这样做。

不幸的是,除非以某种方式解决了许可问题,否则ZFS永远不会作为本地内核模块提供。

XFS很好,但是有些人报告了损坏问题,对此我无法真正发表评论。我玩过小型XFS分区,没有这些问题,但是在生产中没有。

ZFS具有太多的优势和有用的功能,但是这些功能不可忽视。总之,它们是(有关其含义的完整说明,请参见ZFS Wiki):

  • 数据的完整性
  • 储存池
  • L2弧
  • 大容量
  • 写时复制
  • 快照和克隆
  • 动态条带化
  • 可变块大小
  • 轻量级文件系统创建
  • 缓存管理
  • 自适应字节序
  • 重复数据删除
  • 加密

那么我们如何解决呢?我建议的适合您情况的替代方法是考虑使用nexenta。这是一个Open Solaris内核,顶部运行GNU用户界面工具。拥有Open Solaris内核意味着拥有ZFS本机可用。


从他们的网站“社区版:无限制,免费版本,最高可存储18TB的存储空间”。好像我会遇到另一个限制,例如EXT4
user51166

而且我了解到ZFS几乎就是所有人所说的“最佳”。只是试图找出能够运行它的“最佳”操作系统/ solaris发行版。
user51166 2011年

Debian GNU / kFreeBSD似乎支持ZFS,我喜欢Debian的方式,但不确定我可以使用它,因为似乎支持的社区很小,但仍然存在一些主要的错误。
user51166

@ user51166-如果服务器仅用于存储,则还应考虑使用FreeBSD或FreeNAS。两者都有ZFS支持。
Matt H

4

您应该尝试一下XFS,使其完全符合您的要求:

XFS是64位文件系统。它支持的最大文件系统大小为8 exb减去一个字节,尽管这受主机操作系统施加的块限制的限制。在32位Linux系统上,这将文件和文件系统的大小限制为16 TB。


我听说在遇到停电时它可能会导致数据丢失,并且其日记不覆盖数据(仅覆盖元数据中的日记)。曾经在我的桌面上使用过它,但是产生了很多fsck错误,因此我宁愿不再使用它。我再说一遍:性能不是此选择的(主要)范围:稳定性是。
user51166 2011年

我不认为XFS不稳定,我在多个文件服务器中使用它,而且我没有任何问题...
aleroot 2011年

不,就稳定版本而言,它是稳定的。这是否意味着我多年来不会丢失数据?如果您正在寻找性能,那么XFS肯定是不错的选择,尽管我记得在网上阅读过,但是存在数据丢失问题(尽管幸运的是,与reiser 3相比,它不多)。忘记指定了,但是我在看LUKS设置,因此将使用LVM,如果可以的话。
user51166 2011年

不存在完美的文件系统...我认为XFS最适合您的需求。在XFS上使用LVM应该不会有任何问题。
aleroot 2011年

当然不是。有什么特殊的“限制” /“特征”吗?在线fsck和/或碎片整理问题,例如ext4的问题?
user51166 2011年

4

最简单的选择是使用XFS。关于XFS的许多不良体验都是基于旧版本和台式机硬件问题,我认为这些问题与在标准质量服务器硬件上进行的新部署并不真正相关。我写了一篇有关此主题的博客文章,可以帮助您理清当前情况。我忙于安装多个忙碌的XFS数据库,其中包含数百个用户和TB级的数据。它们全都在Debian Lenny内核(2.6.26)或更高版本上,多年来我没有听说过它们有任何麻烦。我不会将XFS与更早的内核一起使用。我听到一些直接的报告,当系统用完内存或磁盘空间时,人们仍然看到奇怪的XFS行为。我还没有看到自己。

唯一的其他合理选择是使用ext4并进行一些修改以支持更大的文件系统。我不希望它具有完全不同的可靠性水平。我不得不从多个损坏的ext4系统中恢复数据,这些系统陷入了内核错误,到目前为止,所有这些都已在上游修复,但当时不在分发者的内核中。ext4有它自己的一组元数据问题,例如延迟分配数据丢失,这在ext3上不太可能发生。我估计如果您将ext4错误强制超过正常大小限制,则您碰到ext4错误的几率甚至会比正常情况高,这仅是因为似乎您更有可能在某个时候碰到了未经过良好测试的新代码路径。

另一种想法是只使用更安全无聊的ext3,接受16TB的限制,并更好地进行分区,因此没有一个文件系统必须那么大。

与期刊问题有关的一个松散结局。您没有谈论所有这些驱动器将如何连接。确保您了解此处存储链中所有写缓存的含义。禁用它或确保文件系统正在清除缓存。如果您尚未检查的话,我已经在Reliable Writes上保存了一些相关资源。

驱动器吸。RAID阵列糟透了。文件系统糟透了。发生多个故障。很高兴看到您已经在考虑备份;从良好的可靠性到出色的存储可靠性,不仅仅需要RAID和一些备用驱动器。冗余在各个层面上都需要付出一定的代价,而硬件与软件复杂性之间的关系是很难解决的。并注意您对性能的期望。尽管您正在考虑的RAID阵列可以轻松完成数百MB / s的速度,但所需的是两个并发的读取器不断寻找磁盘,从而将其降低到仅几MB / s。我可以轻松地粉碎24磁盘RAID10阵列,使其在基准工作负载下仅提供<5MB / s的速度。如果可能的话,确保有多个流式阅读器可以使您向上调整预读,这是有帮助的一件事。


我将在家里使用它,因此我计划使用主流硬件。也许还可以使用服务器硬件,但是我仍然必须看到明年SB-E将在至强部门提供什么(我也希望在虚拟化方面有所作为)。如果不是太贵,我计划使用便宜的服务器硬件和ECC内存(很多)。性能方面,我不需要任何特别的东西。
user51166 2011年

是的,我正在考虑备份,但尚未实现。我仍在寻找能够创建系统映像和/或轻松实现tar / zip / ...具有管理界面的文件夹的备份解决方案,该界面允许自动还原。BackupPC似乎只有一点点限制,并且不确定我是否相信Crashplan(使用它将数据备份到远程位置,因此需要冗余,因此需要另一个系统)。我必须自己写一个Web GUI还是已经存在这样的东西(开源软件,或者至少免费使用)
user51166 2011年

2

使用FreeBSD在ZFS上进行部署可能会在此处使用gbde进行加密。ZFS本身将通过RAIDZ成为软件RAID提供程序。构建zpool的存储管理复杂性与Linux借助mdadm所实现的存储管理复杂性没有显着差异,并且在某些情况下实际上会更容易。我的第一个ZFS安装(大约3年前在Solaris 10上)在48个驱动器上有一个17TB的文件系统。我在那儿经历了多次故障,没有遇到任何问题,并且在我学习的同时学习了ZFS管理。

主要优点是ZFS的校验和提供了比Linux更好的错误检测功能,这是对值得考虑的不良硬件的防御。主要缺点是FreeBSD不太流行。您还不知道如何管理它,硬件支持比Linux弱一些,并且由于它是一个不太受欢迎的平台,因此如果遇到问题,没有那么多人寻求帮助。

数TB的存储阵列确实确实突出了ZFS的优势。如果您愿意尝试一些新事物,则值得认真考虑。如果您想探索真正的备份偏执狂,请构建Linux和FreeBSD备份服务器,以减少OS错误作为单点故障原因的几率。


已经有Linux作为文件服务器,我仍然必须真正开始使用它(我仅对6个磁盘上的RAID-6 + LUKS软件进行了一些测试)。唯一的问题是我很少有时间去玩。我喜欢你的回答。那么,如果采用ZFS方式,您对操作系统有何建议?FreeBSD和opensolaris(不再维护),OpenIndiana(如我所见,是OpenSolaris开源)和Solaris Express 11(Oracle:S)似乎是唯一的选择。我不会在工作中使用它,而是在家中的业余爱好,但是无论如何我都希望有稳定的东西,并且它也易于使用。
user51166 2011年

我真的已经习惯了使用智能和出现。我对您如何在freebsd(cd / usr / ... && make install)中编译/管理/更新端口的理解是,这似乎并不“正确”(我希望纯粹主义者可以原谅我使用该术语的意思) ,但对我来说似乎很奇怪,如果您想更新软件包,则必须这样做,没有自动的依赖关系解决方案[我只是看了一下FreeBSD的手册])。还是有像debian或gentoo那样的简单软件包管理系统?
2011年

我已经知道我可以简单地rsync我想要的东西或tar / diff等,但是我想知道是否已经有其他实用的东西了。谢谢
user51166 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.