各种网站(如 Hortonworks)建议不要为 HDFS 设置配置 RAID,主要有两个原因:
- 速度受限于较慢的磁盘(JBOD 性能更好)。
- 可靠性
建议在 NameNode 上使用 RAID。
但是在每个 DataNode 存储磁盘上实现 RAID 呢?
各种网站(如 Hortonworks)建议不要为 HDFS 设置配置 RAID,主要有两个原因:
建议在 NameNode 上使用 RAID。
但是在每个 DataNode 存储磁盘上实现 RAID 呢?
RAID 用于两个目的。根据 RAID 配置,您可以获得:
HDFS 在软件中内置了类似的机制。HDFS 将文件拆分成块(所谓的文件块),这些块在多个数据节点之间复制并存储在它们的本地文件系统中。通常,数据节点有多个单独安装的磁盘(JBOD)。数据节点应该将其文件块分布在其所有磁盘/本地文件系统中。
这可确保:
由于 HDFS 负责容错和“条带化”读取,因此无需在 HDFS 下使用 RAID。使用 RAID 只会更昂贵,提供更少的存储空间,而且速度也会更慢(取决于具体的 RAID 配置)。
由于 namenode 是 HDFS 中的单点故障,因此它需要更可靠的硬件设置。因此,建议在名称节点上使用 RAID。
RAID0 和企业服务器是一个巨大的错误。我当然很想见见设计这个的人。这对 IT 运营经理来说没有常识。如果您将任何本地服务器磁盘配置为 RAID0,您将面临漫长而痛苦的 RAID0 恢复风险。如果 RAID0 中的单个磁盘发生故障,则该 RAID 分区将被破坏,并且在更换磁盘时它不会神奇地恢复。有人必须登录到服务器并删除旧的 RAID 分区并创建一个新分区。当工时和工作周期处于历史最高水平时,这会产生大量开销。IT 运营经理要么会因为更优先的工作负载而推迟执行此操作,要么会因为没有足够的周期将人力资源用于更重要的工作而拒绝执行此操作。然后它会被推到另一个团队。然后政治开始了,然后它被推回给服务器所有者/客户。如果您想让 RAID1 或 SAN 驱动器可用,那么您可以避免整个场景。