2007年7月24日 星期二

KVM竄紅虛擬化業界

‧KVM竄紅虛擬化業界

http://taiwan.cnet.com/news/software/0,2000064574,20115349,00.htm

CNET新聞專區:Stephen Shankland  27/02/2007

四個月前幾乎沒人聽過開原碼虛擬化軟體KVM,不過現在已經不同了。

這個由一家名為Qumranet的新創公司暗中支持的專案以其技術與文化特性很快攫取許多支持者,包括Red Hat與Linux發明人Linus Torvalds。

這只是KVM在虛擬化市場成功站穩腳步的第一步。但它透過讓一台電腦當成多台來用的能力,卻彰顯出一股導致電腦業界由上而下重新洗牌的強大威力。

但世界真的需要再多一種虛擬化技術嗎?EMC子公司可說已是此間王道,微軟正全力投入稱為Viridian的專案,預計一年後問世。同時間,Xen也正獲得開原碼界人士的密切注意。雖然KVM增加新的選擇性與競爭,但也讓戰情益發風雲詭譎。

「短期內KVM將因它引起的市場混局與開發人員的幻滅而造成不安,」Illumnata分析師Gordon Haff說。「但長期而言,更好的技術選擇對Linux 與開原碼只有好處沒有壞處。」

KVM三個字母代表「核心為基礎的虛擬機器(Kernerl-based Virtual Machine)」,它為Linux機器提供一種新的分割機制,使一台電腦當成許多台來用。它用的有別於利用低階軟體「hypervisor」執行相同虛擬化功能的方法。

目前整個產業興起虛擬化旋風,原因有許多,像是可以少數台伺服器取代大量效率低落的機器,或是可在無害的切割環境下進行軟體測試,最終是能讓堆滿電腦的資料中心可自由依工作任務調配資源。

Novell與IBM等Linux廠商都表示正在觀察KVM的發展。但Linux大廠Red Hat 技術長Brian Stevens則相信KVM大有可為。

「我想還要一年它才能趕上Xen今天的成績…但我認為一定會趕得上,」Stevens說。「開原碼社群對KVM的著迷絕對超過Xen。」

Qumranet金主為Sequoia Capital與Norwest Venture Partners,但該公司執行長Benny Schnaider對公司未來計畫三緘其口。他只在一次訪談中表示,Qumranet「沒有計畫出售KVM或提供支援服務來獲利。」

KVM專案始於2006年初,時值Xen創辦人Moshe Bar離開(將Xen商業化的新創公司)XenSource。目前在Qumranet擔任技術長的他拒絕對本新聞發表說法。

Qumranet總部位於Santa Clara,研發中心設於以色列(Qumran是位於發現聖經《死海古卷》洞窟附近的古老聚落)。這家新創公司只有三十多名員工,大部分是工程師,Schnaider說。由於投入在KVM的人力不到12人,因此該公司也同時發展其他技術,Qumranet員工Avi Kivity說。

Kivity於去年10月19日在Linux核心的討論群中首次將KVM介紹給世人。他開發的Linux修補更新程式讓高階軟體得以使用到Intel與AMD最新處理器內建的硬體虛擬化功能。這也讓其他作業系統,像是微軟Windows可以以「guest 」身分執行在較新硬體的Linux作業系統上。

KVM作法迥異於Xen透過結合輕量「hypervisor」與特定OS (主要是Linux)來控制硬體存取的方式。

KVM技術較近似於VMware使用的兩種方法之一—免費VMware Server及Player 產品使用的「代管」模式。在此模式下,「guest」虛擬機器是跑在複製的作業系統上。而第二種方法則用於高階ESX Server產品中,是由較大、全功能的hypervisor控制底層硬體的存取。

和Xen是加在Linux上的方式不同,KVM修補程式幾乎是立刻就加入到由Torvalds等人維護的主流核心中。

「我們依照Linux傳統來做事,」Kivity在接受訪問時談到。「我在Linux討論社群中混很久了,因此我知道核心維護成員發生什麼了大事,也能在第一時間出手導正。如果我突了槌也會很快就修正。」

他解釋「唯有訊息的開頭是PATCH,核心維護成員才會把你當一回事,」Kivity說。

Torvalds在去年12間首度接受KVM修補程式,他表示這項技術不破壞程式碼、也不複雜,是Linux把它包入的主要原因。

「從核心角度來看,KVM真的很簡單明瞭,因此我們很容易把它合併進來,」Torvalds補充,KVM開發人員也很容易和Xen的人溝通,「我想中間沒有什麼利害關係,政策問題也不多。」

人的因素卻不可小覷。由於KVM視Linux核心為中心考量,而Xen則把大部分心思放在個別hypervisor上,也難怪核心工程師對KVM比較感興趣。

