我正在阅读有关 Hadoop 的资料,然后我被这句话难住了,“当数据集超出单个物理机器的存储容量时,就有必要将其划分到多个独立的机器上。”
那么,单台物理机的存储容量是否有限制?我认为这个问题属于“计算机架构”,但我没有读过这个主题,我很好奇为什么会有限制。为什么一台物理机不能有 1PB 的数据?
答案1
实际上,您可以直接连接到服务器的存储量通常仅受钱包大小的限制。
通常,当您需要为单台服务器提供大量存储空间时,大多数组织倾向于使用具有专用存储阵列和控制器的 SAN/网络连接存储,而不是直接连接存储。这些存储可以扩展到超过 1PB。
当您考虑直接连接存储时,单个服务器的技术限制如下:
- 主板上的磁盘连接器(即 SAS/SATA 端口)数量
- 主板 (PCIe 插槽) 上可安装的附加存储控制器的数量,以及每个控制器可寻址的设备数量(高端 SAS 控制器每个控制器最多可寻址 256 个设备)
- 可填充的内部磁盘托架数量。
- 您可以连接和填充的外部驱动器托盘数量
- 磁盘驱动器的大小
(当然,超过某个点后,增加容量就不会再带来任何额外的性能,因此存在一个成本效益临界点,当扩大规模不再像扩大规模那么有效时)
答案2
几乎所有类型的当前存储协议都可以提供几乎无限的存储。物理大小可能很快就会超过单个服务器的机箱容量,但您可以将物理安装扩展到额外的机架架甚至整个机架。神奇的词是 SAN(存储区域网络)。
- SAS 可以使用扩展器访问 16,000 个物理驱动器(可能更多)或逻辑驱动器(请参阅下面的 LUN)。
- 光纤通道可以使用交换机访问 1600 万个物理驱动器或 LUN;每个 LUN 可以由大量驱动器组成。
- iSCSI 实际上支持 1600 万个目标(私有 10.0.0.0/8 网络),每个目标由 256 个 LUN 组成,每个 LUN 又由大量驱动器组成。您还可以使用整个 IPv4 地址范围来支持 40 亿个目标,或者使用 IPv6 来支持完全荒谬的数字(340 十亿亿或 3,4*10 38)。
- SATA 也可以与端口倍增器一起使用,以容纳 15 个驱动器每个端口并且您可以添加控制器来获得大量端口。
购买和连接 1PB 的存储空间只是预算问题。或者 10PB。或者 100PB。或者...
但是,通常不会将那么多的存储连接到单个节点。出于可用性和可扩展性方面的考虑,大量节点或虚拟机之间通常会共享大量存储容量。所有当前的企业存储技术都允许共享,而直接连接存储和网络存储之间的区别更多在于实现,而不是技术。