在IT工業(yè)中,虛擬技術(shù)的發(fā)展已經(jīng)蓬勃發(fā)展,但在Linux集群中卻還有些障礙。Beowulf工程的創(chuàng)始人之一Donald Becker說(shuō),這是一件令人遺憾的事情,因?yàn)樵撓到y(tǒng)僅提供一個(gè)沒(méi)有任何意義的虛擬選項(xiàng)。
Becker 說(shuō),Linux集群系統(tǒng)應(yīng)該更加注重虛擬技術(shù)以及高可行性的發(fā)展,并在他的采訪中說(shuō)明了理由。同時(shí)他對(duì)改用Linux集群的對(duì)稱多處理用戶提出了一些建議。
除了他在Beowulf中的角色以外,Becker 還是Scyld軟件的創(chuàng)始人以及主要科學(xué)家。他還剛剛加入了本站的專家組,并作為一個(gè)特邀專家來(lái)回答用戶的有關(guān)Linux集群以及服務(wù)器的問(wèn)題。
在Linux集群技術(shù)中有什么最新的進(jìn)展嗎?
Donald Becker:現(xiàn)在,集群技術(shù)中的發(fā)展熱點(diǎn)是虛擬技術(shù)。兩個(gè)著名的傳統(tǒng)虛擬技術(shù)系統(tǒng)是VMWare和Xen。VMWare仿效并模擬個(gè)人電腦的硬件設(shè)備。這使得它可以在自己的OS中運(yùn)行幾乎所有的操作系統(tǒng)。
然而,虛擬技術(shù)發(fā)展的一個(gè)缺點(diǎn)是它經(jīng)常暗含、依賴一些大的上層技術(shù)。結(jié)果,VMWare模仿一些上層技術(shù)從而沒(méi)有什么機(jī)會(huì)來(lái)優(yōu)化系統(tǒng)。Xen是一個(gè)同時(shí)運(yùn)行多個(gè)操作系統(tǒng)的系統(tǒng)管理程序。它不是全面的模仿,從而減少了對(duì)上層技術(shù)的依賴。但是,它仍然需要優(yōu)化它的核心技術(shù)。
Linux集群上的虛擬技術(shù)與其他的方法有什么不同?
Becker:VMWare 和 Xen二者都設(shè)想,它們可以運(yùn)行并全面安裝多個(gè)內(nèi)核。運(yùn)行集群就提供了不被虛擬技術(shù)所限制的機(jī)會(huì),創(chuàng)造一個(gè)僅僅運(yùn)行應(yīng)用程序必需條件的輕松環(huán)境。當(dāng)系統(tǒng)服務(wù)器有一個(gè)任務(wù)需要主要的網(wǎng)絡(luò)終端來(lái)完成,這時(shí)該計(jì)算機(jī)終端只需要運(yùn)行該應(yīng)用程序,這樣就可以提高工作效率,這也正式和傳統(tǒng)的虛擬系統(tǒng)的不同之處。
一些IT實(shí)業(yè)派說(shuō),他們用對(duì)稱多處理(SMP)系統(tǒng)進(jìn)行高強(qiáng)度的數(shù)據(jù)計(jì)算。這些技術(shù)在移植Linux集群時(shí)會(huì)遇到那些挑戰(zhàn)呢?
Becker:這個(gè)問(wèn)題的答案很大程度的取決于你所運(yùn)行的應(yīng)用的應(yīng)用程序。
最早的進(jìn)入集群的應(yīng)用程序的類型是用戶參數(shù)的執(zhí)行系統(tǒng)。在該模型中,多個(gè)相互獨(dú)立的應(yīng)用程序是運(yùn)行在不同的數(shù)據(jù)處理機(jī)上。
如果對(duì)稱多處理(SMP)系統(tǒng)被應(yīng)用是基于它對(duì)單進(jìn)程工作的高效率,Beowulf的集群將是一個(gè)不錯(cuò)的替代品。然而,如果對(duì)稱多處理(SMP)系統(tǒng)是基于共用存儲(chǔ)器多進(jìn)程工作,那么可能致使應(yīng)用程序的結(jié)構(gòu)復(fù)雜化。
一個(gè)傳統(tǒng)的應(yīng)用SMP的場(chǎng)合是轉(zhuǎn)換型數(shù)據(jù)庫(kù)。這是一個(gè)精細(xì)通訊及鎖定在SMP上運(yùn)行的特殊情況,但在集群上可以取得同樣的結(jié)果。所以需要作細(xì)致的分析以決定SMP移植進(jìn)集群是否是可行的。
大部分的程序不能兼容于這兩個(gè)極端。
Linux集群能夠最終取得高可行性(HA),還是只能保持其固有的復(fù)雜性?
Becker:可量測(cè)性并不排除其高實(shí)用性,所以Linux集群能夠取得高的實(shí)用性(HA)。高實(shí)用性(HA)是基于對(duì)商務(wù)上的應(yīng)用程序及數(shù)據(jù)等的穩(wěn)定的支持上。計(jì)算機(jī)程序等的正常運(yùn)行時(shí)間的標(biāo)準(zhǔn)應(yīng)該在99.999%以上,也就是說(shuō)一天最多只能有一秒鐘的停工。
經(jīng)典的高效集群配置包括兩個(gè)服務(wù)器,能夠分別了解對(duì)方的狀態(tài)并共用一個(gè)存儲(chǔ)子系統(tǒng)。如果任何一個(gè)服務(wù)器出現(xiàn)故障,則另一個(gè)將會(huì)承擔(dān)所有的工作。高效集群取得穩(wěn)定的可靠性是通過(guò)故障排除、負(fù)載平衡、贅余處理以及其他的一些方式來(lái)將兩臺(tái)或多臺(tái)服務(wù)器連接在一起,從而減少必然的或偶然的儲(chǔ)存損耗并且共用存儲(chǔ)設(shè)備。
由于它們的絕對(duì)容量的限制,大的集群很可能頻繁的出現(xiàn)問(wèn)題,所以就需要設(shè)計(jì)如何處理這些問(wèn)題的程序。然而,這種設(shè)計(jì)不會(huì)自動(dòng)發(fā)生,現(xiàn)在市場(chǎng)上的很多工具都沒(méi)有解決這種問(wèn)題。設(shè)計(jì)周全的子系統(tǒng),例如一些具有很好的管理能力的商業(yè)評(píng)定的系統(tǒng),能夠處理增加的可量測(cè)性。這就意味著測(cè)量各種各樣的參數(shù)并避免那些多如牛毛的問(wèn)題,這些問(wèn)題經(jīng)常發(fā)生在一個(gè)終端占據(jù)了大量的存儲(chǔ)頁(yè)面或系統(tǒng)文件數(shù)據(jù)而導(dǎo)致其他的終端無(wú)法工作時(shí)。
在Linux集群系統(tǒng)中取得高效性有哪些途徑呢?
Becker:在集群系統(tǒng)的配置中,多個(gè)服務(wù)器在同一系統(tǒng)是通過(guò)中央控制點(diǎn)來(lái)管理的。這代表高效性狀態(tài)的一個(gè)明顯優(yōu)勢(shì),因?yàn)橛泻芏喾?wù)器可以進(jìn)入的備份資源,這就允許了24 x 7的可行性,錯(cuò)誤維護(hù),對(duì)于分散應(yīng)用程序的中央管理,對(duì)大型數(shù)據(jù)資源的處理能力以及動(dòng)態(tài)網(wǎng)站出版和災(zāi)難修復(fù)。
選擇一種適當(dāng)?shù)姆椒▉?lái)保證停機(jī)期以及重新啟動(dòng)期的數(shù)據(jù)完整性是十分重要的。不幸的是,不是所有的選擇都可以提高可靠性以及保持?jǐn)?shù)據(jù)完整性。所以,在工作時(shí)合理的選擇你的執(zhí)行程序是很重要的。
一些非商業(yè)性的集群系統(tǒng)創(chuàng)造了一個(gè)局部的單一系統(tǒng)設(shè)想,通過(guò)一下方式完成:請(qǐng)求網(wǎng)絡(luò)虛擬內(nèi)存;或全球同一的文件系統(tǒng);或進(jìn)行一個(gè)明晰的系統(tǒng)移植。然而,這種設(shè)計(jì)無(wú)法很好的處理錯(cuò)誤問(wèn)題,因?yàn)槿魏我慌_(tái)終端出現(xiàn)問(wèn)題時(shí),系統(tǒng)必須花費(fèi)一定的時(shí)間去修復(fù)或者停止所有和這臺(tái)及其關(guān)聯(lián)的程序。
一個(gè)好的解決方法是保證集群的主要終端持續(xù)運(yùn)行。對(duì)于大的安裝系統(tǒng)來(lái)說(shuō),要保證一個(gè)主要終端通過(guò)常規(guī)的設(shè)備備份和災(zāi)難恢復(fù);或者同時(shí)多個(gè)主要終端的方法。換一種說(shuō)法,計(jì)算機(jī)終端可以加入或離開(kāi)集群,而不影響基礎(chǔ)系統(tǒng)即使是在它之上的應(yīng)用程序已經(jīng)停止的情況下。