天天看點

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

虛拟化技術經過半個多世紀的發展,已日趨成熟并逐漸得到廣泛的應用,成為雲計算的基礎技術。

1959年,在國際資訊處理大會上,著名科學家克裡斯托弗(Christopher Strachey)發表了一篇名為“大型高速計算機中的時間共享”(Time Sharing in Large Fast Computers)的學術報告。在該報告中,他提出了虛拟化的基本概念,同時這篇文章也被認為是對虛拟化技術的最早的論述。

1965年,IBM公司釋出IBM7044,它被認為是最早在商業系統中實作的虛拟化。它通過在一台大型主機上運作多個作業系統,形成若幹個獨立的虛拟機,讓每一個使用者可以充分利用整個大型機資源,有效解決了大型機資源使用率不足的問題。

1999年,由于X86平台已具備高效的處理能力,VMware公司在X86平台上推出了商用的虛拟化軟體。這也标志着虛拟化技術從大型機時代走向了PC伺服器的時代。

現在,随着雲計算技術的快速發展,作為與雲計算密不可分的虛拟化技術也得到了進一步的發展。越來越多的廠商,包括VMware、Citrix、微軟、Intel、Cisco等都加入了虛拟化技術的市場競争,虛拟化技術在未來将具有廣闊的應用前景。

3.1.1 主機虛拟化的概念

有很多标準組織對虛拟化(virtualization)進行了定義。維基百科對于虛拟化的描述是:在計算機技術中,虛拟化技術或虛拟技術是一種資源管理技術,是将計算機的各種實體資源(CPU、記憶體、磁盤空間、網絡擴充卡等)予以抽象、轉換後呈現出來,并可供分區、組合為一個或多個電腦組態環境。由此,打破實體結構間的不可切割的障礙,使使用者可以比原本的配置更好的方式來應用這些電腦硬體資源。這些資源的新虛拟部分是不受現有資源的架設方式、地域或實體配置所限制。虛拟化資源一般包括計算能力和資料存儲。開放網格服務體系(Open Grid Services Architecture,OGSA)對虛拟化的定義是:虛拟化是對一組類似資源提供的通用抽象接口集,進而隐藏了屬性和操作間的差異。IBM則認為,虛拟化是資源的邏輯表示,它不受實體限制的限制。

盡管不同的組織機構對虛拟化有不同的定義,但總的來說,我們可以這樣了解虛拟化:虛拟化是對各種實體資源和軟體資源的抽象利用。這裡所說的資源包括硬體資源(如CPU、記憶體、網絡等),也包括軟體資源(如作業系統、應用程式等)。對于使用者來說,他隻需要利用虛拟化環境來完成自己的工作,而不需要了解虛拟化邏輯資源的内部細節;在虛拟化環境下,使用者可以在其中實作與在真實環境下相同的功能或部分功能。

主機虛拟化作為一種虛拟化實作方案,旨在通過将主機資源配置設定到多台虛拟機,在同一企業級伺服器上同時運作不同的作業系統,進而提高伺服器的效率,并減少需要管理和維護的伺服器數量。與傳統伺服器相比,主機虛拟化在成本、管理、效率和災備等方面,具有顯著的優勢。通過主機虛拟化實作方案,企業能夠極大地增強IT資源的靈活性,降低管理成本并提高營運效率。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

如圖3-1所示,主機虛拟化架構通常由實體主機、虛拟化層軟體和運作在虛拟化層上的虛拟機組成。實體主機是由實體硬體(包括CPU、記憶體、I/O裝置)所組成的實體機器;虛拟化層軟體又被稱作Hypervisor或者虛拟機螢幕(Virtual Machine Monitor,VMM),它的主要功能是将實體主機的硬體資源進行排程和管理,并将其配置設定給虛拟機,管理虛拟機與實體主機之間資源的通路和互動。虛拟機則是運作在虛拟化層軟體之上的各個客戶機作業系統,使用者可以像使用真實計算機一樣使用它們來完成工作。對于虛拟機上的各個應用程式來說,虛拟機就是一台真正的計算機。

3.1.2 主機虛拟化實作方案

在基本遵循主機虛拟化架構的前提下,業界主流公司都提出了其主機虛拟化解決方案,其典型代表有:VMware Workstation、Microsoft Virtual PC、Xen、KVM等。

1.?VMware Workstation

VMware Workstation是一個基于主機的虛拟機産品,可以在Windows、Linux和Macintosh等主流作業系統上運作。它包含核心VMM、虛拟機擴充驅動VMX和VMware應用程式三個子產品,VMM負責虛拟機的建立管理等核心工作;VMX驅動運作在Ring0特權級,輔助VMM完成虛拟機作業系統觸發的I/O操作;VMware應用程式運作在Ring3特權級,是VMware Workstation的人機界面。當啟動VMware應用程式時,VMX驅動将VMM加載到核心區域,并賦予VMM和VMX驅動Ring0特權級,虛拟機作業系統能夠探測到VMX和VMware應用程式,但是無法感覺到VMM。VMM可以直接控制處理器記憶體,或者管理VM與主機通信來完成虛拟機I/O等特殊指令。

