星期三, 7月 16, 2008

解決Linux環境下執行Firefoxt時出現Firefox is already running訊息

在Linux環境下點擊執行Firefox
Firefox沒有回應卻出現"Firefox is already running"的訊息
這時可以嘗試直接刪除Firefox的Process來排除此問題
在終端機中執行“ps auxwww | grep firefox”
找出相關的process number
然後刪除相關的process執行“kill [process number]”
通常可以排除此問題
如果還不行
可以參考下列連結內容
http://www.errorforum.com/mozilla-firefox-error/4116-how-fix-firefox-already-running-error.html
內容節錄如下

Sometimes when you try to start Firefox, it warns you that Firefox is already running. The message looks like this:
Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.
Usually, you can just kill the firefox process to solve this problem. For example, on Linux the command “ps auxwww | grep firefox” will find the process number and then “kill [processnumber]” will work fine. But sometimes things are more horked than usual. That happened to me today, surprise surprise Here’s how to fix the deeper problem:
Step 1. Find your profile. This page tells you how to find the location of your Firefox profile. Under Linux (e.g. Ubuntu), it will be at ~/.mozilla/firefox/[Profile name]/ .
Step 2. Remove the lock files. This page tells you what the lock files are for Firefox on Windows/Linux/Mac. Under Unix/Linux, you’ll need to remove two files “lock” and “.parentlock” .
I haven’t had this happen before today, but it can happen if (for example) someone turns your computer off while Firefox is running.

標籤:

星期一, 3月 31, 2008

中華技術-資訊平台在虛擬化浪潮下的蛻變(下)

這是小弟之前所寫的文章,刊登在公司發行的刊物"中華技術"上,分享出來給需要的人參考
原文刊於中華技術
(ISSN1818-4464)76期2007年10月發行

關鍵詞

擬化、VirtualizationVirtual MachineVirtual ArchitectureVirtual Server

肆、伺服器虛擬化的市場現況


根據Gartner 的報告指出,2006年大約有20%25%的企業正在使用虛擬化,200740%的企業將會透過實施虛擬化減少其20%的伺服器數量。另Forrester的調查顯示,大型企業更能意識到伺服器虛擬化的好處,從而實現伺服器虛擬化,在員工人數超過20000人的全球2000家企業中,已有三分之一使用了虛擬化,13%的企業則表示計畫在未來一年內開始虛擬化的試驗和部署[8]。而當前主要的虛擬化技術方案簡述如下:


一、VMware

