对 40TB 服务器配置的健全性检查

Pet*_*ell 21 zfs sas software-raid

我有 40 年的计算经验,但我从来没有构建过像这样的服务器,所以这可能是一个 n00b 问题。

我有一个客户将提供超高清音乐文件供下载。在这种情况下,这意味着 FLAC 压缩的 24/192Khz =~ 10GB/专辑。(不,我不想讨论产品的可取性,只是服务器配置。)目录将是大约 3,000 张专辑,包括超高和低清晰度版本(我猜是他们的 iPod),大约35-40TB 左右的原始数据。

由于这是一个非常专业的产品,市场规模相对较小(想想:在音频系统上花费超过 20,000 美元的人),这意味着服务器在大部分时间将 100% 闲置(或接近闲置)。我从 ColocationAmerica 获得了一个很好的主机托管服务,连接速度为 1Gbps,带宽约为 20 美元/TB,所以现在我只需要构建一个盒子来运送货物。

数据访问用例是一次写入/多次读取,所以我只想将软件 RAID 1 用于驱动器对。这将允许我(我认为)即时为发生故障的驱动器重新配置备用驱动器,从而能够在某些系统管理员注意到系统上的红灯之前开始重建第二个驱动器(他们可以免费换出)。如果不需要大多数驱动器,我可以让大多数驱动器进入睡眠/降速状态,那就太好了,这将是大多数驱动器的大部分时间。

我不需要太多的计算能力——这个东西只是把胖对象推到管道里——所以 CPU/主板可以非常适中,只要它可以支持这个数量的驱动器。

我目前正在考虑以下配置:

Chasis: Supermicro CSE-847E26-RJBOD1
Drives: 30 4TB SAS drives (Seagate ST4000NM0023 ?)
MB: SUPERMICRO MBD-X10SAE-O w/ 8GB
CPU: Xeon E3-1220V3 3.1GHz LGA 1150 80W Quad-Core Server
Run Code Online (Sandbox Code Playgroud)

那么,我是在朝着正确的方向前进,还是这是一种完全解决问题的 n00b / 恐龙方式?

更新以澄清几点:

  1. 我没有使用 ZFS 的经验,因为我拥有的最后一个 Sun 产品是在 80 年代后期。我会做一些 RTFMing,看看感觉是否合适。
  2. 我真的不需要文件系统做任何壮观的事情,因为文件名将是简单的 UUID,并且对象将在驱动器之间保持平衡(有点像大型缓存系统)。所以我真的认为这些是 40 个独立的文件系统,这让 RAID 1 听起来很正确(但我在这里承认无知)。
  3. 因为我们目前的预期是,我们不太可能一次下载几十个文件,而且在大多数情况下,任何给定的文件都会只有一个人下载,我不知道我们是否需要大量内存用于缓冲区。也许 8GB 有点轻,但我认为 128GB 除了消耗能源之外不会做任何事情。
  4. 这里没有提到 2 台独立的机器:它们当前的网络商店,以及处理所有身份验证、新产品摄取管理、策略实施(毕竟,这RIAA 的游乐场)、临时 URL 创建(可能还有如果流量超出我们的预期,则将下载交给这些野兽中的一个以上)、使用情况跟踪和报告生成。这意味着台机器几乎可以用 Quaaludes 上的沙鼠建造。

ZFS?好处在哪里?

好的,我正在努力浏览多个 ZFS 指南、常见问题解答等。请原谅我听起来很愚蠢,但我真的想了解使用 ZFS 而不是我的 N RAID1 对的旧概念的好处。在这个最佳实践页面(从 2006 年开始),他们甚至建议不要使用 48 个设备的 ZFS,而是使用 24 个 2-device-mirrors——听起来有点像我在谈论的事情。其他页面提到了必须访问的设备数量才能提供 1(一)个 ZFS 块。另外,请记住,在每个对象 10GB 和 80% 的磁盘利用率下,我每个 4TB 驱动器总共存储 320 个文件。对于任何给定的驱动器故障,我使用 N RAID 1 的重建时间是从一个设备到另一个设备的 4TB 写入。ZFS 如何使它变得更好?

我承认自己是个恐龙,但磁盘很便宜,我理解 RAID 1,我的文件管理需求微不足道,Linux(我的首选操作系统)上的 ZFS 还很年轻。也许我太保守了,但是当我查看生产系统时,我就是这样滚动的。

我非常感谢你们所有人的评论,让我想到了这一点。我还没有完全决定,我可能不得不回来问一些更多的问题。

vor*_*aq7 12

根据您的问题描述,您的问题与其说是服务器,不如说是存储。
您需要一个可靠、健壮的文件系统,如ZFS,它旨在很好地处理大存储容量,并具有内置管理功能,使系统的这一端更易于管理。

正如评论中提到的,我会使用 ZFS 作为存储池(可能在 FreeBSD 上,因为我最熟悉该操作系统,并且因为它在 ZFS 的稳定性能方面有长期的、经过验证的记录 - 我的第二选择操作系统将是Illumos,再次因为经过良好测试的 ZFS 支持)。


至于提供文件,我同意 - 您不需要太多硬件就可以将数据从网络端口推出。CPU/RAM 的主要驱动程序将是文件系统 (ZFS) 的需求。
一般的经验法则是 ZFS 需要 1GB 的 RAM,它管理的每 10TB 磁盘空间需要 1GB(因此对于 40TB,ZFS 需要 5GB 的 RAM)——尽管这种关系不是很线性(有很多ZFS 上的好书/教程/文档,可以帮助您对环境进行估算)。
请注意,添加 ZFS 花里胡哨(如重复数据删除)将需要更多 RAM。

显然要提高而不是降低 RAM 要求,而且不要吝啬:如果您的数学计算表明您需要 5GB 的 RAM,请不要用 8GB 加载服务器——增加到 16GB。

然后,您可以直接在存储盒上运行服务器(这意味着该存储盒上将需要更多 RAM 来支持服务器进程),或者您可以将存储远程安装到“前端”服务器以实际服务于客户请求。
(前者最初更便宜,后者长期扩展性更好。)


除了这个建议,我能给你的最好的建议已经在我们的容量规划系列问题中得到了很好的涵盖——基本上是“负载测试,负载测试负载测试”。