當虛拟機作業系統或在其之上運作的應用程式執行計算時,虛拟機可以獲得處理器的控制權,程式直接在處理器硬體上執行。當虛拟機需要執行I/O操作或者執行敏感指令時,VMM子產品就會捕獲這些指令并将處理器切換到VMM控制模式,在主機環境中由VMX子產品或VM應用模拟執行I/O,必要時由主機作業系統觸發真實I/O。由于I/O是由虛拟機作業系統引發,是以執行結果将通過VMM傳遞回虛拟機。虛拟機的處理器和記憶體調用基本是靠硬體實作,執行效率高,而I/O操作虛拟環境切換,導緻虛拟機I/O性能較低。

2.?Microsoft Virtual PC

微軟公司的Virtual PC是一款基于主機作業系統的虛拟化産品,與VMware Workstation非常類似。Virtual PC可以運作于Windows作業系統和Macintosh作業系統上,在作業系統上支援多個Windows作業系統執行個體及其應用程式的運作。與VMware相比,Virtual PC有很多不足,如不支援Windows以外的作業系統(Linux、FreeBSD、Solaris等);Virtual PC虛拟機不能修改已經賦予虛拟機使用的虛拟硬體裝置,不支援SCSI裝置,是以局限性比較大。Virtual PC有一項特殊的功能,允許使用者撤銷在虛拟磁盤中所做的操作,使虛拟機恢複先前的狀态,這在測試中非常有用。

3.?Xen

Xen采用半虛拟化技術,需要對作業系統進行修改才能與虛拟機螢幕協同工作,這也就使得Xen無需硬體支援就能以較高效率實作虛拟化。在Xen中,虛拟機被稱為域(Domain),其中,Domain 0是一個管理域,它作為一個特殊域,可直接通路硬體資源,協助虛拟機螢幕完成虛拟機的管理工作,為虛拟機螢幕提供擴充服務。與Domain 0相比,普通虛拟機隻能通路虛拟硬體資源,我們稱之為普通域。虛拟機螢幕運作在Ring 0特權級上,Domain 0的核心運作在Ring 1上,它擁有系統I/O等硬體裝置,負責向其他域提供虛拟硬體資源。Domain 0作為整個系統的管理平台,可以通過超級調用(Hypercalls,是一種對Hypervisor的調用申請,類似于作業系統中的系統調用)來建立、儲存、恢複、移植和銷毀普通虛拟機。

Xen普通虛拟機(Domain U)不能通路自身之外的任何硬體資源,包括虛拟機螢幕擁有的硬體資源,但是可以通過Hypercalls向虛拟機螢幕申請各種硬體服務,如記憶體更新、Domain 0支援、處理器狀态等,并且Hypercalls支援批處理調用,即能将Hypercalls集中在一個隊列中統一處理,提高系統處理速度。

4.?KVM

KVM和Xen是兩個比較接近的開源虛拟化實作方案,但是它們依然有很多不同。KVM作為一個Linux核心核心子產品,已經成為Linux的一個組成部分。KVM虛拟化實作方案充分利用了Linux程序排程算法和記憶體管理技術,任何Linux核心性能的改進或版本提升均可直接應用于KVM虛拟化實作方案中,進而使KVM虛拟機獲得性能上的提高。KVM充分利用了Linux核心子產品簡單而高效的特點,修改KVM子產品無需重新編譯Linux核心,隻需在Linux中重新加載修改後的KVM子產品即可。

3.1.3 主機虛拟化的特性

在高性能的實體硬體産能過剩以及老舊硬體産能過低的情況下,為了實作硬體資源的合理配置設定和使用,虛拟化技術應運而生。不同類型的虛拟化技術使軟體資源和硬體資源、底層資源和上層資源之間的耦合度降低,資源的利用方式也發生變化。以單個主機資源的利用方式為例,虛拟化前後,主機資源的利用方式發生的變化如圖3-2及表3-1所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

主機虛拟化帶來便利的同時也帶來了新的挑戰,主要展現在如何合理地配置設定一台實體主機的資源給多個虛拟機、如何確定多個虛拟機的運作不發生沖突、如何管理一個虛拟機和其擁有的各種資源、如何使虛拟化系統不受硬體平台的限制。這些與傳統的資源利用的不同正是主機虛拟化技術的特性所在,同時也是伺服器虛拟化(主機虛拟化在實體伺服器上的實作)在實際環境中進行有效運用需要具備的特性,分别是:多執行個體、隔離性、封裝性和高性能。

