我打算买一个 7 端口 USB 3.0 集线器,并将 7 个便携式硬盘连接到它,以便构建 RAID 6 阵列。该集线器配有一个上游微型 USB 3.0 B 型端口,以及一个额定电压为 5V 2A 的辅助电源适配器(微型 USB 2.0 B 型连接器)。
每个 2.5 英寸硬盘很容易消耗 5V 0.9A,这是单个 USB 3.0 端口的最大电流。现在我要将其中 7 个连接到所有可用端口。
我的问题是:
答案1
这是一个糟糕的想法;不要这样做!
对于电子设备来说,总输入功率始终等于总输出功率。您有两个电源:电源最高 2 A,上游端口最高 0.9 A,总计最高 2.9 A。如果驱动器试图拉动更多电流,会发生什么情况?
- 如果电源质量良好,它将不会提供超过额定 2 A 的电流,并且(至少某些)驱动器将不会启动/突然停止。
- 如果电源不可靠,就会发生火灾。
使用菊花链式集线器:
- 如果集线器带有防止反向供电的二极管,情况就会变得混乱:第一个集线器的电源为链上的所有集线器供电,但最后一个集线器仅为最后一个集线器供电。这非常不可靠。
- 如果没有,所有集线器将共享所有电源。这将是更好的选择。
此外,HDD 将吸引明显更多启动时,电流会比额定电流高出一小会儿。而且它们一通电就会启动,也就是说同时启动。服务器通过间隔地逐个启动驱动器来处理这个问题。在这里你无法这样做,因为你没有高级驱动器控制器;每个驱动器在其集成的 SATA 转 USB 适配器中都有一个。更强大的电源会改善情况,但它仍然非常不可靠。
除了电力问题之外,这仍然是一个糟糕的想法
我不知道您打算如何使用这个特殊的 RAID 阵列,但它从根本上是有缺陷的。
RAID 不仅仅用于备份,RAID 是关于可靠性的。如果您想要防止数据丢失,RAID 不是您所需要的。因此,我认为该项目的目标是可靠性和可用性。您的阵列非常不可靠,因此它无法发挥其唯一作用。
一旦单个驱动器发生故障或因任何原因从阵列中掉线,就必须将其重新放入阵列并重建。重建单个十几 TB 驱动器需要几天时间。您想使用 2.5 英寸驱动器,因此我们可能在 500 GB - 5 TB 范围内。这样的驱动器可能需要三小时到两天的时间。现在考虑一下:
- 你的电源解决方案不够完善
- USB 并非用于永久连接 - 驱动器有时会意外断开连接
- 我们不确定这个集线器能不能很好地处理大量驱动器
- 这些硬盘要么占用大量桌面空间,要么整齐地堆放在一起,随时准备被拆下来
- 它们都不是设计用于处理放大七倍的振动(驱动器振动会穿过外壳、桌子等)的。
和RAID 6您可能会丢失两个驱动器而不会丢失数据,包括正在等待重建的驱动器。考虑到这些问题,如果您丢失驱动器的速度比重建驱动器的速度快,我不会感到惊讶。这将是一场即将发生的灾难。
解决方案
你需要一个数据采集系统(直接附加存储)。它是一个机箱,您可以在其中放置驱动器,将它们配置为阵列并将它们显示为单个设备。RAID 完全由 DAS 本身管理。网络存储(网络附加存储)也是一种选择,但它可以通过网络而不是直接连接来使用。
DAS 和 NAS 设备在构建时就考虑到了多驱动器。电源问题已经为您解决,磁盘使用 SATA 连接器连接并用螺丝固定(最好使用 3.5 英寸磁盘,但如果您出于某种原因更喜欢 2.5 英寸 + 适配器,也可以使用)。建议使用专为 NAS 设计的驱动器。
这将花费更多,但是它将可靠地工作这才是关键。
您可以通过购买外置驱动器(它们比内置驱动器便宜)并将它们从 USB 外壳中取出(“剥壳”)来降低价格。但您可能会失去保修,并且会得到未经阵列认证的驱动器(振动问题),而且您必须知道要购买什么:例如,一些 2.5 英寸便携式驱动器的 USB 端口直接焊接到其 PCB 上,没有任何 SATA 端口。
一些流行的 DAS 品牌是 TerraMaster 和 Drobo。
TL;DR:不要这样做。
如果您的预算紧张,请缩小规模并选择 DAS。
答案2
这似乎是一个 XY 问题。根据评论,您实际上想要实现的是以一种廉价的方式扩展文件服务器的存储容量。
这里的问题是 USB可怕的为了任何由于以下几个原因,可靠性非常重要:
- USB 上的电源分配通常存在问题。您可以通过仅使用有源集线器和有源外围设备来缓解此问题,但这并不能解决任何其他问题。
- 从延迟和效率的角度来看,“总线”是不对称的。某个东西在集线器链中的位置越靠下,其延迟和吞吐量就越差。这可以通过利用平衡树拓扑来缓解,这样所有内容都处于相同的嵌套深度,但这并不简单,特别是因为大多数计算机上的 USB 端口实际上是内部连接到集线器而不是直接连接到主机控制器,而且它也并不便宜。
- USB 连接器实际上在机械上相当不稳定。这对于 USB 的最初用途来说非常重要,这样当您绊倒电缆时就不会损坏端口,但对于需要可靠性的存储系统来说,这是一件非常糟糕的事情。
- 它是非常很容易意外触发总线重置。对于 USB 打算使用的输入设备来说,这不是问题,但对于存储设备来说,这是一个严重的问题(如果您做得正确,SCSI 或 SATA 设备的链路重置就是您开始更换硬件的时候之一)。
- 由于 MSC 和 UAS 标准的工作方式,每次重置总线时都必须重新初始化整个设备,这反过来会在处理任何类型的 RAID 阵列时导致各种严重的行为问题。
根据您具体能花多少钱,有几种“正确”的方法可以解决此问题:
- 考虑购买一些 SATA端口倍增器(本质上,它们就像 SATA 设备的 USB 集线器)。您需要操作系统的支持才能实现此功能,但这可能是最便宜且足够可靠的选项(只是不要链接端口倍增器,它在技术上可行,但在大多数情况下会导致严重的性能问题)。
- 只需为文件服务器获取合适的 SAS HBA。SAS 控制器与 SATA 磁盘配合得很好(必须如此),但比 SATA 控制器效率高得多,并且通常具有更多端口(小型控制器通常有 8 个端口)。如果这样做,请将服务器的操作系统放在 MB 上的 SATA 连接器上。如果您有为了将其保留为一个特定的系统,这就是我要做的。
- 获取专用的 NAS 系统。对于一个好的系统,你可能要花费 4-5 位数的成本,但它的使用寿命可能比你现有的其他系统更长,而且几乎肯定会远远超出你的实际需要。FreeNAS 是我在这里推荐的操作系统(iXsystems 是支持 FreeNAS 的公司,它提供价格合理的半定制系统,具有高端企业级品质)。从那里,你可以使用 iSCSI 来扩展文件服务器的存储空间,也可以直接使用 NAS。
- 购买一堆小型廉价系统,在每个系统里放一个大存储设备,然后设置一个集群文件系统。我特别推荐 GlusterFS(只要您不需要非常快的存储,您就可以将单个 GlusterFS 节点放在一起,每个节点不到 500 美元)。这将为您提供最佳的长期可扩展性(如果您的网络硬件良好,它可以轻松进入数千 TB 的范围而不会出现问题),但会对您在基础设施方面可能做出的其他选择施加重大限制。我之前自己在 Intel NUC 系统和 Raspberry Pi 上都这样做过。
- 可能需要花费数十万美元才能购买合适的 SAN。除非您与大公司打交道,否则不要这样做,这通常是一种浪费。
答案3
与任何 USB 设备一样,集线器也采用“总线”供电或“自我”供电。
设备正常枚举,并出现在配置 0 中,其中没有实现任何接口并且功率限制为 100 mA。
如果功率预算允许,操作系统可能仅启用具有更高功率要求的配置。
总线供电的 USB 1.1 或 2.0 集线器在其工作配置中需要 500 mA 电流,这足以为其自身和四个下游设备分别提供 100 mA 电流(这就是 USB 集线器始终有四个端口的原因),并且只有在满足该请求后才会为下游设备供电。
自供电 USB 集线器需要 4 mA 电流,这几乎是一个象征性值——此配置比非活动配置耗电少,因此始终在功率预算之内。如果未连接电源适配器,集线器必须拒绝配置切换。
集线器提供自供电和总线供电两种配置,操作系统将依次尝试这两种配置。如果没有电源适配器,则拒绝自供电配置,操作系统将检查功率预算是否足以支持总线供电配置。
因此,在具有任意数量集线器的树中,要么有足够的电力供所有设备使用,要么存在一个设备,操作系统知道该设备的电力预算不允许激活“工作”配置,从而导致在 UI 中显示一条消息。
七端口 USB 1.1 或 2.0 集线器由两个四端口集线器组成,其中一个位于另一个的下游,因此如果该集线器的电源不足,将导致四个下游端口完全断电,操作系统将要求用户插入集线器的电源。
对于 USB 3.0,数字发生了一些变化,因为现在可以请求更多电力,但总体思路保持不变:如果电力预算不允许,设备将不会被激活。
集线器知道其下游端口的总功率预算为 2 A,并将这一事实报告给操作系统。操作系统将拒绝激活超过该预算允许的磁盘数量,因此预计只有少数磁盘会旋转。
理论上,磁盘可能会尝试在未经许可的情况下启动,这将违反 USB 规范。接下来会发生什么取决于集线器是否主动限制端口功率。我不会将数据托付给任何不等待明确切换到活动配置的磁盘。
答案4
我已经有一段时间没有研究过 USB 规范了,但符合 USB 规范的设备会经过设备枚举,主机会询问它们需要多少电量。在枚举完成之前,允许它们使用 100mA 的电流。电流请求是协商过程的一部分。顶级 USB 主机管理总线上的总电流消耗,我的理解是,当预算不允许时,它会拒绝新设备的电源请求。当预算用完时,即使是适度的请求也应该被拒绝。如果我没记错的话,其他人可以确认一下。
最佳情况下(USB2.0)允许的电流高达 500mA,具体取决于总线上的其他设备。使用 USB3.0,该电流量上升至 900mA。