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