我正在运行一个工作站,配备双 xeon 5690(12 个物理核心/24 个逻辑核心)、192 GB 的 RAM(即已最大化)、Windows 7 64 位、5 个适配卡插槽和 1 TB 的内部存储,以及 5 个可用的内部托架。
我有一个应用程序,它创建的数据文件总计约 88 TB。这些文件每 14 个月写入一次,其余时间应用程序只需读取它们;并且 95% 以上的读取都是对大量数据的连续读取。我可以控制单个文件的大小,但理想情况下它们的大小应在 5 到 8 TB 之间。
该应用程序每次只从一个驱动器读取数据,并且数据的性质是,如果(当)驱动器坏了,我可以将数据从磁带恢复到新磁盘。
虽然能够使用最快的驱动器/控制器会很好,但此时尺寸比速度更重要。
读了很多资料后,我倾向于购买一堆便宜的 2TB 硬盘,然后将它们放入一堆便宜的机箱中。所有这些东西都会放在我的家庭办公室,所以我需要避免使用架空地板/冷藏方法。
我的问题:
廉价的驱动器/外壳解决方案是这种情况的最佳选择吗?
考虑到应用程序的性质和数据的使用方式,RAID 是否有意义?如果有,选择哪一种?
对于大量的连续读取,Usb 3.0 和 eSata 在性能方面是否会相等?
对于工作站上的每个可用插槽,我是否可以连接一个可容纳多个驱动器的机箱?还是每个驱动器一个控制器?
如果我可以在一个控制器上安装多个驱动器,那么我是否实际上是在分割带宽(吞吐量)?例如,如果我有一个 12 托架机箱,那么控制器的吞吐量是否会降低 12 倍?
我应该注意 Windows 7 卷/驱动器/容量限制吗?
答案1
我会尽力回答,但您问到的一些问题更多是关于个人偏好和软件功能,而不是确凿的技术事实。
廉价硬盘……嗯……很便宜。只有少数情况下廉价硬盘比企业级硬盘“更好”。使用廉价/消费级硬盘,您将无法获得企业级硬盘的性能、可靠性或支持,但是如果您的应用程序可以承受一年内几个硬盘发生故障,并且您有几块备用硬盘放在柜子里,当它们发生故障时,您可以随时使用廉价硬盘可能最适合这种情况。大多数消费级硬盘并非设计为全天候运行,尽管大多数硬盘都很乐意这样做。如果性能是一个因素,您可能需要在性能、可靠性和成本之间达成妥协,请查看一些低端服务器硬盘。
这是一个难题,因为你说你不需要可靠性,像 RAID5/6/10 这样的方案可能没有意义。如果你想在 Windows 中将整个阵列作为单个磁盘处理,你需要 RAID0(条带化),但这也存在自身的问题,主要是如果阵列中的一个驱动器发生故障,整个阵列将变得毫无用处*。考虑到你的要求,我可能会建议使用 RAID5。这会降低写入性能,这可能是如此大的数据文件的问题,但读取性能会相当好。此外,根据你的应用程序,可能可以单独和独立地安装每个驱动器(因此它们在 Windows 资源管理器中显示为单独的),你的应用程序需要足够智能才能将正确的数据写入正确的驱动器,但如果一个驱动器发生故障,你只会丢失该驱动器的数据。这也意味着你只需要有
roof(total space needed/drive capacity)
磁盘(假设你决定不为冗余准备备用磁盘)这更多取决于最大协议速度,我记不清了,但应该很容易找到。然而,您更有可能受到磁盘速度而不是电缆速度的限制。
这些都是非常相似的问题,但可能值得研究Backblaze 存储舱(而且相关问题),但是他们的 SATA 卡链接设置可能是你想要的,但我不知道 Windows 内部会如何响应这个设置
往上看
据我所知,Windows 7 的限制是 250TB 左右,所以您应该不会遇到任何问题,但您应该仔细检查这一点。
相关的问题是,你为什么要使用 Windows 7?这种工作负载更适合 Windows Server
*如果您有足够好的备份,则可以将正确的数据恢复到一个磁盘,但不能“插入新磁盘并让 RAID 修复它”
答案2
-1)廉价的驱动器/外壳解决方案是这种情况的最佳解决方案吗?
如果这是您唯一能负担得起的,那么这就是您必须接受的一切,就我个人而言,我不会相信它,因为它们可能会并且确实会比您希望的更频繁地失败。
0) 考虑到应用程序的性质和数据的使用方式,RAID 是否有意义?如果有意义,选择哪一个?
是的。我认为您实际上正在考虑 raid 5+1 或 raid 6。考虑到 2TB 驱动器发生故障的概率,您无论如何都会想要超过 raid 5。请记住,当驱动器发生故障时,重建时间将以天为单位,在此期间性能将非常糟糕。
1) 对于大量的连续读取,Usb 3.0 和 eSata 在性能方面是否会有差距?
也许吧,很难说。USB 3.0 非常快,但我还没有在 raid 设置中尝试过。带有 7 个 USB 外壳的 USB 2.0 相当差,但我不知道这是 USB 2.0 的性质还是将其全部挂在 USB 上的性质。
3) 如果一个控制器上可以安装多个驱动器,那么我是否实际上分割了带宽(吞吐量)?例如,如果我有一个 12 托架机箱,那么控制器的吞吐量是否会降低 12 倍?
如果我理解正确(而您仍然指的是 USB),那么是的,USB 集线器会将其带宽分割到每个端口,并且如果每个端口有多个驱动器,则每个驱动器的速度就会降低,但只有当 USB3.0/驱动器数量小于一个驱动器的最大速度时才会如此。
答案3
廉价的驱动器/外壳解决方案是这种情况的最佳选择吗?
定义便宜。如果你指的是低于 300 美元每箱如果有 5 个以上托架,那么可以,这样可以正常工作。
考虑到应用程序的性质和数据的使用方式,RAID 是否有意义?如果有,选择哪一种?
(A) 是的。(B) 视情况而定。特定的 RAID 设置读取速度会更快,但写入速度会非常糟糕;每种设置都有不同的权衡。
对于大量的连续读取,Usb 3.0 和 eSata 在性能方面是否会相等?
不要考虑 USB 3,坚持使用 eSATA。USB 看起来便宜,听起来便宜,而且当你购买并组装好它时在这个规模,性能会很便宜。USB 争用会抵消你取得的任何收益,尤其是当你选择对数据进行 RAID 条带化时,因为实际上有 1 条总线和 N 个主轴在该单条总线上往返。eSATA 至少会限制在单个互连上往返的主轴数量;提供 4:1 的 SATA 端口扩展器并不罕见,这意味着争用会少很多。
对于工作站上的每个可用插槽,我是否可以连接一个可容纳多个驱动器的机箱?还是每个驱动器一个控制器?
(A) 是的。 (B) 不,你不想要那个,但是它是可行的。
购买具有 4 个以上 eSATA 连接器的卡并且每个端口都支持 SATA 扩展器。将一张卡放入每个插槽,每张卡总共 4 个端口 * 5 个插槽 * 每个卡端口 4 个扩展端口 = 80 个 eSATA 端口。如果您使用 1.5Tb(80 * 1.5 = 120Tb)或 2Tb(80 * 2 = 160Tb)驱动器,那么这应该可以满足您的需求。
当然,这种安排将有 4 * 5 = 20 个驱动器托架。如果你能找到更密集的解决方案,那将对你有利……
如果我可以在一个控制器上安装多个驱动器,那么我是否实际上是在分割带宽(吞吐量)?例如,如果我有一个 12 托架机箱,那么控制器的吞吐量是否会降低 12 倍?
对于 eSATA,一条带状电缆 = 一条总线,因此只有当所有驱动器同时通过该电缆时,它才有效。如果一次只有一个驱动器使用它,则不会发生争用,因此无需担心。在 RAID 设置中,由于所有驱动器都充斥在总线上,因此您就完蛋了。使用多个卡/机箱/扩展器路线,您可以将争用降到最低,因为每条物理电缆最多有 4 个驱动器需要争用。
我应该注意 Windows 7 卷/驱动器/容量限制吗?
不知道,虽然看起来有人已经回答了这个问题。(答案似乎是 250Tb)。