1)多執行個體 通過伺服器虛拟化技術,實作了從“一個實體伺服器一個作業系統執行個體”到“一個實體伺服器多個作業系統執行個體”的轉變。在一個實體伺服器上虛拟出多台虛拟機,支援多個作業系統執行個體,這樣就可以把伺服器的實體資源進行邏輯整合,供多個虛拟機執行個體使用;可以根據實際需要把處理器、記憶體等硬體資源動态配置設定給不同的虛拟機執行個體;可以根據虛拟機執行個體的功能劃分資源比重,對實體資源進行可控調配。與單伺服器單作業系統的傳統的伺服器管理模式相比,多執行個體特性既可以利用有限的資源進行最大化的管理,又可以節省人力資源。

2)隔離性 虛拟機之間可以采用不同的作業系統,是以每個虛拟機之間是完全獨立的。在一台虛拟機出現問題時,這種隔離機制可以保障其他虛拟機不會受其影響。其資料、文檔、資料等集合不會丢失。也就是說,既友善系統管理者進行對每一台虛拟機進行管理,又能使虛拟機之間不受幹擾,獨立工作。而每個虛拟機内互通路,又可以通過所部署的網絡進行通信,就如同在同一網域内每台計算機之間的資料通信一樣。

3)封裝性 采用了伺服器虛拟化後,每台虛拟機的運作環境與硬體無關。通過虛拟化進行硬體資源配置設定,每台虛拟機就是一台獨立的個體,可以實作計算機的所有操作。封裝使不同硬體間的資料遷移、存儲、整合等變得易于實作。在同一台實體伺服器上運作的多個虛拟機會通過統一的邏輯資源管理接口來共用底層硬體資源,這樣就可以将實體資源按照虛拟機不同的應用需求進行配置設定。将硬體封裝為标準化的虛拟硬體裝置,提供給虛拟機内的作業系統和應用程式使用,也可以保證虛拟機的相容性。

4)高性能 伺服器虛拟化是将伺服器劃分為不同的虛拟管理區域。其中的虛拟化抽象層通過虛拟機螢幕或者虛拟化平台來實作,這會産生一定的開銷,這些開銷即為伺服器虛拟化的性能損耗。伺服器虛拟化的高性能是指虛拟機螢幕的開銷應控制在可承受的範圍

之内。

3.1.4 主機虛拟化的關鍵技術

在x86體系結構下,主機虛拟化的主要技術包括CPU虛拟化、記憶體虛拟化、I/O虛拟化以及虛拟機的實時遷移。

1.?CPU虛拟化

CPU虛拟化是VMM的核心部分,由于記憶體和I/O操作的指令都是敏感指令,是以對于記憶體虛拟化和I/O虛拟化的實作都是依賴于CPU虛拟化而完成的。所謂敏感指令,是指原本需要在作業系統最高特權級下執行的指令,這樣的指令不能在虛拟機内直接執行,而是交由VMM處理,并将結果重新傳回給虛拟機。CPU虛拟化的目的就是讓虛拟機中執行的敏感指令能夠觸發異常而陷入到VMM中,并通過VMM進行模拟執行。在x86體系結構當中,處理器擁有4個特權級,分别是Ring 0、Ring 1、Ring 2、Ring 3。運作級别依次遞減。其中位于使用者态的應用程式運作在Ring 3特權級上,而位于核心态的代碼需要對CPU的狀态進行控制和改變,需要較高的特權級,是以其運作在Ring 0特權級上。

在x86體系結構中實作虛拟化時,由于虛拟化層需要對虛拟機進行管理和控制,如果虛拟化層運作在Ring 0特權級上,則客戶機作業系統隻能夠運作在低于Ring 0的特權級别。但由于在客戶機作業系統中的某些特權指令,如中斷處理和記憶體管理指令,如果沒有運作在Ring 0特權級,則可能會出現語義沖突導緻指令不能夠正常執行。針對這樣的問題,研究者們提出了兩種解決方案,分别是全虛拟化(Full-virtualization)和半虛拟化(Para-virtualization),兩者的差別如圖3-3所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

全虛拟化采用了二進制動态代碼翻譯技術(Dynamic Binary Translation),這種方法在敏感指令之前插入陷入指令。當虛拟機需要執行這些敏感指令時,會先通過陷入指令陷入到虛拟機螢幕中。虛拟機螢幕将需要執行的敏感指令動态轉換為具有相同功能的指令序列,再交由虛拟機執行。通過這樣的方法,非敏感指令由虛拟機直接處理執行,而敏感指令則通過陷入虛拟機螢幕進行指令轉換後再執行。全虛拟化解決方案的優點是不需要對客戶機作業系統進行修改,是以可以适配多種類型的作業系統,但缺點在于指令的動态轉換需要一定的性能開銷。

