雲計算技術解析 Amazon EC2 的幕後

2021-06-23 00:45:22 字數 4340 閱讀 9881

今天新聞裡報導說,vmware 拆資 10 億 5 千萬美元,收購 nicira。nicira 是一家創業公司,專注於

網路虛擬化

[注],主打產品是 vswitch。

今天新聞裡報導說,vmware 拆資 10 億 5 千萬美元,收購 nicira。nicira 是一家創業公司,專注於網路虛擬化,主打產品是 vswitch。

雲計算[注]

產業是技術密集型產業,涉及的技術眾多。要了解雲計算產業格局,就必須了解各家企業主打產品,所提供的核心價值。從而理解各家企業,在整個雲計算產業鏈中所處的位置,以及與上下游企業的相互關係。

這個文章系列的後續章節,將詳細討論網路虛擬化的問題。nicira 公司在網路虛擬化方面,引領全球技術前沿。看來我們這個文章系列的寫作進度,得提提速了。

我們在上一節,討論了四種雲計算的服務方式,出租裸機、出租虛擬機器、出租**、出租行業服務。

amazon ec2

提供的雲計算服務,就是其中第二種方式,出租虛擬機器。

openstack 被視作是 amazon ec2 的開源版。openstack 自稱是「用來搭建雲計算平台的開源軟體」。如果追問一句,用 openstack 搭建好了雲計算平台以後,能提供什麼服務?答案是,如同 amazon ec2 一樣,提供虛擬機器租賃服務。

vmware 公司的產品,雖然名目繁多,但是也是圍繞搭建雲計算平台,提供虛擬機器租賃服務這個總目標。

所謂提供虛擬機器租賃服務,更明確的解釋方式是,使用者提交什麼輸入,雲計算系統返回什麼輸出。

輸入:使用者在任何電腦的瀏覽器上,通過訪問雲計算中心的網頁,先註冊,確定登入姓名和密碼。然後輸入希望租賃的虛擬機器的作業系統及其版本,還有虛擬機器的 cpu 的核心個數、記憶體空間、硬碟空間、實時頻寬、以及流量限額。

輸出:雲計算中心根據使用者的需求,生成相應配置的虛擬機器,然後把虛擬機器的網域名稱或 ip 位址,返回給使用者。使用者得到這些資訊後,可以通過 ssh、遠端桌面或者 vnc [1] 這樣的遠端訪問(remote access)工具,遠端登入並使用執行在雲計算中心的虛擬機器。

amazon ec2、openstack 和 vmware 是如何實現這個功能的呢?別著急看答案,先想想,假如我們是 amazon ec2、openstack 和 vmware 的系統設計師,我們該如何設計後台系統?

我們自己先 diy (do it yourself),然後把我們自己的設計,與 amazon ec2、openstack 和 vmware 的系統架構,做橫向對比,就容易領悟 amazon ec2、openstack 和 vmware 的系統設計的高妙之處。

當然,任何系統的設計,都會有不足之處。分析缺陷的乙個有效方法,也是橫向對比。

我們在自行設計 amazon ec2 那樣的系統之前,先想想,假如沒有全自動的後台系統,而是靠人工完成,該怎麼做?換句話說,當雲計算中心的系統管理員,收到使用者提交的請求時,他該執行哪些操作?

在雲計算中心開始為使用者提供服務之前,系統管理員需要預先做一些準備工作。當雲計算中心購置了伺服器裸機以後,系統管理員需要給這些裸機,安裝虛擬化系統。

安裝虛擬化系統包括以下三步。

1. 選擇虛擬化系統。

虛擬化系統是乙個軟體系統,目前常用的虛擬化系統有三種,vmware、xen、和 kvm。各種虛擬化系統的比較,可參考 [2]。

其中 kvm 是開源軟體,不僅操作簡單,而且系統執行效率較高。更難得的是,kvm 系統結構十分精巧、**量小。

2. 安裝虛擬化系統。

以 kvm 為例,在裸機上安裝 kvm,只需要做兩步。1. 安裝 linux os,2. 在 linux 上安裝 kvm,參考安裝手冊 [3]。

3. 設定網路。

執行在 kvm 之上的虛擬機器例項,與外界網路的資料傳輸,必須經過物理網絡卡。所以,需要做相應的系統設定,使虛擬機器例項與物理網**信。設定網路的操作步驟並不複雜,也參見安裝手冊[3]。

這裡有個疑問,為什麼在第二步「安裝虛擬化系統」的時候,不一步到位,把網路也設定好?其實,的確是可以兩步並一步,在「安裝虛擬化系統」時,順帶完成網路的設定。

安裝手冊 [3] 把網路設定單列出來,或許是基於以下考慮。

虛擬機器例項與物理網絡卡的通訊,需要用到 vswitch 技術,但是 vswitch 的實現方式有多種,包括 linux bridge 和 open vswitch 等等 [4]。

對於大多數情況,linux bridge 基本上能夠滿足需要,所以安裝手冊 [3] 只介紹了 linux bridge 的配置方法。但是也有觀點認為,在某些場合下,例如當虛擬機器跨機房遷移時,需要更強大的 vswitch 的技術實現,例如 open vswitch [5]。

關於 vswitch,以及 open vswitch、openflow 等等話題,我們將在後續有關虛擬網路的文章中,詳細討論。

當雲計算中心,添置了伺服器裸機之後,系統管理員需要執行上述三步操作。這些操作完成以後,新添的伺服器就可以為使用者,提供虛擬機器租賃業務了。

1. 當系統管理員接收到使用者提交的需求後,他根據用戶指定的作業系統及其版本,把相應的作業系統安裝光碟,插入伺服器光碟機。

