我们拥有600TB的EMC SAN存储。目前,Oracle RAC正在使用此存储。出于可扩展性原因,我们正在用Hadoop存储(Yarn,Spark - Hive,Shark)取代Oracle RAC - 尽管我们在性能上有所妥协。
对于Hadoop,建议使用本地存储而不是SAN存储。但我们的管理层不愿意浪费SAN存储。他们希望保护对SAN存储的投资。
我们如何才能最好地为Hadoop使用SAN?以太网升级有帮助吗?有哪些选项可以最大限度地利用SAN存储(如Hadoop存储)。
答案 0 :(得分:1)
假设我们使用相同的术语 - 特别是SAN是通过光纤通道网络访问的块设备 - 那么“本地存储”和“存储”之间没有太大区别。
您从中获得的性能受到相同因素的限制 - 控制器数量,主轴数量,争用率等。您首先购买存储阵列/ SAN的原因是因为您可以整合您的工作负载并以相同(或更低)的平均值获得更高的突发性能。
然而,还有一个因素 - SAN通常包括一个结构,这是一个用于承载磁盘存储流量的网络。您使用的交换机通常具有高性能/低延迟 - 但它们也可能成为瓶颈和争用点。
Hadoop ...通过使用HDFS有效地做同样的事情 - 使用它的多个本地磁盘来获得大爆炸。这本来会导致你的SAN争用,所以你不再获得太多的整合优势 - 而且你可能最终会变得更糟,因为争用意味着瓶颈和延迟。
如果您的存储阵列具有良好的峰值吞吐量,良好的重复数据删除机制和大型缓存,您可能会发现最好。只需确保您拥有足够的端到端峰值吞吐量和IOP容量。 可能你会发现你的情况比你更糟糕 - 但是你是否应该以较低的成本重复使用某些东西,而不是为了做到这一点而付出额外费用更多的是IT政策的决定而不是一个技术问题。
答案 1 :(得分:0)
显然,您使用SAN进行Hadoop但不建议这样做。 SAN控制器中存在争用并降低性能。
为hadoop使用SAN的最佳方法是:
1.使用RAID-0创建LUN。
2.LUN不应该共享,只需要专用于一个DataNode服务器
3.如果DataNode需要10GB,则创建2个LUN(或偶数),并在两个SAN控制器之间对这些LUN进行负载均衡。
显然,您可以将SAN用于具有适当RAID级别的NameNode(冗余 - 非零)。