Red Hat的Stevens說,KVM方法比較簡單、易懂,而Red Hat首席開發人員Ingo Molnar也很喜歡KVM,並著手改善KVM的效能。

「這是管理社群比較自然的方法。現在我們一直苦於把Xen和最新作業系統整合的負擔,實在很貴,開發人員得不斷工作好幾周,而且進度總是落後。KVM讓我們雀躍不已,任何和Linux不合之處會立刻反應或修復。」

而對Qumranet來說,Linux也讓他們省了不少事。「作為Linux核心的一部分,KVM可使用現有元件,像是排程器和記憶體管理員,節省整個開發的資源,也避免開原碼社群的重覆開發工作,」Schnaider說。

Xen開發人員一開始也計畫將之與Linux核心整合,但後來改為增加hypervisor的介面,稱為paravirt-ops。這方法可讓Linux與VMWare等其他人的hypervisor互通。

「Xen永遠不會成為核心的一部分,因為它不是核心元件,」XenSource CTO Simon Crosby說。「但paravirt-ops則是。」他補充,第一個元件將在2.6.21版核心問世時推出。

對Crosby而言,KVM是很棒的想法:「Xen並沒有試用(try-out)模式,」(其實有,只是來得太晚。)

VMware過去也有「代管」(hosted)模式,但現在已轉到hypervisor。這是比較好的作法,Crosby辯稱。虛擬機器對想在安全分割環境下測試新軟體的開發人員來說相當方便,而hypervisor的效能較好,具有安全功能,而且可在多台虛擬機器環境下排定不同需求。

VMware也有類似的改革想法。它的高階與hypervisor-based ESX Server是虛擬基礎架構軟體的基礎,它可以監控一組執行虛擬機器的伺服器,並根據預設規則調整工作。

「代管架構當然不錯,但沒有我們所謂的虛擬基礎架構,」VMware產品與解決方案行銷副總裁Raghu Raghuram說。「為此你得把hypervisor層分開。」然而KVM潛力無窮,也相當有用,他說。

微軟下一個虛擬化技術Viridian也是在hypervisor上發展而來,而它現有的虛擬伺服器(Virtual Server)則否。Viridian技術預計包含在Windows Longhorn Server 2008年的服務套件(service pack)推出,Longhorn預計今年底就會發表。在虛擬化技術上微軟目前落在VMware與Xen之後,這也給了Linux一大好機會。受迫於壓力之下,微軟找上XenSource,希望能讓Viridian執行在適用於Xen的Linux版本上。

Xen比KVM來得成熟多了,Crosby強調。「即使還沒全部完工,但在超越競爭者的關鍵部分已經完工。」他說,KVM比Xen三年前不成熟。

Novell SuSE Linux的產品管理副總裁Holger Dyroff估計KVM還要一到兩年才會發展成熟。他想看到的是64位元虛擬機器及多顆處理器、多核虛擬機器的支援,他說。

Qumaranet的Kivity則已有好幾項改良計畫展開中,像是多顆處理器Guest機器的支援,以及能將執行中的虛擬機器從實體伺服器搬到另一台上的線上搬移功能等等。「我們預計幾天後就開始線上搬移計畫,」Kivity說。

KVM造成的另一個複雜的問題是可能搶走Xen的風采,它去年七月才正式隨著Novell SuSE Linux Enterprise Server問世,而且預計包含進Red Hat三月將推出的Red Hat Enterprise Linux 5。

Rusty Russell是從事Xen與VMware需求協調的高階Linux核心開發人員,他寫了一個hypervisor稱為lguest,但他不認為KVM可能瓜分人數原本即已稀少的Linux開發人員。

「KVM的開發人員和Xen大不相同,」他說。「KVM拉攏到傳奇人物像是Ingo Molnar,他對虛擬化產生前所未有的興趣,因此看起來情勢似乎大好。」

但開發、支援與認證產品也產生新的限制。雖然Novell對KVM也有興趣,但卻無意支援兩種以上的虛擬化技術,Dyroff說。有些技術是在作業系統層以下,像是Xen,其他則是將單一作業系統加以分割,如OpenVZ。

Red Hat對KVM的熱度就比較高,但Stevens也對同時把資源放在Xen及競爭者上有疑慮。例如該公司考慮把鎖定Linux技術愛好者的Fedora 7分成兩個版本,分別內建Xen及KVM,Stevens說。這是因為Red Hat希望Fedora能跟緊主流Linux核心。主流核心現在內含KVM,然而Xen用的卻是不含KVM的較早期版本。

很諷刺的是,這些矛盾問題意謂著,目前KVM在開原碼界成功,得到好處的可能反而是競爭的專屬技術VMware,Haff說。「VMware會愛死它。」(完/鍾翠玲譯)