如今集群设计遍地都是。最典型的例子包括软件定义存储、虚拟化架构、超级融合、公有云与私有云,以及众所周知的大数据。集群以横向扩展的方式来构建基础设施,使用商业产品,如服务器和JBOD。横向扩展的设计能够实现容量与性能递增,与大部分纵向扩展的基础架构相比,有着巨大的成本规模效益。
大集群因为其支持大规模融合与整合,可以协助优化整体资本支出,而不断吸引业内目光。那么为什么我们不把现在所有的IT基础设施都集群化呢?大规模集群管理和运维都相当复杂,尤其是在开始将工作负载和租户结合后。如果建造了一个大集群,就必须确保期能充分得到利用,也意味着需要托管大量工作负载。一旦出现这种情况,IT需要搞清楚如何合理的优先或公平分配资源。这从来不是一件简单的事——实施、配置与优化管理共享集群架构的总运营成本,通常会高于部署完全独立或向上扩展产品的总成本。
当集群在虚拟化基础架构中,虚拟化管理程序负责加强共享、隔离吵闹的邻居、动态迁移和/或重新启动受影响,甚至突然飙升的工作负载,还扮演交警的角色。这几年我们发现了该领域的长足进步,可以在虚拟机层面和虚拟存储卷级别(如VMware VVOL)上,动态执行用户指定的服务质量(QoS)。
当然,可以把基础架构云(如OpenStack)作为大型、优化管理集群资源作为整体思路。尽管如此,虚拟化和云基础架构平台需要数年时间才能成熟,目前仍然不完美。在开发云管理工具的路上还有很长的路要走,要实现在专属设备上部署系统的简化。而且在虚拟化环境内,仍然难以确保虚拟机内的应用程序能够提供最终用户可靠的响应时间。
针对大数据的集群管理工具
有效的集群管理设计对大数据尤其重要,这关系到引入企业IT规模扩展的HPC技术。Hadoop、Spark和其他可扩展NoSQL工具旨在让所有人都实现分布式处理。然而,生产大数据应用程序目前要求应用程序性能的一致性。当大数据应用支撑着关键业务流程时,运营与性能的可靠性和稳定性将成为问题。
在种类繁多的大数据工具如Hadoop集群,每个大数据作业都争夺相同的资源。到目前为止,很多Hadoop集群只是简单处理小型单一的大数据处理流程或只对小部分用户服务,通常用于非生产环境的数据科学。但随着大数据集群移入生成环境,就意味着它们需要承载更多的任务并且服务多个租户——就如大型虚拟化或云集群。而当这种集群被共享,管理大数据将成为一大挑战。
经常看到新的大数据集群管理和操作方案并不稀奇。集群管理工具一般分为几类。起步于高性能计算领域的Bright Computing公司,现在正协助企业从裸机上部署、配置与管理大型集群。
但真正的关键在于性能管理,秘诀在于了解都是谁,以及在什么时候做什么事。至少,还有标准的工具可以从集群的日志文件(通常十分巨大)中生成报告。但随着日志的增长,这个方法的效果会降低。而且当谈及运营性能,真正要做的实际上是优化混合租户与混合工作负载环境的QoS和运行时。例如,Pepperdata能生成实时运行视图,展示集群里正在发生什么,然后可以动态的控制和分配集群资源。这样可以保证优先级应用程序满足服务器级别协议,同时最小化集群基础设施的规模。
在更高的级别,大数据需要有自己专属的应用程序性能管理程序。例子之一是Concurrent的Driven,可以跟踪和回溯应用程序执行轨迹,还可以直接监控业务流程和应用程序级的工作流,应用程序之间的内部依赖、运行时和失败。这样有助于识别代码瓶颈,规划和修复工作流执行窗口,并协助数据管理。
随着横向扩展架构在数据中心内落地,集群管理工具的价值将增长——降低资源共享所需的资本支出,同时保障承诺性能和其他大数据处理业务的QoS。在某些情况下,IT没有这些集群专用工具协助,是可能无法有效处理这些大数据集群的。
总的来说,我们认为大型集群管理这十年成熟的非常快,它借鉴了虚拟化管理来解决高优先级的生产工作负载。通过学习这些虚拟化和云计算前辈,甚至可以取代他们,产生一个更为完整的集群数据中心愿景。
作者:Mike Matchett 翻译:陈德文
来源:51CTO