半虛拟化解決方案則通過對客戶機作業系統進行修改來解決虛拟機敏感指令不能正常執行的問題。在半虛拟化中,被虛拟化平台托管的客戶機作業系統通過修改其作業系統,将所有敏感指令替換成對底層虛拟化平台的超級調用。虛拟化平台也為這些敏感的特權指令提供了調用接口。形象地說,半虛拟化中的客戶機作業系統被修改後,知道自己處在虛拟化環境中,進而主動配合虛拟機螢幕,在需要的時候對虛拟化平台進行調用來完成相應指令的執行。半虛拟化解決方案的優點是其性能開銷小于全虛拟化解決方案。但缺點在于,由于對客戶機作業系統進行了修改,使得客戶機作業系統能夠感覺到自己處在虛拟化環境中,不能夠保證虛拟機螢幕對虛拟機的透明性。而且半虛拟化對客戶機作業系統版本有一定的限制,降低了客戶機作業系統與虛拟化層之間的相容性。

上述的全虛拟化與半虛拟化解決方案都屬于通過軟體方式來完成的虛拟化,但由于兩者都存在一定的性能開銷或者是增加了系統開發維護的複雜性。為了解決以上問題,産生了通過硬體來輔助完成CPU虛拟化的方式,即硬體輔助虛拟化技術。當今兩大主流的硬體廠商Intel公司和AMD公司分别推出了各自的硬體輔助虛拟化技術Intel VT和AMD-V。以Intel VT技術為例,它在處理器中增加了一套虛拟機擴充指令集(Virtual Machine Extensions,VMX)用于虛拟化環境的相關操作。Intel VT技術将處理器運作模式分為根模式(root)和非根模式(non-root)。對于虛拟化層而言,它運作在根模式下。對于客戶機作業系統而言,它運作在非根模式下。由于兩種運作模式都具備從Ring 0到Ring 3的四個特權級,是以很好地保留了全虛拟化和半虛拟化的優點,同時又彌補了兩者的不足。

2.?記憶體虛拟化

實體機的記憶體是一段連續配置設定的位址空間,虛拟機螢幕上層的各個虛拟機共享實體機的記憶體位址空間。由于虛拟機對于記憶體的通路是随機的,并且又需要保證虛拟機内部的記憶體位址是連續的,是以虛拟機螢幕就需要合理映射虛拟機内部看到的記憶體位址到實體機上的真實記憶體位址。虛拟機螢幕對實體機上的記憶體進行管理,并根據每個虛拟機對記憶體的需求對其進行合理配置設定。是以,從虛拟機中看到的“記憶體”不是真正意義上的實體記憶體,而是經過虛拟機螢幕進行管理的“虛拟”實體記憶體。在記憶體虛拟化當中,存在着虛拟機邏輯記憶體、虛拟機看到的實體記憶體以及真實實體主機上的記憶體三種類型,這三種記憶體位址空間也分别稱為虛拟機邏輯位址、虛拟機實體位址以及機器位址,如圖3-4所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

在記憶體虛拟化中,虛拟機邏輯位址與真實實體主機上的機器位址之間的映射是通過記憶體虛拟化中的記憶體管理單元來完成的。現階段,記憶體虛拟化的實作方法主要有兩種,分别是影子頁表法和頁表寫入法,如圖3-5所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

影子頁表法是指在客戶機作業系統中維護了虛拟機自己的頁表。該頁表中儲存的是虛拟機邏輯位址到虛拟機實體位址的映射關系,而在虛拟機螢幕當中,為每一台虛拟機也都維護了一套頁表,該頁表中儲存的是目前客戶機作業系統頁表實體位址到真實實體機機器位址的映射關系。在客戶機作業系統頁表發生改變時,在虛拟機螢幕中維護的頁表也會随之更新,如同它的影子,是以被稱作“影子頁表”(Shadow Page Table)。

頁表寫入法是指每當客戶機作業系統新建立一個頁表時,虛拟機螢幕也建立一套與目前頁表相同的頁表,這個頁表中儲存的是虛拟機實體位址與實體機機器位址之間的映射關系。在客戶機作業系統對它自身所維護的這套頁表進行寫操作時,将會産生敏感指令并由虛拟機螢幕剝奪客戶機作業系統對其頁表的寫操作權限,然後由虛拟機螢幕對客戶機作業系統頁表進行更新,使得客戶機作業系統能直接從它自己的頁表當中讀取到真實實體主機的機器位址。

總的來說,影子頁表法是一個從虛拟機邏輯位址到虛拟機實體位址再到實體機機器位址的二級映射關系,而頁表寫入法是一個從虛拟機邏輯位址到實體機機器位址的一級映射關系。但由于頁表寫入法在虛拟機螢幕中需要對每一套虛拟機頁表都維護一套頁表,是以對系統性能的消耗比較大。

