當前位置:
首頁 > 最新 > 對於雲,你了解多少

對於雲,你了解多少

前言

到底什麼是雲(雲計算)

有很多關於雲的介紹,然而,大都是用比喻的形式來介紹雲的屬性。比較有名的比喻是餐館、和電網。但是,雲畢竟不是餐館、或電網,如果只有這些比喻,仍然不清楚到底什麼是雲。本文試圖不用任何比喻,直接從普通的PC電腦入手,逐步遞進,來介紹雲的構成。你只需要具有初中文化,並對CPU、內存、硬碟等計算資源有些基本的概念,就可以了。

一、傳統的電腦

當你啟動一台個人電腦(PC機)時,電腦所做的事,就是把硬碟上的操作系統(OS,本文以微軟的Windows 8為例,但也可以是Unix、Linux等等)的一些基本的控制程序調入到電腦的內存中去。一旦這個過程完成,這台電腦就完全由Windows 控制了。你所謂的電腦,其實就是你在上面工作的Windows。

對Windows而言,它所賴以運行的,只有電腦的處理器(CPU)、內存、和存儲設備(硬碟)這三個要素(或者說三項資源)。電腦還有機箱,但那只是起著封裝、固定、再加供電的作用;電腦還有主板,但那只是起著電腦內各主要部件通信連接的作用。當然,你可能還需要網路連接, 但那只是一項外在資源,不是Windows本身所必需的。作為PC機,你還需要鍵盤和顯示器等外部設備來直接在機器上工作。如果是伺服器,則不需要鍵盤和顯示器,一切都可以是遠程登錄訪問。

所以,一台電腦實質上就是在CPU、內存、和硬碟上運行的Windows。當打開Windows 的任務管理器,你就會發現,CPU和內存大部分是閑置的。特別是CPU,其利用率通常不到10%。Windows在硬碟佔有的空間一般就是幾個GB。 也就是說,一個Windows獨佔了電腦的全部資源,而大部分資源又都是閑置的。

那麼,有沒有這種可能:不讓一個Windows單獨控制一台機器,而是在一台機器上安裝多個操作系統,並且讓它們同時地運行?

二、虛擬化

當安裝一台電腦的時候,你不再是安裝普通的Windows,而是安裝一個資源調度程序,也叫「監控程序」 (Hypervisor)。這個監控程序很小。取決於哪個廠家的產品,小的只有100多兆位元組, 大的也只有幾個G的位元組。 監控程序安裝完成之後,會得到一個工作界面,你通過這個界面設置一個網路連接(IP地址)。這個界面很簡單,多數情況下你可以通過瀏覽器從別的機器上訪問這個界面。

前面說了,一個Windows機器,實質上就是一個由CPU、內存、和硬碟組成的一個組合體。通過監控程序的界面,你可以建立多個組合體。每個這種組合體,就是一台模擬的電腦。當監控程序創建一個模擬的電腦時,它實際上只是創建了兩個文件:一個是關於這個組合體的配置信息(被分配了多少CPU、多大內存、多大的硬碟);另外一個文件,這個模擬電腦的「硬碟」,這個模擬的「硬碟」實際上就是一個封裝的文件(在有些情況下,也可以是幾個文件)。

當你點擊「開機」來啟動這個模擬的電腦的時候,監控程序開始實際為它分配CPU和內存、並且啟動它。當然,這「台」模擬的電腦在第一次啟動的時候,是沒有安裝任何操作系統的「裸機」,那個封裝的文件也是空的,這時你可以進行正常的系統安裝(比如 安裝Windows)。

對Windows而言,它不知道真假,它反正能夠得到所需要的CPU、內存、和硬碟就可以正常運行了,一切都和真的機器一樣。對監控程序而言,這個 Windows不是直接和硬體打交道的,一切資源都需要監控程序來調度和分配,所以這「台」Windows機器(組合體)就是一台虛擬的機器,簡稱VM。這種通過監控程序把硬體的機器、同操作系統分開的過程,就是虛擬化。

當監控程序創建一個VM時,它就給VM配置資源的大小,比如2個1GHz的CPU、2GB內存、和100GB硬碟。這樣,這個VM(Windows)就以為自己擁有了雙核的1GHz CPU、2GB內存、和100GB 硬碟。但這只是Windows所能使用資源的上限。Windows在實際運行中並不需要消耗那麼多,監控程序只是給它按需分配實際消耗的資源,比如 0.1GHz CPU、0.5GB 內存、和20GB 硬碟。表現在實際的硬體消耗上,這20GB的存儲量,就是實際硬碟上的那個20GB大小的封裝文件。

一台電腦,可以通過監控程序創建幾個、幾十個、甚至上百個VMs。比如,一台擁有16GB內存的PC機,你可以創建10個VMs,給每個VM分配4GB內存。看似總共分配出了40GB的內存,但PC機的實際內存只有16GB。

通過虛擬化,一個單台的硬體機器可以同時運行多個虛擬的機器(VMs);更重要的是,雖然一個虛擬的Windows的系統盤(C盤)上有成千上萬個系統文件,但它表現在硬體的存儲設備(硬碟)上,只是一個或幾個打包的大文件。當你把這一個或幾個大文件移到別的地方,整個VM就移走了。

三、配載調配和平衡

如果虛擬化的不只是一台機器,而是A、B兩台,並且兩台機器都共享一個大的存儲設備(硬碟陣列、或硬碟庫),那會怎樣?

前面說了,一個VM就是一個(或幾個)大文件。如果這個大文件放在共享的存儲設備上,A、B兩台機器上的監控程序都能看到這個VM。那麼,這個VM既可以在A機器上運行、也可以在B機器上運行。所謂在哪台機器上運行,就是通過那台機器上的監控程序,把Windows 啟動到其分配的虛擬內存就是了。

假設VM1到VM10 等10個VMs在A上運行,VM11到VM20 等10個VMs在B上運行。現在要對A進行關機維護,那麼它上面的10個VMs就可以在線移動到B上,而且所有10個Windows都保持不間斷,用戶根本意識不到變化,因為所移動的東西,只不過是內存中的數據而已。

這個移動不是由A、或B指揮的,而是由裝在另外一個C機器上的專門的數據中心管理軟體指揮的。這個數據中心管理伺服器C, 可以監控A和B的運行狀態,一旦出現資源緊張,它可以自動觸發在線遷移,把一個或多個VM移到對方的機器上運行。當然,這裡需要一個事先設定的閾值標準。如果是創建新的VM, C可以自動決定把新的VM放在哪台機器上。這裡只是假設A、B兩台機器。實際上,C可以管理幾十、幾百、上千台機器。共享的存儲設備也不止一套,可以是多套(VMs也可以在不同的存儲設備間移動,只是移動的時間較長而已)。C通過各機器上的監控程序,間接管理所有的資源。

至此,雲的雛形出現了,但還不是雲。因為,所有的這些管理和控制,都還是數據中心自己的職責。用戶還無法對所需要的資源進行自主管理。

四、雲的最後形成

數據中心伺服器C可以不止一個,可以有多個。它們創建和管理的一些VMs也許可以供外界的用戶訪問(比如網站),但用戶無法直接管理VMs,更無法管理C提供的服務、或資源。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機房百科 的精彩文章:

TAG:機房百科 |