如今集群設計遍地都是。最典型的例子包括軟件定義存儲、虛擬化架構、超級融合、公有云與私有云,以及眾所周知的大數據。集群以橫向擴展的方式來構建基礎設施,使用商業產品,如服務器和JBOD。橫向擴展的設計能夠實現容量與性能遞增,與大部分縱向擴展的基礎架構相比,有著巨大的成本規模效益。
大集群因為其支持大規模融合與整合,可以協助優化整體資本支出,而不斷吸引業內目光。那么為什么我們不把現在所有的IT基礎設施都集群化呢?大規模集群管理和運維都相當復雜,尤其是在開始將工作負載和租戶結合后。如果建造了一個大集群,就必須確保期能充分得到利用,也意味著需要托管大量工作負載。一旦出現這種情況,IT需要搞清楚如何合理的優先或公平分配資源。這從來不是一件簡單的事——實施、配置與優化管理共享集群架構的總運營成本,通常會高于部署完全獨立或向上擴展產品的總成本。
當集群在虛擬化基礎架構中,虛擬化管理程序負責加強共享、隔離吵鬧的鄰居、動態遷移和/或重新啟動受影響,甚至突然飆升的工作負載,還扮演交警的角色。這幾年我們發現了該領域的長足進步,可以在虛擬機層面和虛擬存儲卷級別(如VMware VVOL)上,動態執行用戶指定的服務質量(QoS)。
當然,可以把基礎架構云(如OpenStack)作為大型、優化管理集群資源作為整體思路。盡管如此,虛擬化和云基礎架構平臺需要數年時間才能成熟,目前仍然不完美。在開發云管理工具的路上還有很長的路要走,要實現在專屬設備上部署系統的簡化。而且在虛擬化環境內,仍然難以確保虛擬機內的應用程序能夠提供最終用戶可靠的響應時間。
針對大數據的集群管理工具
有效的集群管理設計對大數據尤其重要,這關系到引入企業IT規模擴展的HPC技術。Hadoop、Spark和其他可擴展NoSQL工具旨在讓所有人都實現分布式處理。然而,生產大數據應用程序目前要求應用程序性能的一致性。當大數據應用支撐著關鍵業務流程時,運營與性能的可靠性和穩定性將成為問題。
在種類繁多的大數據工具如Hadoop集群,每個大數據作業都爭奪相同的資源。到目前為止,很多Hadoop集群只是簡單處理小型單一的大數據處理流程或只對小部分用戶服務,通常用于非生產環境的數據科學。但隨著大數據集群移入生成環境,就意味著它們需要承載更多的任務并且服務多個租戶——就如大型虛擬化或云集群。而當這種集群被共享,管理大數據將成為一大挑戰。
經常看到新的大數據集群管理和操作方案并不稀奇。集群管理工具一般分為幾類。起步于高性能計算領域的Bright Computing公司,現在正協助企業從裸機上部署、配置與管理大型集群。
但真正的關鍵在于性能管理,秘訣在于了解都是誰,以及在什么時候做什么事。至少,還有標準的工具可以從集群的日志文件(通常十分巨大)中生成報告。但隨著日志的增長,這個方法的效果會降低。而且當談及運營性能,真正要做的實際上是優化混合租戶與混合工作負載環境的QoS和運行時。例如,Pepperdata能生成實時運行視圖,展示集群里正在發生什么,然后可以動態的控制和分配集群資源。這樣可以保證優先級應用程序滿足服務器級別協議,同時最小化集群基礎設施的規模。
在更高的級別,大數據需要有自己專屬的應用程序性能管理程序。例子之一是Concurrent的Driven,可以跟蹤和回溯應用程序執行軌跡,還可以直接監控業務流程和應用程序級的工作流,應用程序之間的內部依賴、運行時和失敗。這樣有助于識別代碼瓶頸,規劃和修復工作流執行窗口,并協助數據管理。
隨著橫向擴展架構在數據中心內落地,集群管理工具的價值將增長——降低資源共享所需的資本支出,同時保障承諾性能和其他大數據處理業務的QoS。在某些情況下,IT沒有這些集群專用工具協助,是可能無法有效處理這些大數據集群的。
總的來說,我們認為大型集群管理這十年成熟的非常快,它借鑒了虛擬化管理來解決高優先級的生產工作負載。通過學習這些虛擬化和云計算前輩,甚至可以取代他們,產生一個更為完整的集群數據中心愿景。