3.?I/O虛拟化

真實實體主機上的外設資源是有限的,為了使多台虛拟機能夠複用這些外設資源,就需要虛拟機螢幕通過I/O虛拟化來對這些資源進行有效地管理。虛拟機螢幕通過截獲客戶機作業系統對外部裝置的通路請求,再通過軟體模拟的方式來模拟真實外設資源,進而滿足多台虛拟機對外設的使用要求,如圖3-6所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

虛拟機螢幕通過軟體的方式模拟出來的虛拟裝置可以有效地模拟實體裝置的動作,并将虛拟機的裝置操作轉譯給實體裝置,同時将實體裝置的運作結果傳回給虛拟機。對于虛拟機而言,它隻能夠察覺到虛拟化平台提供的模拟裝置,而不能直接對實體外設進行通路,是以這種方式所帶來的好處就是,虛拟機不會依賴于底層實體裝置的實作。

I/O虛拟化的實作主要有全裝置模拟、半虛拟化和直接I/O三種方式。

1)全裝置模拟:該方法可以模拟一些主流的I/O裝置,在軟體實作中對一個裝置的所有功能或者總線結構(例如裝置枚舉、識别、中斷和DMA)進行複制。該軟體位于虛拟機螢幕中,每當客戶機作業系統執行I/O通路請求時,将會陷入到虛拟機螢幕中,與I/O裝置進行互動。這種方式的體系結構如圖3-7所示。

如圖3-7所示,從上往下依次有客戶裝置驅動、虛拟裝置、I/O堆棧、實體裝置驅動和實體裝置。其中I/O堆棧主要用于提供虛拟機I/O位址到實體主機位址的位址轉換,處理虛拟機之間的通信,複用從虛拟機到實體裝置的I/O請求,提供企業級的I/O特性。

2)半虛拟化:半虛拟化中具有代表性的是Xen虛拟化解決方案中實作I/O虛拟化的方式。它由前端驅動和後端驅動兩部分構成。前端驅動運作在Domain U(其他虛拟機)中,後端驅動運作在Domain 0(特權域)中,它們通過一塊共享記憶體互動。前端驅動管理客戶機作業系統的I/O請求,後端驅動負責管理真實的I/O裝置并複用不同虛拟機的I/O資料。盡管與全虛拟化裝置模拟相比,半I/O虛拟化的方法可以獲得更好的裝置性能,但其I/O虛拟化的運作機制也會帶來更高的CPU開銷。

3)直接I/O虛拟化:這是指讓虛拟機直接通路裝置硬體,它能獲得近乎主控端通路裝置硬體的性能,并且CPU開銷不高。目前,直接I/O虛拟化主要集中在大型主機的網絡虛拟化方面,通過直接I/O虛拟化來為虛拟機配置設定獨立的實體網絡接口裝置,以提高其網絡互動能力。但是直接I/O虛拟化成本要求高,在商業大規模推廣方面仍面臨許多挑戰。

4.?虛拟機實時遷移

虛拟機實時遷移是指在保證虛拟機上服務正常運作的同時,使虛拟機在不同的實體主機上進行遷移。整個遷移過程需要保證虛拟機是可用的,并且整個遷移過程是快速且平滑的,遷移過程對使用者透明,即使用者幾乎不會察覺到在虛拟機使用過程中産生的任何差異。

整個實時遷移的過程需要虛拟機螢幕的配合來完成虛拟機從源實體主機到目标實體主機上記憶體和其他資料資訊的拷貝。在實時遷移開始時,虛拟機的記憶體頁面和資料資訊将不斷從源實體主機拷貝到目标實體主機,直到最後一部分位于源實體主機中的虛拟機記憶體和資料被拷貝進目标實體主機後,目标實體主機上的虛拟機将開始運作,整個遷移過程不會影響源實體主機中虛拟機的工作,如圖3-8所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

利用虛拟機實時遷移技術,可以實作伺服器的線上維護、線上更新和動态負載均衡,是以在雲計算領域有着廣闊的應用前景。

3.1.5 主機虛拟化的優勢

虛拟化是基礎設施整合中的重要技術。有了虛拟化技術,一些基礎設施(如伺服器、網絡、存儲等)可以被資源池化,并且經過抽象後提供給上層的計算單元,使上層的計算單元以為自己運作在獨立的記憶體空間中,享有獨立的網絡、存儲資源用于服務。同時,虛拟化技術的分區特性使得各種硬體資源被合理、高效地劃分給不同的虛拟機;隔離特性使得多個不同虛拟機在同一主機上互不影響計算的效果;封裝特性使得虛拟機更友善地遷移和備份;獨立于硬體的特性使得虛拟機的配置更加友善。

