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