假設我們有一個多人游戲網站,其中的一個服務器群包含大量的應用程序和消息服務器,它們負責支持各個玩家在多人游戲中的交流,以及生成玩家在太空射擊游戲中使用的可視化Web界面。
這個服務器群的服務器實際上位于一臺4U服務器上創建的虛擬環境中。(U是指RU,即機架單元,主要用于表示機架上掛載的計算設備高度。1U就是1.75英寸。)
在這個例子中,架構師(我)并沒有購買4臺獨立的1U服務器,而是決定節省數據中心的電源和空間,只購買了一臺高容量4U主機。與4臺連網的獨立1U服務器相比,它實際上有相同甚至更高的計算能力、磁盤空間和內存。此外,它還能減少網絡過載和延遲(背板吞吐量要比銅線或光纖速度更快,更不用說通過交換機產生的處理開銷了),而且它也能簡化跟蹤過程。在實現自動化之后,服務器第一現場的管理就變簡單了,因此自動化也更容易實現。
現在,我只有一臺4U主機,所以我希望跟蹤執行不同功能的各種主機。例如,我不希望數據庫服務器或數據存儲服務器所運行的操作系統與應用或Web服務器相同,從而可以簡化配置信息的跟蹤操作。而且,數據庫服務器或數據存儲服務器可能的確需要安裝與Web服務器或應用服務器完全不同的操作系統。在4U硬件層次上添加一個虛擬層,就可以實現更靈活的服務器分配管理和配置管理。虛擬化可以實現物理資源的抽象,如內存、磁盤和CPU,它有很大的靈活性,如將一臺主機劃分成多臺主機。在這個例子中,我知道了可用的CPU核心數量,然后根據核心數量將一臺物理主機劃分成多個虛擬機。例如,如果4U服務器有16個CPU核心,那么我可能會將它劃分成4-8個分別有24個核心的虛擬機,或者讓Web服務器與應用服務器使用2個核心,而數據庫數據存儲服務器使用4個核心。
虛擬化提供了另一種創建與設計Web基礎架構自動化系統的方法,而且這種方法更為簡單。每一個虛擬化平臺都各不相同,它們也在不停地進化中,但是最重要以及最基本的事實是,每一個虛擬機實際上只是一個或多個文件,這一點一直都沒有改變。磁盤驅動器劃分、虛擬機的文件、虛擬機硬件的配置信息都存儲在一個或多個文件中。因此,備份狀態信息變得非常簡單,許多虛擬化和存儲供應商將它稱為實時快照。這種快照通常是對服務器的文件系統或存儲在文件系統的虛擬機執行塊級復制,我們不會主動回滾或前滾系統,但是有時候會出現意外情況,所以在對Web基礎架構執行大范圍改動時,我們一定要保持頭腦清醒,穩妥地處理。
一旦在這個場景中實現了虛擬化,我們就可以非?焖俚亻_始在基礎架構中構建、關閉、重建和部署應用程序和服務器。虛擬化使我們能夠在一夜之間徹底改變服務器群的功能。例如,有一個游戲服務器應用程序,然后我們決定在游戲中通過一個電子商店銷售品牌產品,那么就可以完全重建整個基礎架構,或者通過關閉一些游戲服務器來清理資源,然后將它改造成在線游戲網店。因為有了虛擬化,所以我們不需要安裝機架和物理服務器,也不需要從辦公室驅車前往遙遠的數據中心。部署了虛擬化之后,現在只需要選擇通過分配系統部署的操作系統,然后選擇配置管理系統將要安裝的應用程序,就可以安裝上線新的網站制作應用程序。在現代競爭環境中,最重要的是技術、產品和業務部門能夠快速響應,在幾天或幾周時間內完成新產品的測試和部署上線。