由圖3-9可以看出,目前虛拟化的市場還處于起步階段,是IT行業新興發展方向之一。圖中,虛拟化的市場發展被分為了四個階段,即降低成本、提高使用率、提高靈活性與更好地使IT配合業務。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

總而言之,主機虛拟化的優勢主要展現在兩方面:增加硬體的使用率以及提高生産率。

(1)增加硬體的使用率

以CPU的使用率為例,如圖3-10所示,在主控端進行虛拟化之前,主機上CPU的使用率一般在10%以下,偶爾會出現CPU的利用高峰,但是也沒有超過30%;在主控端進行虛拟化之後,主控端上的4個CPU的使用率均維持在55%~80%,最低使用率也沒有小于50%。可見,相較于傳統主機而言,主機虛拟化技術極大提高了CPU的使用率。

(2)提高生産率

主機虛拟化在提高生産率方面的作用可通過以下幾個例子來說明:

【例3.1】 部署一個新的伺服器。若采用傳統的伺服器架構,需要3~10天進行硬體采購,1~4小時進行系統部署;采用虛拟化架構後,隻需要5~10分鐘的時間即可采用模闆和部署向導初步完成一個系統的部署。

【例3.2】 硬體的維護。若采用傳統的伺服器架構,需要1~3小時進行視窗維護,數天乃至數周進行變更管理準備;采用虛拟化架構後,可以通過虛拟化技術實作零當機的硬體更新。

【例3.3】 遷移內建伺服器。采用傳統的伺服器架構,需要數天甚至數周進行變更管理準備,有時候,遷移能否成功還會受到其他環境因素的影響;采用虛拟化架構後,采用P2V(Physical To Virtual)技術,隻需要一個小時左右便可以實作伺服器的遷移。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

【例3.4】 移動伺服器優化負載。采用傳統的伺服器架構,遷移過程大約需要4~6小時,所有的維護視窗中的服務全部中斷,并且需要數天甚至數周的變更準備時間;采用虛拟化架構後,利用虛拟機實時遷移技術,可以在2~5分鐘内實作無服務中斷的遷移。

伺服器虛拟化是虛拟化技術中出現時間最早的技術分支,也是虛拟化技術中最為成熟的領域。伺服器虛拟化是将虛拟化技術應用于伺服器上,将一個伺服器虛拟化成若幹個伺服器使用。伺服器虛拟化技術的多執行個體、強隔離、高性能、封裝好等特性保證了它能有效地運用在實際的環境中,獨特的優勢使其受到很多大型企業的青睐。伺服器虛拟化的主要優點可總結如下:

1)降低營運成本:伺服器虛拟化廠商都提供了功能強大的虛拟化環境管理工具,可降低人工幹預的頻率,降低IT基礎設施的營運成本。

2)提高應用相容性:伺服器虛拟化技術所具有的封裝和隔離特性使管理者僅需建構一個應用版本,即可将其釋出到被虛拟化封裝後的不同類型的平台上。

3)加速應用部署:采用伺服器虛拟化後,部署一個應用通常隻需要幾分鐘至十幾分鐘的時間,且不需要人工幹預,極大地縮短了部署時間,降低了部署成本。

4)提高服務可用性:伺服器虛拟化技術可以友善地對運作中的伺服器進行快照并備份成虛拟機鏡像檔案,支援虛拟機的動态遷移和恢複,提高了服務的可用性。

5)提升資源使用率:伺服器虛拟化技術将原有的多台伺服器整合到一台伺服器上,提高了實體伺服器的使用率。

6)動态排程資源:伺服器虛拟化支援實時遷移,友善資源的整合和動态排程。同時,資料中心統一的資源池,使資料中心管理者可以靈活地調整配置設定資源。

7)降低能源消耗:伺服器虛拟化可以将原來運作在各個伺服器上的應用整合到少數幾台伺服器上,通過減少運作的伺服器的數量,降低了能源消耗。

這些優勢加速了伺服器虛拟化技術的普及,使其應用領域越來越廣泛。伺服器虛拟化技術開啟了基礎硬體利用方式的全新時代,尤其為建構雲計算基礎架構奠定了重要的技術基礎。在當今雲計算盛行的IT時代,伺服器虛拟化技術必将大行其道。

3.1.6 主機虛拟化上機實踐

1.?單主機虛拟化上機實踐

(1)實驗目的

學習主機虛拟化環境的搭建過程和利用虛拟化管理軟體對虛拟機進行可視化管理。

(2)實驗環境

①Linux作業系統(以Ubuntu Desktop作業系統為例)。

②可連通網際網路的主機。

③KVM、QEMU、虛拟機作業系統安裝檔案等。

(3)實驗步驟

1)配置環境:配置環境的步驟如下。

