0

我们有 600TB 的 EMC SAN 存储。目前,Oracle RAC 正在使用这种存储。出于可扩展性的原因,我们正在用 Hadoop 存储(Yarn、Spark - Hive、Shark)替换 Oracle RAC - 尽管我们在性能上有所妥协。

对于 Hadoop,建议使用本地存储而不是 SAN 存储。但是我们的管理层不愿意浪费 SAN 存储。他们希望保护对 SAN 存储的投资。

我们如何最好地将 SAN 用于 Hadoop?以太网升级会有帮助吗?有哪些选项可以最大限度地利用 SAN 存储(作为 Hadoop 存储)。

4

2 回答 2

1

假设我们使用相同的术语——特别是 SAN 是通过光纤通道网络访问的块设备——那么“本地存储”和“SAN 存储”之间没有太大区别。

您从中获得的性能受到相同因素的限制 - 控制器数量、心轴数量、争用率等。您购买存储阵列/SAN 的原因首先是因为您可以整合您的工作负载并获得具有相同(或更低)平均值的更高突发性能。

然而,还有一个额外的因素——SAN 通常包括一个结构,它是一个用于传输磁盘存储流量的网络。您使用的交换机通常具有高性能/低延迟 - 但它们也可能是瓶颈和争用点。

Hadoop ......通过使用 HDFS 有效地做同样的事情 - 使用它的多个本地磁盘来获得大的“突发”。这将在本质上导致您的 SAN 争用,因此您不会再获得太多整合优势 - 而且您最终可能会变得更糟,因为争用意味着瓶颈和延迟。

如果您的存储阵列具有良好的峰值吞吐量、良好的重复数据删除机制和大型缓存,您可能会发现您的情况会更好。只要确保您有足够的端到端峰值吞吐量和 IOP 容量即可。 可能您会发现自己的情况比实际情况更糟 - 但是您是否应该以较低的成本重复使用某些东西,而不是支付额外费用来正确地完成它,这更像是一种 IT 策略决策,而不是技术决策。

于 2014-08-20T13:18:17.583 回答
0

Obviously you use SAN for Hadoop but it is not advisable. There will be contention in SAN controllers and degrades the performance.

The best way to use SAN for hadoop are:

1.Create LUN with RAID-0.

2.LUN should not be shared and it needs to be dedicated to one DataNode server only

3.If a DataNode needs 10GB then create 2 LUNs (or even numbers) and load balance these LUNs between two controllers of SAN.

Obviously you can use SAN for NameNode with appropriate RAID level (with redundancy - non-zero).

于 2014-08-13T11:19:19.393 回答