Xen虛擬機器

2021-06-23 00:43:20 字數 3567 閱讀 8566

虛擬化技術是雲計算實現彈性計算的核心技術。在構建雲計算平台中,虛擬機器的安裝是基礎。常用的虛擬機器工具很多,如vmware、xen、kvm、virtual pc等,這些工具使得使用者可以在單台物理pc上(稱為宿主機)虛擬出多個虛擬機器vm(virtual machine),由於在每個vm上可以安裝與宿主機不同的作業系統。因而可以實現在一台物理pc上模擬出多台安裝有不同作業系統的「pc」。在雲計算中,使用者可以向雲平台申請租用虛擬機器,虛擬機器的配置,如cpu的核數、主頻,記憶體,儲存容量等可以根據需要自己設定,並可動態修改。現有虛擬機器工具多支援這些功能,然而很多任務具如vmware、xen-server等提供的免費測試工具多隻提供gui介面,使用者只能通過圖形介面實現虛擬機器的建立和配置,無法實現動態的配置,以至於構建的雲平台退化為不具有彈性的「虛擬機器平台」。

xen 是由劍橋大學開發的一款開放源**虛擬機器工具軟體,支援虛擬機器的各種配置和動態建立,最重要的是提供了豐富的使用者管理介面。

在xen宿主機上建立客戶虛擬機器

在物理pc的fedora上安裝xen,並登入xen後,即進入虛擬機器的宿主環境domain0,使用者可在domain0的基礎上建立domainu虛擬機器,並需要在domainu虛擬機上安裝新的作業系統。例如下圖,在物理宿主機host上安裝fedora12,然後在此基礎上借助與xen虛擬機器管理工具建立兩台guest虛擬機器,兩台guest也安裝fedora12(當然也可以安裝其他的作業系統,如ubuntu等)

amazon ec2 占用的地理空間為美國東海岸3 個資料中心、西歐兩個資料中心。你可以單獨登入到amazon 歐洲資料中心的賬戶上,但是,不能混搭使用美國環境和歐洲環境。在這些環境中,伺服器執行的是高度定製化、使用準虛擬化技術的open sourcexen 管理程式。該xen 環境不但能夠動態準備和撤銷虛擬伺服器,還能為訪客伺服器提供互相隔離的計算環境。

如果想在amazon 環境中啟動一台虛擬伺服器,需要啟動乙個基於預定義amazon 機器映像(amazon machine image,ami)的節點。ami 包含了作業系統和所有其他預先建立好的軟體。多數人開始時會選用乙個標準ami,上面帶著他們喜歡的作業系統,然後對其進行定製,建立出乙個新映像,最後,基於定製的映像啟動伺服器。

ec2 自己有兩類儲存方式:

繫結到節點上的臨時儲存,隨著節點一起消失。

像 san 那樣工作的塊儲存,能夠長期儲存。

亞馬遜彈性雲ec2虛擬機器

亞馬遜彈性雲使用xen虛擬化技術。每個虛擬機器,又稱作例項,能夠執行小、大、極大三種能力的虛擬私有伺服器。amazon利用ec2 compute units去分配硬體資源。ec2系統提供以下的虛擬機器例項型別:

微型例項:預設配置了613mb的儲存器,乙個虛擬核心上執行兩個ec2 compute unit,免費試用一年

小型例項:預設配置了1.7gb的儲存器,乙個虛擬核心上執行乙個ec2 compute unit

大型例項:預設配置了7.5gb的儲存器,兩個虛擬核心上各執行兩個ec2 compute units

極大例項:預設配置了15gb的儲存器,四個虛擬核心上各執行兩個ec2 compute units

ec2例項

ami(amazon machine image)是amazon虛擬機器映象檔案,它是乙個可以將使用者的應用程式、配置等一起打包的加密機器映象。使用者建立好ami後,部署在ec2平台上執行,稱為乙個ec2例項。每個例項自身包含乙個本地儲存模組(instance local store),臨時存放使用者資料。如果ec2例項執行過程中出現故障或者例項被終止,儲存在其中的資料將會丟失。因此,amazon建議將重要的資料儲存在ebs中以增強可靠性。