①檢視CPU是否支援硬體虛拟化,因為KVM需要硬體虛拟化功能支援。

如果查詢的資訊中有“vmx”或“svm”字段,說明CPU可支援硬體虛拟化。

②配置安裝源:Linux預設安裝源下載下傳及安裝速度較慢,是以需要修改軟體安裝源為适合本地環境的安裝源以提高速度。修改/etc/apt/sources.list檔案,此處将安裝源改為“mirrors.ustc.edu.cn”(中國科技大學)。

③安裝KVM、QEMU及配套軟體。

④使用指令行建立虛拟機,安裝作業系統,使用虛拟機。

之後,就可以在新視窗中檢視和操作普通作業系統一樣操作虛拟機,顯示效果如圖3-11所示:

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

⑤通過virt-manager管理虛拟機。在使用者界面上,打開Terminal終端,輸入以下指令:

系統彈出如圖3-12所示的視窗:

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

後續的操作都在這個環境下進行。

a)将已有的虛拟機鏡像檔案加入到virt-manager中。點選界面上側工具欄第一個圖示,彈出“新增虛拟機”視窗,在“安裝選項”中選擇“導入有磁盤鏡像”,之後選擇第④步建立的虛拟機鏡像,按照提示進行操作,完成虛拟機鏡像的導入操作。

b)在virt-manager中建立虛拟機。在virt-manager中,點選界面上側工具欄第一個圖示,彈出“新增虛拟機”視窗,在“安裝選項”中選擇“本地安裝媒介”,之後選擇虛拟機作業系統的安裝鏡像所在位置,之後按照提示進行操作,完成虛拟機作業系統的導入操作。如圖3-13所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

c)在virt-manager中拷貝現有虛拟機。在virt-manager中現有的虛拟機執行個體上單擊右鍵,在右鍵菜單上選擇“Clone”,如圖3-14所示。

之後,按照系統提示完成虛拟機克隆操作,就能夠以現有虛拟機為模闆建立新的虛拟機。如圖3-15所示。

 

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

2.?阿裡雲虛拟化上機實踐

使用阿裡雲進行虛拟機的建立與管理。

阿裡雲平台

步驟1:配置選型

阿裡雲推薦以下幾種配置組合方案,能夠滿足大部分使用者的需求。

入門型:1vCPU+1GB+1MB,适用于通路量較小的個人網站。

進階型:1vCPU+2GB+1MB,适用于流量适中的網站、簡單開發環境、代碼存儲庫等。

通用型:2vCPU+4GB+1MB,能滿足90%雲計算使用者,适用于企業營運活動、并行計算應用、普通資料處理。

理想型:4vCPU+8GB+1MB,用于對計算性能要求較高的業務,如企業營運活動、批量處理、分布式分析、APP應用等。

注意 這些推薦配置隻是作為開始使用雲伺服器ECS的參考。阿裡雲提供了靈活、可編輯的配置修改方式。如果在使用過程中,發現配置過高或過低,可以随時修改配置。

步驟2:建立Linux執行個體

這裡隻介紹新購執行個體。如果已有鏡像,可以使用自定義鏡像建立執行個體。新購執行個體的操作步驟如下:

①登入雲伺服器管理控制台。如果尚未注冊,單擊免費注冊。

②定位到雲伺服器ECS→執行個體。單擊“建立執行個體”。如圖3-16所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

③選擇付費方式,有包年包月或按量付費。關于兩種付費方式的差別,請參見計費模式。如果選擇“按量付費”,請確定賬戶餘額至少有100元。如無餘額,請進入充值頁面充值後再開通。注意:對于按量付費的執行個體,即使停止執行個體,也會繼續收費。如果不再需要該按量付費的執行個體,請及時釋放執行個體。如圖3-17所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

④選擇地域。所謂地域,是指執行個體所在的地理位置。可以根據使用者所在的地理位置選擇地域。與使用者距離越近,延遲相對越少,下載下傳速度相對越快。例如,如果使用者都分布在杭州地區,則可以選擇華東1。

在這裡需要注意:

不同地域間的内網不能互通。

執行個體建立完成後,不支援更換地域。

不同地域提供的可用區數量、執行個體系列、存儲類型、執行個體價格等也會有所差異,請根據業務需求進行選擇。

⑤選擇網絡類型。目前,大部分地域提供兩種網絡類型。網絡類型一旦選擇後,不能更改,是以請慎重選擇。

如果想使用經典網絡,選擇“經典網絡”。然後點選“選擇安全組”。如圖3-18所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

如果需要使用邏輯隔離的專有網絡,選擇“專有網絡”。如圖3-19所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