或者,系統管理員先把作業系統安裝光碟裡的所有內容,匯出成為乙個 iso 映象檔案。這個 iso 映象檔案,不僅包含安裝光碟上的所有內容資料,而且記錄著每一段內容資料,儲存在光碟裡的哪乙個扇區(sector)。然後,他把這個 iso 檔案拷貝到伺服器本地檔案系統中。

2. 系統管理員根據使用者提交的,虛擬機器所需配置的 cpu 核心個數、記憶體空間、硬碟空間、以及實時頻寬,通過呼叫 linux 相應工具,啟動虛擬機器。操作步驟不複雜,也參見操作手冊 [3]。

這裡有兩個問題。

答案是,可以重啟這個虛擬機器例項,並且使用者先前儲存的所有內容檔案、安裝的所有應用軟體,以及在應用軟體執行過程中,產生的所有狀態檔案,通通被儲存,可以重新使用。

原理是,在使用者提交的申請租賃虛擬機器例項的請求中,有乙個引數是該虛擬機器例項占用的硬碟空間的大小。當系統管理員在某一台物理伺服器上,呼叫系統指令,讓 kvm 虛擬化系統,為使用者建立虛擬機器例項時,kvm 虛擬化系統在該物理伺服器的本地硬碟中,建立了乙個檔案,作為這個虛擬機器例項的映象檔案(image)。

這個映象檔案的大小,基本上等於使用者指定的虛擬機器例項占用的硬碟空間的大小。在虛擬機器例項看來,這個映象檔案,就相當於自己的硬碟,所以映象檔案又被稱為虛擬硬碟。在這個映象檔案或者虛擬硬碟中,虛擬機器例項可以設立不同的虛擬硬碟分割槽,分割槽中可以設立資料夾,資料夾中可以再設立子資料夾,或者存放檔案。

當先前的虛擬機器例項被關閉以後,可以在同一臺物理伺服器上,根據虛擬機器例項的名稱,重啟該虛擬機器例項。這時新的虛擬機器例項,將會找到先前那個虛擬機器例項所使用的虛擬硬碟,也就是映象檔案。

於是,當新的虛擬機器例項開啟以後,將會看到先前虛擬機器例項,它儲存的所有內容檔案、安裝的所有應用軟體、以及應用軟體在執行過程中產生的所有狀態檔案。

2. 問題二,假如先前的虛擬機器例項被關閉以後,能不能在另外一台物理伺服器上,重啟該虛擬機器例項?

答案是,可以在其它物理伺服器上,重啟虛擬機器例項。但是有兩個前提,1. 這兩台物理伺服器,必須安裝相同的虛擬機器系統,例如某版本的 kvm。2. 必須把先前那個虛擬機器例項的映象檔案,也就是它的虛擬硬碟,從第一台物理伺服器的檔案系統,拷貝或者掛載到(mount)到第二台物理伺服器的檔案系統中去。

原理是,假如我們有兩台電腦,當我們把第一台電腦的硬碟,拆下並安裝到第二台電腦上去。然後開啟第二台電腦,我們將會看到與第一台電腦一模一樣的作業系統、檔案、還有應用軟體。映象檔案對於虛擬機器例項來說,就是它的硬碟。遷移虛擬機器例項,可以通過遷移它的虛擬硬碟,也就是映象檔案來實現。

我們之所以不厭其煩地介紹手工設定虛擬化系統、並執行虛擬機器例項的步驟,是因為 amazon ec2、openstack、以及 vmware 等等系統,它們的主要功能,是讓軟體系統替代人工,自動化地去完成這些操作。

類似於 amazon ec2 的自動化系統並不難設計。事實上,前述的準備工作,也就是安裝虛擬化系統的三個步驟,是在添置物理伺服器時完成的,是一次性的操作,所以手工完成這些準備工作,無妨大雅。

真正需要實現自動化的,僅僅限於提供虛擬機器租賃業務的兩個步驟,1. 提供作業系統安裝光碟,或相應的 iso 檔案,2. 根據使用者提交的虛擬機器資源配置,建立虛擬機器例項。

我們在下一節,將自行設計這樣一套系統,然後把它與 amazon ec2、openstack 等等橫向對比。大家會驚奇地發現,我們自行設計的系統,在總體上,與 amazon ec2、openstack 等等系統非常相似。

雲計算技術

雲計算基礎設施架構 雲計算基礎設施平台一般分為以下幾層 物理設施,虛擬化,管理,服務提供。物理設施被虛擬化,提供乙個靈活的資源池體提高資源利 用率。管理層負責物理資源和虛擬資源池的管理 部署 監控 報警等。服務提供層組合管理層的功能提供某種形式的服務。雲計算存在的難題 連續高可用性 某個集群的失效處...

雲計算技術原理

由於雲計算分為 iaas paas 和saas 三種型別,不同的廠家又提供了不同的解決方案,目前還沒有乙個統一的技術體系結構,對讀者了解雲計算的原理構成了障礙。為此,本文綜合不同廠家的方案,構造了乙個供商榷的雲計算體系結構。這個體系結構如圖 所示,它概括了不同解決方案的主要特徵,每一種方案或許只實現...

雲計算技術金融應用規範 雲計算技術與應用專業介紹

雲計算技術與應用專業 本專業培養具有一定的科學文化水平 良好的職業道德和工匠精神 較強的就業創業能力,具有支撐終身發展 適應時代要求的關鍵能力,掌握雲計算技術與應用的專業知識和技術技能,面向軟體和資訊科技服務業 網際網路和相關服務行業雲計算與服務崗位群 技術領域,能夠從事雲計算系統部署與運維 雲計算...