自動縮放(auto scaling)可以根據使用者自定義的條件,自動調整ec2的計算能力。多個ec2例項組成乙個自動縮放組(auto scaling group),當組內的例項負載過高,比如cpu平均使用率超過70%時,可以定義縮放規則自動增加ec2例項;同樣地,當組內的例項負載過低時,可以自動縮小ec2例項規模以降低成本。

ec2根據計算能力將例項分為多種型別,如下表:

資源small

large

extra large

high-cpu medium

high-cpu extra large

平台32位

64位64位

64位64位

cpu1ecu

4ecu

8ecu

5ecu

20ecu

記憶體1.7gb

7.5gb

15gb

1.7gb

7gb儲存容量

160gb

850gb

1690gb

350gb

1690gb

通過自動縮放技術,當ec2平台檢測到某個例項出現故障時,將動態選擇新的節點啟動新例項,每個例項重新啟動後它的公共ip位址都會發生變化。internet使用者通過網域名稱訪問ec2例項,然而,需要一段比較長的時間才能更新公共ip位址與dns之間的對映關係。為了解決這個問題,ec2提供了兩種方式:

彈性負載均衡:ec2新例項重啟後通知彈性負載均衡元件,彈性負載均衡元件能夠自動將流量切換到新例項。

新例項啟動時,ec2使用者只需要使用管理工具將彈性ip位址與新的例項關聯起來,internet使用者感覺不到任何差異。

ec2本地儲存是例項自帶的磁碟空間,但它並不是持久的,也就是說這個例項所在的節點出現故障時,相應的磁碟空間也會隨之清空,本地儲存上的資料隨時有丟失的風險。

為了解決本地儲存不可靠問題,ec2推出了ebs,資料在ebs中自動在同乙個可用區域內複製多份。ebs通過捲來組織資料,每個ebs卷只能掛載到乙個ec2例項。ebs卷並不與例項繫結,而是與使用者帳號繫結。當ec2例項發生故障時,使用者可以在新啟動的ec2例項上重新掛載ebs卷。另外,ebs能夠以快照的形式將資料增量備份到s3,而s3的資料分布在多個可用區域,進一步增強了可靠性。ebs的設計原理如下:

如上圖,ebs包含兩個部分:ebs控制層(ebs control plane)及ebs儲存節點。ebs客戶端通過ebs control plane建立邏輯卷,獲取邏輯卷每個副本所在的ebs儲存節點位置,然後請求ebs儲存節點讀寫邏輯卷資料。每個邏輯卷儲存在多個ebs節點上,多個副本之間資料強同步,其中有乙個副本為primary,其它的為secondary。當primary往secondary傳輸資料失敗時,將請求ebs control plane選取新的ebs節點增加副本,這個過程稱為重新映象(re-mirroring)。ebs control plane負責每個邏輯卷的primary副本選取,如果primary出現故障,將選擇某個secondary副本為新的primary。ec2例項通過ebs客戶端訪問ebs系統,它們之間遵守一定的協議,比如網路塊裝置(network block device,nbd)協議,從而ec2例項訪問遠端ebs節點上的邏輯卷與訪問本地的塊裝置沒有差別。

Xen虛擬機器檢測

應用程式如何獲知自己是否工作在xen 虛擬機器中呢?使用cpuid指令可以完成該任務。uint32 t eax,ebx,ecx,edx,pages,msr,i char signature 13 cpuid 0x40000000,eax,ebx,ecx,edx uint32 t signature ...

Xen虛擬機器VNC輸出

摘要 有時需要通過主機hvc0登入到虛擬機器中,有時需要借助vnc登入虛擬機器進行管理,這樣就需要有相應的配置保證兩者都能正常輸出。具體的配置如下文。hvc是xen虛擬化技術引入的對虛擬機器進行控制的虛擬console,在虛擬機器的配置中自動完成 vnc顯示vga硬體輸出,可以完成對虛擬機器的管理。...

Xen 虛擬機器使用LVM snapshot映象

一般的虛擬機器映象檔案,比較直接的做法是存放在乙個img映象檔案裡,或者直接使用 dev sda 分割槽。但是萬一把虛擬機器分割槽 玩壞 了就不好恢復了。qemu支援一種映象格式qcow2,能夠建立增量映象,這樣可以把修改存在新檔案裡,當出錯時可以保護原始映象。這個功能非常有用,xen似乎支援qco...