⑥選擇執行個體,包括執行個體系列、I/O優化執行個體和執行個體規格。關于執行個體規格的詳細介紹,請參考執行個體規格族。其中,執行個體系列II是執行個體系統I的更新版,能提供更高的性能,推薦使用。推薦選擇I/O優化,挂載後可以獲得SSD雲盤的全部性能。如圖3-20所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

⑦選擇網絡帶寬。如果選擇0MB,則不配置設定外網IP,該執行個體将無法通路公網。如果選擇了按量付費,同時選擇0MB固定帶寬,則同樣不配置設定外網IP,而且不支援0MB帶寬更新,是以請謹慎選擇。

按固定帶寬付費如圖3-21所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

按使用流量付費如圖3-22所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

⑧選擇鏡像。可以選擇公共鏡像,包含正版作業系統,購買完成後再手動安裝部署軟體;也可以選擇鏡像市場提供的鏡像,其中內建了運作環境和各類軟體。公共鏡像中的作業系統License無須額外費用(海外地域除外)。如圖3-23所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

⑨選擇作業系統。選擇作業系統的時候,應注意以下幾個問題:

最流行的伺服器端作業系統,強大的安全性和穩定性。

免費且開源,輕松建立和編譯源代碼。

通過SSH方式遠端通路您的雲伺服器。

一般用于高性能Web等伺服器應用,支援常見的PHP/Python等程式設計語言,支援MySQL等資料庫(需自行安裝)。

推薦使用CentOS。

⑩選擇存儲,如圖3-24所示。系統盤為必選,用于安裝作業系統。可以根據業務需求,選擇添加最多4塊資料盤,每塊資料盤最大32TB。使用者還可以選擇用快照建立磁盤,把快照的資料直接複制到磁盤中。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

設定執行個體的登入密碼和執行個體名稱,如圖3-25所示。請務必牢記密碼。也可以在建立完成後再設定密碼。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

設定購買的時長和數量。

單擊頁面右側價格下面的“立即購買”。

确認訂單并付款。

至此,執行個體建立完成,你會收到短信和郵件通知,告知執行個體名稱、公網IP位址、内網IP位址等資訊。之後,就可以使用這些資訊登入和管理執行個體。

步驟3:登入Linux執行個體

根據使用的本地作業系統,可以從Windows、Linux、Mac OS X等作業系統登入Linux執行個體。

步驟4:格式化和挂載資料盤

如果在建立執行個體時選擇了資料盤,那麼在登入執行個體後,系統需要先格式化資料盤,然後挂載資料盤。另外,還可以根據業務需要,對資料盤進行多分區配置。建議使用系統自帶的工具進行分區操作。

注意:雲伺服器ECS僅支援對資料盤進行二次分區,而不支援對系統盤進行二次分區(不管是Windows還是Linux系統)。如果強行使用第三方工具對系統盤進行二次分區操作,可能引發未知風險,如系統崩潰、資料丢失等。

本操作适用于非I/O優化+SSD雲盤Linux(Redhat、CentOS、Debian、Ubuntu)執行個體。

①使用管理終端或遠端連接配接工具,輸入使用者名root和密碼登入到執行個體。

②運作fdisk -l指令檢視資料盤。注意:在沒有分區和格式化資料盤之前,使用df -h指令是無法看到資料盤的。在下面的示例中,有一個5GB的資料盤需要挂載。如圖3-26所示。

③如果執行了fdisk -l指令後,沒有發現/dev/xvdb,則表示你的執行個體沒有資料盤,是以無需挂載。

④運作fdisk/dev/xvdb,對資料盤進行分區。根據提示,依次輸入n、p、1,兩次按回車,wq,分區就開始了。如圖3-27所示。

⑤運作fdisk -l指令,檢視新的分區,可以看到新分區xvdb1已經建立好。如下面示例中的/dev/xvdb1。如圖3-28所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述
《雲安全原理與實踐》——3.1 主機虛拟化技術概述

⑥運作mkfs.ext3 /dev/xvdb1,對新分區進行格式化。格式化所需時間取決于資料盤大小。也可自主決定選用其他檔案格式,如ext4等。如圖3-29所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

⑦運作echo /dev/xvdb1 /mnt ext3 defaults 0 0>>/etc/fstab寫入新分區資訊。完成後,可以使用cat /etc/fstab指令檢視寫入的資訊,如圖3-30所示。

《雲安全原理與實踐》——3.1 主機虛拟化技術概述

注意 Ubuntu 12.04不支援barrier,是以對該系統正确的指令是:echo /dev/xvdb1 /mnt ext3 defaults 0 0>>/etc/fstab。

如果需要把資料盤單獨挂載到某個檔案夾,比如單獨用來存放網頁,可以修改以上指令中的/mnt部分。

運作mount /dev/xvdb1 /mnt挂載新分區,然後執行df -h檢視分區。如果出現資料盤資訊,說明挂載成功,可以使用新分區了。

繼續閱讀