VMware[9]成立於1998年,於2003年被EMC收購,是全球第一家專注於系統虛擬化技術的公司,也是當前虛擬化領域中最主要的公司,主要提供x86環境下的虛擬化軟體,提供跨平台的運行能力,支援LinuxMac OSMicrosoft Windows等平台,其產品主要區分成可免費使用的VMplayerVMserver,需付費使用的VMware Workstation(如圖4VMware InfrastructureVMware ESX Server(如圖5等。VMwareVMM提供一個模擬的硬體平台,該平台位在實體和虛擬設備間來管理系統資源,這種作法解決了x86 OSRing轉換問題,也就是提供一個全虛擬化的環境,OS可以不經改變執行在VMware的虛擬環境上,但是系統相容度付出的代價是效能的損失,而新版本的 VMware ESX Server已經開始整合CPU虛擬技術,已藉此提升VMs的效能[10]VMware目前主要的領先優勢便是其在商業環境上的支援能力與完善的解決方案,其擁有最多的第三方廠商支援,諸如實體與VMs間的轉換工具,虛擬環境下的熱機動態遷移,虛擬資源的管理等,都是其它競爭對手目前所欠缺的,也是其領先業界的主要因素。

二、Virtual PC/ServerMicrosoft Virtual PC/Server

Virtual PC[11]原來由Connectix公司所開發,初期提供Mac OS平臺的虛擬軟體,之後持續開發了Microsoft Windows平台的虛擬化軟體。2003年被Microsoft公司收購,將原本的軟體改名為Microsoft Virtual PC/Server2006MicrosoftMicrosoft Virtual PC開放為免費軟體,其伺服器端虛擬軟體Microsoft Virtual Server則仍需付費使用,Virtual PC/Server其虛擬化技術原理基本上與VMware相同。

Microsoft Virtual Server目前的版本為Microsoft Virtual Server 2005 R2(如圖6,對應到VMware的產品相當於VMware ESX Server,惟最主要的差異為VMware ESX Server係運行在Linux平台上,而Microsoft Virtual Server則運行在Microsoft Windows Server上,依目前Microsoft已公佈的訊息得知,在下一代Windows Longhorn Server上,Microsoft將直接整合Windows Hypervisor(代號Viridian)在其OS上,藉而允許多個Guest OS執行個體可以緊密地執行在同一個實體伺服器上。但Microsoft也因此導致系統開發進度嚴重延遲,最後被迫放棄了部份重要的功能,如VMs的動態遷移等,皆須等到之後的修補套件中才可能會付諸實現[12]

三、XEN

Xen[13][14][15]是一個由劍橋大學開發的開放原碼虛擬化軟體,Xen的初始版本是基於半虛擬化技術的Linux OS為目標,Linux OS的核心需做特殊修改才能在Xen上執行,2005Xen發佈的Xen 3.x在架構上有了重大的修改,使得其它OSNovell NetWareSun Solaris等也可以透過修改在Xen上執行。Xen 3.x同時支援半虛擬化與全虛擬化技術,但其全虛擬化與其它軟體的全虛擬化架構有所不同,Xen的全虛擬化需要仰賴CPU虛擬化架構的支持,如AMD-VIntel VT架構。由於Xen無論在半虛擬化與全虛擬化皆有獨特的技術架構設計(如圖7,故其效能較其它VMs軟體為佳,目前廣受重視,在各大IT廠商如AMDIntelNovellIBMRed HatSunMicrosoft等對其相容性的承諾與支持下,XEN Hypervisor正成為某種實質上的標準。

Xen的虛擬化技術非常獨特,一般OSAPP分別是在CPURing 0Ring 3在處理的,而Xen便是透過改變OS Kernel或透過CPU的虛擬化支援,讓Xen執行在CPURing 0,而讓OS執行在CPURing 1OS透過Xen來存取伺服器硬體資源,來達到OS的虛擬化目的。

四、KVM

KVM[16][17]是由以色列公司Qumranet所提出的虛擬化技術,KVMKernel-based Virtual Machine)顧名思義是OS Kernel層虛擬化技術,是近來快速崛起的開放原碼虛擬化專案,透過Linux的核心模組來實現提供虛擬化的環境,KVM將內建在Linux Kernel2.6.20版中,亦可視為一個Linux Kernel的更新(Patch),KVM的特點是直接將Linux Kernel轉變成功能強大的Hypervisor(如圖8,故其在VMs的效能表現上亦相當的理想。

KVM目前受到廣大Linux開發者的關注,所以發展相當的迅速,由於其已成功被內嵌於往後所發布的Linux Kernel中,值得密切注意相關的應用與發展。

五、AMDIntelCPU虛擬化

為因應x86平台上的虛擬化需求,AMDIntel便各自提出了CPU虛擬化方案,透過CPU所提供的硬體虛擬化協助,傳統的Hypervisor可以被設計的更緊緻輕量化,虛擬化也更容易被實行,且VMs的效能更佳,系統損耗更低,虛擬化的成本也可以進一步的降低。

Intel率先於x86平台上提出CPU虛擬化架構,其產品化的正式命名為Intel VTIntel Virtualization Technology[18],而AMD隨後也提出了其CPU虛擬化架構,產品化的正式命名為AMD-VAMD Virtualization[19]。兩者在技術基本架構與原理上大致類似,都是利用CPURing 1來運行Hypervisor,並藉由Hypervisor來管理所有的VMs生命週期,例如VMs的建立、資源調整與消滅等,而VMs都是平行運行在Ring 0之中,且這些VMs間並不知道其正與其它機器共用硬體資源,此架構設計解決了OSRing轉換問題,提供了一個全虛擬化的環境,所以即便VMs出現了問題與錯誤,位於Ring 1中的VMM都將不致受到影響,透過VMM可以隨時中止有問題的VMs。不過由於AMDIntel CPU目前在記憶體的控制上走上分歧,AMD平台的記憶體控制器內建於CPU當中,而Intel平台的記憶體控制器則位於CPU外部的北橋晶片之上,如此在VMs的記憶體管理上,Intel平台便需依賴軟體來配合處理記憶體的位址轉換,而AMD平台則是透過CPU新增的指令集來控制,AMD將此技術命名為MMUMemory Management Unit),透過MMU來處理VMs的記憶體分配。


伍、伺服器虛擬化的應用


伺服器虛擬化的技術發展至此已成為資訊系統規劃時不可忽略的議題,隨著科技工藝不斷的演進,伺服器的效能越來越強大,但伴隨而來伺服器的耗能也越來越高,伺服器的間接持有成本(諸如:空調、電力與空間成本)已經幾乎和直接持有成本相當(如表2,而現在各企業對資訊化已形成一種依賴,資訊應用越趨廣泛,伴隨者實體伺服器的蔓延,如果伺服器的建置與佈屬思維仍如同過往,則IT的 支出成本勢必會成長到令企業無法接受的地步,一般的實體伺服器若以四年為生命週期,其累計的間接成本與直接成本幾乎相當。為了解決上述的問題,伺服器的虛 擬化便受到重視。且一般而言專屬或客製化的資訊系統其生命週期通常大於伺服器設備的生命週期,一般伺服器設備的生命週期通常為4~6年,而專屬或客製化的應用系統的生命週期在6~10年,甚至更久,這些應用系統在導入及建置上往往所費不貲,雖然年代久遠但也仍敷使用,不需急於轉換到新的資訊系統平台上,如何延續這些資訊系統的邊際效應,也是當前伺服器虛擬化被廣為接受的另一因素。

2、實體與虛擬伺服器的電力成本比較


實體伺服器

虛擬伺服器

實體設備數量

24台機架式伺服器

3台機架式伺服器

1台容量3TBSAN Storage與相關週邊

伺服器數量

24

24

設備總發熱量(推估)

7200W

500*0.6(負載)*24(台數)=7200W

2925W

575*1(負載)*3(台數)+1200(SAN設備)=2925W

空調負荷

6200Kcal/Hr

7.2kw≒6.2(6190)Kcal/Hr


2515Kcal/Hr

2.925kw2515Kcal/Hr


電費()

299504

7.2+6.2/2.44(ERR)9.74kw

9.74kw234

234*365*3.12=266479

108186

2.93+2.5/2.44(ERR)3.96kw

3.96kw95

95*365*3.12=108186

備註

民國九十一年的氣冷式與水冷式空調機組的ERR值國家標準將分別提昇為2.443.17 千卡/瓦小時

目前營業用電電價(93.1.1以後,每月500度以上用戶),夏季(4個月)3.465、非夏季(8個月)2.730

95.7.1電價調漲後,全年營業用電平均每度3.12



陸、台灣世曦的伺服器虛擬化


台灣世曦於2002年(中華顧問時期)起即開始在PC端應用虛擬技術,2004年密切關注伺服器虛擬化發展,隨即於2005年導入伺服器的虛擬化應用,在當時國內可供參考的實際案例仍非常的少,系統廠商能夠提供的協助與支援相對於現今更顯匱乏,故參考國外技術文件資訊並與系統廠商共同規劃建置伺服器虛擬化系統,至2007年台灣世曦已有40%的伺服器以虛擬化型態提供服務,隨著資訊系統的持續更新虛擬化的比率預計將提升到50%以上,這樣的系統架構在過往是難以想像的。目前台灣世曦虛擬化的平台則涵蓋了Microsoft WindowsNovell NetWareLinux等。


柒、伺服器虛擬化的架構規劃


一、系統效能

伺服器虛擬化係由於多個VMs需同時運行於一個系統平台之上,這個平台就是VM Server,故VM Server的規劃與硬體配置便顯得極其重要,VM Server對於硬體資源的依賴依序是「CPU>記憶體>I/O(磁碟)效能>網路效能」。一般需求而言配備2顆雙核心CPUx86伺服器,其效能便足以滿足8~10台中低負載的VMs,而當前雙核心雙CPU的伺服器已隨手可得,於此VM Server的記憶體容量反而會是影響效能的重點,建議規劃時每台VMs至少須配置1~2GB的記憶體,如前述一台雙核心雙CPU的伺服器佈署8VMs,便建議最好配置16GB的記憶體。另一個影響虛擬化效能的便是I/O設備,I/O效能一直都是影響伺服器效能的重要因素,但卻也是最容易被忽視的一點,I/O設備是電腦元件中唯一的機械動作,其它設備元件都是電器訊號,所以I/O設備的速率往往都是電腦系統的主要瓶頸,而一台VM Server得負載多台VMs,故I/O的吞吐量與穩定性便非常的重要,而好的伺服器I/O設備其投資往往所費不貲,建議如果預算許可規劃上最好選擇SAN Storage為儲存媒介,可以兼顧架構彈性與效能,但也別過度迷信SAN Storage,很多不良規劃的SAN架構則系統效能會比DAS 架構還差,基本觀念是一個磁碟陣列群組內的實體硬碟數量越多效能越佳,因為機械動作越少,而Storage設備或RAID控制器的快取記憶體容量也會影響整個系統的I/O的效能。最後影響VMs效能的便是網路設備,當前電腦主機設備上的網路卡其速率皆以1Gbps為主,這樣的網路速率供1~4台伺服器使用或許還算足夠,但是若要提供給8VMs同時使用,其效能可能就不敷使用了,建議在實體伺服器上增加網路卡埠數,並妥善規劃網路配置,建議1~4台伺服器共用一埠網路卡為宜。

除了硬體週邊的因素之外,虛擬伺服器技術解決方案的選擇便是另一個重點,硬體虛擬化的效能會高於軟體虛擬化,而軟體虛擬化中Type-1 Hypervisor效能又會高於Type-2 Hypervisor。至於半虛擬化與全虛擬化的差異,一般而言半虛擬化的系統效能會高於全虛擬化,但若結合CPU虛擬技術的全虛擬化則其效能將與半虛擬化相較不分軒輊。


二、刀鋒伺服器與虛擬伺服器

目前業界很多廠商在規劃建置虛擬伺服器方案時常常建議整合刀鋒伺服器方案,但虛擬伺服器技術強調的是眾多VMs同 時運行在單一實體伺服器上,以分時運算的原理充分發揮利用硬體資源,而刀鋒伺服器強調的卻是在單一機箱中容納越多的伺服器運算單元,發揮空間效益,刀鋒伺 服器為了滿足此一需求通常得在效能上作出取捨,單一片刀鋒伺服器的效能通常較一般伺服器差,且系統擴充性亦受限於空間限制,如此便與虛擬伺服器的系統需求 交相違背,故如VMware的技術顧問公司VM Power也不建議現階段使用刀鋒伺服器來建置虛擬伺服器環境[20]

刀鋒伺服器與虛擬伺服器是否就如同兩條平行線不會交錯呢?這倒也不是,只是現階段的技術還無法完全整合兩者的優點,至於何時才適合,個人的看法認為是需等到VMM能夠視整個刀鋒伺服器機箱為單一伺服器個體,類似大型Unix伺服器的硬體虛擬化架構,由VMM來直接分配整個機箱的硬體資源,而不是目前每一片刀鋒伺服器都是獨立個體,如此才可以充分發揮刀鋒伺服器架構的意義與伺服器虛擬化的長處。



捌、虛擬伺服器的優缺點


一、伺服器虛擬化的優點與價值

當前,相同數量的虛擬伺服器與實體伺服器在直接建置成本上相去不遠;然而,若將伺服器的間接與維護成本一倂考慮,虛擬伺服器的效益就顯而易見,因為在空間、空調、電力等需求與維護成本上,虛擬伺服器都有明顯的優勢。

此外,藉由伺服器虛擬化的幫助,企業內的IT資 源可以獲得更有效的利用與配置,例如:新應用系統可以加速測試與佈署上線時程,以節省寶貴的時間成本,且虛擬化技術下的伺服器佈署及遷移也容易;相對的, 企業在規劃及進行備援與災難回復時,將更具彈性,投資也相對較低。這些都是難以量化的效益,尤其是「災難回復」,相信所有企業一定不希望有那天要從這兒得 到投資回報,但IT人員本於職責,仍要考量準備一可行的因應方案,以避免這萬一的風險。

二、伺服器虛擬化的缺點與風險

透 過虛擬化技術雖然可以在一台實體伺服器上運行更多台的虛擬伺服器,提供更多的應用系統服務;相對的,硬體失敗所導致的風險也會增加。因此,相關的硬體系統 架構規劃需要更為仔細謹慎,應儘可能避免設備單點失敗所帶來的風險,最好能預留備援設備以降低此風險。另由於眾多的伺服器藉由虛擬化技術集中運行,系統管 理人員的責任也相對的加重,IT人員需隨時觀察虛擬伺服器的運行狀態,適當的調配系統資源與進行伺服器的維護作業,系統管理人員的知識與經驗也更形重要。

另一要素就是所有資訊系統皆須面對的問題:「資訊安全」,在伺服器虛擬化上也依然存在,甚或更趨嚴重。傳統的惡意攻擊針對的是應用程式、OS、網路,如果攻擊的對象轉到VMM呢?那麼便可能立即癱瘓或接管運行於其上的所有VMs。這麼有效的攻擊,當然駭客絕對不會放過,如何防禦呢?防毒軟體?傳統的防毒軟體得運行在OS之上,而VMM卻在更底層,已經有資安專家示範了直接利用CPU虛擬化技術的病毒,類似隱藏的Rootkit病毒[21],這部份的問題已經引起重視。對於傳統資訊安全防禦系統無法解決的部分課題,業界廠商已著手研擬因應對策並開發新產品,目前在VMM上已陸續有相對應的心資安產品。



玖、伺服器虛擬化的未來


虛擬化已是資訊系統架構的重大課題,伴隨著虛擬技術的演進,可以大膽的預言,OS架構將會越來越薄型化,而VMM架構將越趨重要。在可見的近程上,未來的主要OS都將會內建Hypervisor,無論是Microsoft Windows或者是LinuxOSVMM兩者將更為結合也將更為模糊。

傳統的OS極可能在5~15年後逐漸消失,取而代之的是VMM與應用層虛擬技術結合Application Level Virtualization(如Java.Net)直接架構在硬體系統上,而應用程式直接執行於VMM之上,並透過VMM直接呼叫使用硬體資源。如發展至此,虛擬化技術可就不單單存在於傳統的ServerPC間,相關應用將擴及至各類行動裝置甚至數位家電上。這類將Application虛擬化的應用,正在IT產業間發酵中,如VMware大力推廣Virtual Appliance的觀念與架構,如果您需要建置一套資訊系統,只要將其安裝於VMM平台上即可立刻使用,就如同一般的硬體Appliance設備般簡易,而不用如現今系統建置作業,需先分別採購硬體設備、OS及應用系統等,然後再將其結合。這樣的系統架構思維與發展趨勢,勢必衝擊傳統的資訊系統設計構思,故此建議,舉凡與系統規劃、設計、開發,甚至行銷等有關人員,都得跳脫傳統的窠臼,認真且務實的去面對及因應此一即將發生重大變化。



拾、結語


虛擬伺服器技術在x86平台上仍算是較為新穎的技術,尤其在國內更是如此,相關的資訊既少且雜,而業界IT人員普遍的心態,總是推薦或使用「自我熟悉」或「我會的」技術及解決方案去建置一套新的資訊系統,常常忽略了應該用「最適的」及「最低成本」的技術及可獲解決的方案去建置該系統。此類心態與作為,的確會辜負了企業主、經理人(CEO)、甚至客戶對IT人員的期待與所賦予的職責。由於時勢所趨,在可預見的未來,虛擬化勢將成為往後資訊系統架構重要的發展方向,如何因應及善用虛擬化則是IT人員所須面臨的重要課題。


參考文獻


  1. Wikipedia,虛擬技術,http://zh.wikipedia.org/wiki/%E8%99%9A%E6%8B%9F%E6%8A%80%E6%9C%AF

  2. IBM M. Tim JonesVirtual Linuxhttp://www-128.ibm.com/developerworks/linux/library/l-linuxvirt/?ca=dgr-lnxw09Virtual-Linux

  3. Susanta NandaTzi-cker ChiuehA Survey on Virtulization Technologies

  4. CNW網界 謝文硯,虛擬技術現實全景,http://cnw2005.cnw.com.cn/store/detail/detail_feedback.asp?articleId=48033&ColumnId=1102&pg=&view=

  5. WikipediaHypervisorhttp://en.wikipedia.org/wiki/Hypervisor

  6. JDMBAVMwareXenMicrosoft虛擬化技術解析,http://blog.csdn.net/JDMBA/archive/2006/11/08/1372948.aspx

  7. WikipediaRing (computer security)http://en.wikipedia.org/wiki/Ring_%28computer_security%29

  8. eNet,虛擬化大行其道比量三種虛擬化工具,http://www.enet.com.cn/article/2006/1025/A20061025269015_6.shtml

  9. WikipediaVMwarehttp://zh.wikipedia.org/w/index.php?title=VMware&variant=zh-tw

  10. VMwareVirtualization Overviewhttp://www.vmware.com/pdf/virtualization.pdf

  11. WikipediaVirtual PChttp://zh.wikipedia.org/w/index.php?title=Virtual_PC&variant=zh-tw

  12. CNET,微軟縮減Windows虛擬化功能,http://www.zdnet.com.tw/news/software/0,2000085678,20117867,00.htm

  13. WikipediaXenhttp://zh.wikipedia.org/wiki/Xen

  14. Jun NakajimaHybrid Virtualization-The Next Generation of XenLinuxIntel Open Source Technology Center2007

  15. PUGXen-Installationhttp://www.pug.org/index.php/Xen-Installation

  16. QumranetKVM:Kernel-based Virtualization Driver

  17. WikipediaKernel-based Virtual Machinehttp://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine

  18. IntelIntel Virtualization Technologyhttp://www.intel.com/technology/platform-technology/virtualization/index.htm

  19. AMDAMD's Virtualization Solutionshttp://enterprise.amd.com/us-en/AMD-Business/Business-Solutions/Consolidation/Virtualization.aspx

  20. TechTarget Alex BarrettServer virtualization expert expounds on why blade servers are badhttp://searchservervirtualization.techtarget.com/originalContent/0,289142,sid94_gci1239548,00.html

  21. Matasano Dino A. Dai ZoviHardware Virtualization Rootkits


標籤:

中華技術-資訊平台在虛擬化浪潮下的蛻變(上)

這是小弟之前所寫的文章,刊登在公司發行的刊物"中華技術"上,分享出來給需要的人參考
原文刊於中華技術
(ISSN1818-4464)76期2007年10月發行

關鍵詞

擬化、VirtualizationVirtual MachineVirtual ArchitectureVirtual Server


摘要


資訊系統對於現今企業的競爭力雖然愈形重要,然而一般企業的IT預算卻難有顯著增加,如何在有限的預算中儘可能達成企業的營運需求,正是IT人員面臨的嚴肅課題;透過伺服器的虛擬化技術,IT人員可以在資訊系統的應用成長與設備的擴充上取得平衡點。

本文將介紹伺服器虛擬化的主要原理、技術類別、市場現況與未來發展,並分享台灣世曦工程顧問股份有限公司(以下簡稱台灣世曦)導入與建置的經驗。


壹、前言


隨著企業不斷成長的資訊需求,伺服器部署數量越來越多,機房的基礎設施如電力、空調、空間等也越趨不敷使用,外加既有機房的基礎設施調整更新不易,因應伺服器擴增所衍生的間接成本也越來越高。故此,伺服器的虛擬化技術與相關運用乃因應而生,且後續發展可期。

就虛擬化的技術而言,其實早已廣泛存於現今的資訊系統架構中,只是x86平台的伺服器虛擬化架構現在才受到關注與討論。當前,尚有諸多IT人員仍停留於「伺服器虛擬化=效能不彰」的迷思中,殊不知透過適當的伺服器虛擬化技術與良好的資訊系統架構規劃設計,將可使IT資源的投資與應用相得益彰,發揮得更有效率,在整體效用上更可符合企業對於資訊系統的投資期望。

台灣世曦早在2002年(中華顧問工程司時期)起即開始PC端應用虛擬技術,隨後2005年導入伺服器的虛擬化應用,(2007)台灣世曦已有40%的伺服器以虛擬化型態提供服務,隨著資訊系統應用需求的快速成長及系統設備持續更新虛擬化的比率預計將逐步提升到50%以上

本文係由鑽研伺 服器虛擬化原理甚深且實務經驗豐富的Jedi主筆,將本公司自財團法人年代乃至轉投資成立公司期間,有關伺服器虛擬化的理論研析、實驗測試、系統規劃 設計、及建置運作等寶貴經驗,擇其精華與工程界先進分享。文章內容先就伺服器虛擬化的演進、技術、應用與市場現況作一簡介,並闡述本公司伺服器虛擬化的演 進過程、系統架構規劃主體構思,最後根據本公司實際執行經驗,對於虛擬伺服器的優缺點及伺服器虛擬化的未來發展趨勢,作一簡要總結與建言。


貳、伺服器虛擬化的演進


資訊系統的虛擬技術可依架構與抽象程度分成五種類別(如表1[1],分別是硬體抽象層虛擬技術Hardware Abstraction Layer、 指令集虛擬技術Instruction Set Level、作業系統層虛擬技術Operating System Level、函數層虛擬技術Library Level、應用層虛擬技術Application Level,而伺服器的虛擬化便是基於Hardware Abstraction LayerInstruction Set LevelOperating System Level這三種技術來發展的。

伺服器虛擬化的概念起始於1960IBM的大型主機[2][3],往後數十年間伺服器的虛擬化相關應用也一直侷限於大型主機上,而x86平台的伺服器受限於軟硬體架構的設計與效能限制,在虛擬化的進展上始終非常緩慢也遲遲無商業化的應用,惟近年來x86平台伺服器已發展成市場的主流且效能與穩定性也愈趨值得信賴。其實在約60%以上的應用環境中,當前x86平台伺服器其效能已遠超出應用程式所需,如此伺服器便有冗餘的效能,造成資源與投資的雙重浪費。

1990年代後期,便開始有資訊廠商注意到這潛在趨勢與需求,推出了x86平台的虛擬化軟體。早期虛擬化技術讓使用者與技術人員還存在者許多存疑,虛擬化可靠嗎?效能如何?應用系統執行於虛擬平台上總有一種不踏實感,而確實當時虛擬化的成熟度的確不甚理想,所以相關的應用大多僅存在於IT的測試環境中(LAB)

隨著相關虛擬化技術廠商的努力,及硬體效能不斷演進,約在2003x86平台伺服器的虛擬化技術已開始有較多正式商業化的應用。而伴隨著開放原碼社群的蓬勃發展,除了商業軟體廠商外,現在開放原碼社群也對虛擬化投注新的能量,有眾多的虛擬化專案與技術正快速發展中,有些甚至已取得業界廣泛支持,型成新興的技術標準。


1、虛擬技術類別[1]

虛擬技術類別

產品/技術範例

Application Level Virtualization

Java Virtual MachineMicrosoft .NET CLI

Library Level Virtualization

WINE

Operating System Level Virtualization

KVM

Instruction Set Level Virtualization

QEMUBochs

Hardware Abstraction Layer Virtualization

VMWareVirtual PCXen


參、伺服器的虛擬化技術


伺服器的虛擬架構可分兩個面向來說明,分別是虛擬主機(VM Server)的核心技術與虛擬機器(VMs)的虛擬化環境。


一、虛擬主機(VM Server)核心技術


伺服器虛擬化的主要原理便是在傳統硬體平台上加了一管理層,泛稱為Hypervisor亦可稱為VMM (Virtual Machine Monitor)虛擬管理平台Hypervisor是一個非常底層的虛擬化程序,Hypervisor把諸如CPU(中央處理器)和記憶體等硬體資源虛擬化,表面上來看每個VMs皆獨占CPU、記憶體及其它硬體資源,但實際上皆由Hypervisor來控制著彼此間的存取與資源分配基於此基本原理,虛擬主機(VM Server)的核心技術又可區分如下:


()硬體虛擬化(Hardware Virtualization

硬體虛擬技術起源於大型主機,如IBMHPSUNUnisys等廠商都發展過相關的技術,Unix伺服器上的硬體虛擬化主要透過MBBModular Building Block)架構來實體區隔系統與運算架構[4],在相關的大型Unix伺服器上既可以運行一個OSOperating System,也可以運行多個OS,這種類型的硬體虛擬化優點是穩定度與安全性,缺點是系統資源分配不易。隨著x86平台技術的演進,AMDIntel也開始在x86平台中導入以CPU為核心的硬體虛擬化架構,可預見硬體虛擬化將是往後主導x86平台伺服器虛擬化的關鍵技術。


()軟體虛擬化(Software Virtualization

軟體虛擬化依Hypervisor技術發展可區分成Type-1 HypervisorType-2 Hypervisor[1][5]

Type-1 Hypervisor(如圖1是核心層或OS層虛擬化,透過修改OS Kernel,讓VMM直接與OS結合,減少過多指令碼轉譯的損耗,藉此增加VMs的運作效能,由於此類型虛擬化的效能較佳,未來勢必成為虛擬技術的主流。這類產品以VMware ESX Server與開放原碼平台的XenKVM為代表。

Type-2 Hypervisor(如圖2需要運行在OS之上,透過軟體虛擬化技術創造一個完整的系統環境,在其上運行各類的OSVMs透過VMM來存取被授權的硬體資源。這類型虛擬化的優點為可以模擬一個完整的系統環境(包括硬體資源等),所以只要模擬環境得宜,VMsOS可以完全不經修改便可順利執行,但其主要缺點亦為此,由於整個系統環境都是模擬的,系統得花費更多資源於訊息、指令碼的轉譯上,所以效能的損耗較高,不太適合應用於以效能為前提的環境中。這類產品以VMware Workstation/ServerMicrosoft Virtual PC/Server為代表。


)雙劍合壁(軟體虛擬化與硬體虛擬化的結合)

Type-1 Hypervisor的架構雖已進一步增強了VMs的系統效能,但是VMM仍需依附著OS,而一般的OS架構過於複雜,且部分核心層的虛擬化技術如Xen,在考慮到效能因素並未提供全虛擬化的環境,VMsOS必需配合對其核心略作修改,才能執行於虛擬化環境中,這在開放原碼的Linux上不是問題,Linux可以輕易配合虛擬環境的要求做必要修正,但在Microsoft Windows平台上,這個問題便非常棘手,所幸隨著AMDIntel CPU虛擬化技術的提出,核心層的虛擬化技術如Xen便可以提供一個全虛擬化環境供VMs使用,因此如Microsoft Windows平台的OS便可不修改核心順利執行於上述的虛擬化環境中,借此核心層虛擬化與硬體虛擬化技術結合所提供的虛擬化環境得以適合更多的系統平台,且透過硬體虛擬化技術的支援,VMs可直接存取硬體資源,不再需要透過VM Server OS的轉介,效能更佳。而Hypervisor透過硬體虛擬化的直接支援,將不再需要耗費資源在硬體資源的轉介與模擬上,系統也變的更輕量化。

二、虛擬機器(VMs)虛擬化環境


要談到VMs的虛擬化環境,就必須了解CPU的系統架構限制[6][7]x86 CPU一共有4個不同優先順序,術語稱為Ring,從Ring 0Ring 3(如圖3Ring 0的優先順序最高,Ring 3最低。在一般情況下,Ring 0是被用於運行OS KernelRing 1Ring 2是用於OS服務,Ring 3用於應用程式,也就是說在一般的x86操作環境中,OS是運行在受保護的Ring 0下,而虛擬技術就是得要解決上述的系統限制。

VMs的虛擬化環境主要分成兩大類,一是全虛擬化,一是半虛擬化,以下分別來說明其主要差異。


()全虛擬化技術(Full Virtualization/純虛擬化(Native Virtualization

在全虛擬化擬環境中,虛擬化的OS和硬體資源間存在著一層管理層,即VMMVMM會提供特定的硬體資源給VMs使用,VMs便執行在相關的虛擬硬體資源上,VMs不會察覺自己執行在虛擬環境中,這就像電影駭客任務(The Matrix)中那些未被解救的人類,渾然不覺自己其實是存在於電腦所虛擬出來的世界中。這種技術雖不需修改OS Kernel,但也不是完全實現所有的硬體支援,全虛擬化通常是以降低性能來換取系統的相容性,因為所有的硬體資源都是模擬的,所以會有系統轉換上的損耗,且為了系統相容度,其所模擬的硬體周邊往往是早期的產品,也更進一步降低了VMs的效能,以當前VMware所提供的虛擬環境為例,模擬的晶片組便是Intel BX系列,而此系列的晶片組遠在1990年代末期便推出,故可能無法滿足現況所需。然而全虛擬化技術在硬體虛擬化技術被提出後,又有了不同的面貌,透過硬體虛擬化技術的支援, VMs便可以直接存取驅動相關的實體硬體資源,如此便可以解決上述所面臨的問題。全虛擬化技術的相關應用如VMwareMicrosoft Virtual PC/ServerKVM


()半虛擬化/準虛擬化(Paravirtualization

半虛擬化環境中依舊存在著VMM,這種技術不模擬硬體,而是提供一套API要求修改OS KernelGuest OS都清楚自己運行於虛擬環境中,如此VMM便可以更有效率的管理所有的系統硬體資源,且各VMs的效能也會提升,半虛擬化中的VMs就像電影駭客任務中的電腦人,知道自己僅存在於虛擬環境中,但也因此對於其它資源的存取更易。半虛擬化的VMs在配合上硬體虛擬化技術後其效能又得到更進一步的提升,因為硬體資源間的協調更佳,資源利用率也更理想。目前半虛擬化的相關應用大都在開放原碼的Linux平台上,因為系統核心可配合虛擬化需求被修改,而Microsoft Windows平台的半虛擬化應用可能要在下一個世代 Longhorn Server上才可能被實現。半虛擬化的相關應用如XenUMLUser Mode Linux)。


標籤: