Amazon云:用StarCluster實(shí)現(xiàn)服務(wù)器集群管理自動(dòng)化
云計(jì)算技術(shù)使我們能夠?yàn)橛?jì)算密集型任務(wù)快速部署大量的服務(wù)器。你是否需要轉(zhuǎn)換、篩選以及分析數(shù)以TB計(jì)的數(shù)據(jù)呢?你是否有成千上萬的媒體文件需要被轉(zhuǎn)換至不同的格式?
針對(duì)這些數(shù)據(jù)密集型的大任務(wù),可選擇在Amazon云中通過跨大型服務(wù)器集群發(fā)布大工作負(fù)載來實(shí)現(xiàn)。建立和管理這樣一個(gè)服務(wù)器集群是一項(xiàng)***挑戰(zhàn)性的任務(wù),但是StarCluster開源工具可通過在Amazon彈性云計(jì)算(EC2)中自動(dòng)化運(yùn)行眾多的繁瑣程序,可使服務(wù)器集群的創(chuàng)建和管理工作得到顯著地簡(jiǎn)化,且耗時(shí)更少。StarCluster是在GNU寬通用公共許可證(LGPL)下發(fā)布的。
StarCluster軟件可以讓用戶使用簡(jiǎn)單的命令行程序創(chuàng)建服務(wù)器集群。服務(wù)器集群中包含了一臺(tái)單個(gè)的主服務(wù)器、多臺(tái)工作服務(wù)器以及彈性塊存儲(chǔ)(EBS)卷。當(dāng)你輸入一個(gè)創(chuàng)建服務(wù)器集群的命令時(shí),StarCluster會(huì)完成如下的工作:
• 初始化虛擬機(jī)實(shí)例
• 配置一個(gè)新的安全組
• 定義一個(gè)用戶友好的主機(jī)名(如,node001)
• 創(chuàng)建一個(gè)非管理員的用戶帳號(hào)
• 為密碼登陸配置SSH
• 定義跨集群的網(wǎng)絡(luò)文件系統(tǒng)(NFS)文件共享
• 配置Oracle網(wǎng)格引擎排隊(duì)系統(tǒng)以實(shí)現(xiàn)跨服務(wù)器集群的任務(wù)管理
在Amazon云中使用StarCluster
StarCluster是使用Python語言編寫的,因此你可以使用easy_install命令從Python Package Index進(jìn)行安裝。Linux和Mac的用戶可能已經(jīng)安裝了Python,但是Windows用戶可能需要先行安裝Python 2.7 和 Python 安裝工具。一旦StarCluster工具安裝完畢,你就需要定義一個(gè)配置文件,其中應(yīng)包含一些服務(wù)器集群和Amazon云賬戶的相關(guān)基本信息,例如訪問ID和密鑰位置等。StarCluster創(chuàng)建了一個(gè)默認(rèn)模板,你可以在此基礎(chǔ)之上進(jìn)行進(jìn)一步編輯以指定特定賬戶的信息。
雖然StarCluster使用了一個(gè)服務(wù)器集群的默認(rèn)小配置,但是你可以通過命令行方式或在配置文件中指定機(jī)器的容量、EBS卷以及服務(wù)器的數(shù)量等參數(shù)。你還可以指定托管你服務(wù)器集群的Amazon網(wǎng)絡(luò)服務(wù)(AWS)區(qū)域。StarCluster的配置參數(shù)包括集群規(guī)模、在工作服務(wù)器節(jié)點(diǎn)上運(yùn)行的Amazon機(jī)器鏡像(AMI)、工作服務(wù)器節(jié)點(diǎn)實(shí)例類型、主服務(wù)器節(jié)點(diǎn)AMI,以及服務(wù)器集群所連接和NFS共享的EBS卷。
將為服務(wù)器集群創(chuàng)建一個(gè)安全組,它可讓你為整個(gè)集群制訂防火墻規(guī)則。因?yàn)榉阑饓σ?guī)則屬于EC2核心功能的一部分,所以可通過AWS管理控制器或配置文件進(jìn)行管理。
使用Oracle網(wǎng)格引擎實(shí)現(xiàn)精簡(jiǎn)高效的管理
Oracle網(wǎng)格引擎(即Sun網(wǎng)格引擎)是一個(gè)排隊(duì)系統(tǒng),它可在集群中精簡(jiǎn)高效地執(zhí)行任務(wù)管理。例如,如果你申請(qǐng)對(duì)數(shù)以千計(jì)的文件進(jìn)行轉(zhuǎn)換,那么你就可以使用Oracle網(wǎng)格引擎對(duì)所有這些文件進(jìn)行任務(wù)調(diào)度,即在資源可用時(shí)按隊(duì)列順序管理文件轉(zhuǎn)換處理。
使用Oracle網(wǎng)格引擎的另一個(gè)優(yōu)勢(shì)在于,它能夠在服務(wù)器集群中實(shí)現(xiàn)跨服務(wù)器的工作負(fù)載平衡。根據(jù)你對(duì)引擎的具體配置設(shè)置,它會(huì)在服務(wù)器集群中增加或刪除節(jié)點(diǎn)以適應(yīng)實(shí)際需求的變化。Oracle網(wǎng)格引擎還會(huì)監(jiān)控隊(duì)列中的任務(wù)和錯(cuò)誤,并維護(hù)服務(wù)器集群中與任務(wù)狀態(tài)相關(guān)的其他有用信息。
存儲(chǔ)StarCluster的輸出數(shù)據(jù)
一般而言,在集群中運(yùn)行的任務(wù)都會(huì)產(chǎn)生數(shù)據(jù);而輸出數(shù)據(jù)中的部分(即便不是所有的)可能需要在集群關(guān)閉之后還是可用的。因?yàn)檫@些服務(wù)器集群都是由Amazon虛擬機(jī)構(gòu)成的,所以你需要制訂把相關(guān)數(shù)據(jù)存儲(chǔ)在簡(jiǎn)單存儲(chǔ)服務(wù)(S3)或EBS卷中的計(jì)劃。如果你正在使用S3對(duì)象存儲(chǔ),那么你的任務(wù)就可以對(duì)S3進(jìn)行數(shù)據(jù)讀寫,就好象你的應(yīng)用程序是在服務(wù)器集群以外運(yùn)行一樣。StarCluster的配置文件有一個(gè)可選項(xiàng),可用于指定EBS卷的卷ID和載入點(diǎn)。在集群關(guān)閉后,這些存儲(chǔ)卷都會(huì)與其他的Amazon EC2實(shí)例相連,所以任何寫至集群內(nèi)EBS卷的數(shù)據(jù)都可供這些實(shí)例使用。
StarCluster支持對(duì)工作節(jié)點(diǎn)使用現(xiàn)場(chǎng)實(shí)例,它可通過可選的命令行方式為現(xiàn)場(chǎng)實(shí)例指定一個(gè)特定的服務(wù)器類型。此外,一個(gè)spothisory命令還可顯示在之前三十天內(nèi)一個(gè)實(shí)例類型的當(dāng)前價(jià)、***價(jià)和平均價(jià)。
StarCluster是專為科學(xué)計(jì)算研究而開發(fā)的,它通常是一般科學(xué)計(jì)算工具中的標(biāo)準(zhǔn)配置組件。諸如NumPy這樣的Python數(shù)值計(jì)算工具包以及ATLAS這樣的優(yōu)化線性代數(shù)工具包都非常擅長(zhǎng)數(shù)據(jù)分析。StarCluster的插件支持通用工具,如Hadoop和MySQL。
作者簡(jiǎn)介:
Dan Sullivan,是一名擁有超過20年IT經(jīng)驗(yàn)的作家、系統(tǒng)架構(gòu)師和顧問。他致力于先進(jìn)分析、系統(tǒng)架構(gòu)、數(shù)據(jù)庫設(shè)計(jì)、企業(yè)安全和業(yè)務(wù)智能等應(yīng)用。他曾在多個(gè)行業(yè)中工作,其中包括金融服務(wù)、制造、醫(yī)藥、軟件開發(fā)、政府、零售、教育等。Dan曾就多個(gè)主題撰寫了大量文章,如數(shù)據(jù)倉庫、與安全管理相關(guān)的云計(jì)算技術(shù)和先進(jìn)分析、協(xié)作以及文本挖掘。