虛擬的世界:
談現代化機房管理

講師:朱孝國

何謂虛擬化(Virtualization)

Virtualization
  • 虛擬化可以打破層級相依的現況
  • 將資源抽象化、隔離、可分配、資源池。
  • 透過專屬 API ,查看或維護資源。
  • 提供監控及管理,動態地調整虛擬資源。
  • 虛擬化介於資源與使用者之間,鬆散耦合。

虛擬化的類別

  • 平台虛擬化 : 將電腦的主要資源抽象化,提供OS透過抽象層存取,如虛擬機器軟體(Oracle VM VirtualBox)。
  • 軟體虛擬化 : 軟體不需依賴特定的執行環境,如綠色軟體、桌面虛擬化。
  • 資源虛擬化 : 如磁碟分割、虛擬主機、網路、儲存設備。

虛擬化的類別

Virtualization technology

平台虛擬化的項目

  • 可讓一台實體主機上可運作多個作業系統,如 Redhat KVM, Citrix XenSource, QEMU
  • 針對平台虛擬化的程度,可分下列幾種類別
    • 完全虛擬化 : Host OS 無須任何修改
    • 硬體輔助虛擬化 : 硬體支援虛擬化指令
    • 半虛擬化 : Host OS 需修改核心
    • 部份虛擬化 : 只有部分資源虛擬化,無法安裝 Guest OS
    • 作業系統等級虛擬化 : 只能安裝與 Host 相同的 Guest OS

平台虛擬化的架構

  • 寄居虛擬化(Hosted)
    • 所有虛擬機器都在一個安裝好的OS上執行,透過虛擬化仲裁層(Hypervisor)向 Host OS 請求資源,效能通常較低,如Oracle VM VirtualBox。
  • 原生虛擬化(Bare-Metal)
    • 以 Hypervisor 取代OS,然後所有的虛擬機器都裝在這個 Hypervisor 之上,如 Redhat KVM、VMware ESX、Microsoft Hyper-V。

軟體虛擬化的項目

  • 應用程式虛擬化
    • 將應用程式與作業系統解耦合,執行檔 + runtime library
  • 高階語言虛擬化
    • 高階語言編譯為 intermediate 指令,如 Java 的 byte code, .NET 的 IL code,會在各平台透過 JIT Compiler 成為 object code

資源虛擬化的項目

  • 記憶體:虛擬記憶體
  • CPU:Intel VT-x、AMD-V
  • 網路:虛擬區域網路(VLAN), 虛擬私有網路(VPN)
  • 儲存:磁碟陣列(RAID), 網路儲存(NAS), 儲域網路(SAN)

伺服器虛擬化

  • 將平台虛擬化的技術應用在伺服器上
  • 為了效率考量,商業化產品通常也進行了資源虛擬化
  • 在單一實體伺服器上可運行多個虛擬伺服器
  • 將虛擬伺服器集中管理,並對硬體設備抽象化,硬體汰換不致服務中斷
  • 伺服器虛擬化技術早在1960 IBM 的大型主機中就使用了,1998年 VMware 公司引進 x86 平台

伺服器虛擬化前

  • 以原生架構(Bare-Metal)為例
主機虛擬化前

伺服器虛擬化後

主機虛擬化前

虛擬化仲裁層(Hypervisor)

  • 虛擬化仲裁層(Hypervisor) 又稱虛擬機監視器(Virtual Machine Monitor, VMM)
  • 位於硬體平台之上,Guest OS之下
  • 負責對虛擬機(Guest)提供硬體資源抽象化與資源的分配、調度與管理
  • 為 Guest 與 Host 、Guest 與Guest 之間提供隔離,與Guest 的集中管理

伺服器虛擬化的特性

  • 多實例:可運行多個 Guest
  • 隔離性:Guest 間不干擾
  • 封裝性:可運行在不同硬體上,確保相容
  • 即時遷移:Guest 可在服務不中斷的情況,從一台 Host 移轉到另一台 Host

x86 CPU的4個運行級別

  • x86架構的CPU先天並未考量將計算機資源分配給不同OS
  • x86 CPU分為 Ring 0 ~ 3 等 4 種層級
Ring 0~4

supervisor / user-mode

  • Ring 0 可以直接和硬體溝通讀取 CPU, Memory,IO devices
  • 系統的 Kernel 是運行在 supervisor mode(Ring 0).而 applications 則是運行在 User mode(Ring 3)
Ring 0 與 Ring 3

傳統 OS 的模式

  • 如果 user mode 的 Application 需要存取硬體支援時只能使用 supervisor(Kernel) mode 所提供的 system call 去存取
傳統 OS 的模式

0/3/3模型

  • VMM(Virtual Machine Monitor)
  • 將虛擬化當作應用程式來使用
  • Host OS 運行在 Privilege 0,VMM 運行在 Privilege 3,Guest OS 運行在 Privilege 3
User-mode hosted VM

0/1/3模型

  • VMM 也可以稱作 Hybervisor
  • VMM 運行在 Privilege 0 ,Guest OS 運行在 Privilege 1
Native VM

Ring -1

  • 將 CPU 的操作畫分成兩種不同等級的類型
    • VMX root operation(Ring -1)
    • VMX non-root operation
Intel VT-x

硬體輔助虛擬化後的情況

  • 新增一個「Ring -1」的層級,夾在傳統Ring 0和硬體之間
ring-1

記憶體虛擬化

  • Hybervisor要能夠管理實體主機上的記憶體,並按照每個虛擬機對記憶體的需求來分配資源
Intel VT-x

裝置與I/O虛擬化

  • 虛擬化的裝置介於Guest 與實體裝置之間,需來回轉譯指令與結果,但實體裝置類別實在太多,不是每一種實體設備都能有所對應
Device and I/O Virtualization

機房管理的困難點

  • 當硬體需要維護,其上的服務停止時間如何最短,犧牲假期與睡眠?
  • 硬體汰舊換新時,服務如何在新硬體設定妥當?
  • 為了維持服務穩定,一個服務一台伺服器,造成空間不足,空調,不斷電等電力消耗大增
  • 萬一硬體故障,服務如何在最快的時間啟動
  • 資料可備份還原,但整台伺服器的設定與驅動如何備份還原

機房虛擬化的優點

  • 降低營運成本:伺服器合併(Server Consolidation)後降低空間、網路、實體機器等管理與維護
  • 降低能源消耗:電力、空調
  • 提高應用相容性:不因實體機器不同而與驅動程式奮戰,封裝性
  • 加速應用佈署:快速設定服務所需要的作業環境
  • 提高服務可用性:實體機器故障時,服務自動移轉到別台 Host
  • 提升資源利用率:提高實體機器CPU、RAM、儲存與網路利用率
  • 動態調度資源:手動或自動將目前的服務不中斷地移轉到別台 Host

機房虛擬化的缺點

  • 採購成本高:導入時投入的成本高,除了伺服器、儲存設備、網路與軟體的授權費用都不便宜
  • 建置困難:期初建置時,須具備相當的虛擬化專業知識
  • 人員訓練不易:相較於傳統一台實體機器就是一個服務的觀念,要管理虛擬化的機房上手不易

執行虛擬化的前提

  • 評估現有的服務是否適合虛擬化:web, sql, streaming
  • 計算現有硬體的使用效率:PAL Tool, MRTG等軟體看看CPU, RAM, 網路...等的使用效率
  • 計算伺服器合併率:一台實體機上能放入幾個虛擬機 (pCPU與vCPU)
  • 預算採購 分享式儲存設備(Share Storage), 多port網卡, 光纖卡或10G網卡與相關線材,Switch 等

如何選擇執行虛擬化任務的伺服器

  • 考量到動態調度資源等 Live Migration / vMotion 等功能順利施行,至少要有相同指令集的實體機器 3 台
  • 宜購買具有多CPU, 多記憶體空間的實體機器,以提高伺服器合併率
  • 以 HP DL 580 為例注意安裝時要啟用BIOS中的 Execute Memory Protection 與 Virtualization Technology 功能
HP DL580

分享式儲存設備(Share Storage)

  • 沒有 Share Storage 可以共享的話,許多虛擬化的重要功能,例如高可用性, 動態調度資源與動態資源管理等機房管理永不停機的夢想都無法達成
    • 直接儲存設備(DAS, Direct Attach Storage)
    • 網路附加式儲存裝置(NAS,Network Attached Storage)
    • 儲存區域網路 (SAN,Storage Area Network)
DAS,NAS,SAN

結論

  • 本課程只概述虛擬化在機房應用時相關的概念,尚有許多應用值得了解
  • 虛擬化這個領域還在蓬勃發展中,它不但改變了機房或資料中心管理與維護的模式,更是雲端的基礎
  • 虛擬化過程中,Share Storage 扮演很重要的角色,資料就如同雞蛋放在同一個籃子中,備份與備援一定要演練
  • 虛擬化的相關設備都有授權過於高昂的問題,例如 VMware 原先以CPU數計價,目前改以RAM容量計價, 儲存設備額外加收的費用也一堆,例如: 連接介面 license, 同步抄寫 license,儲存容量 license,SAN Switch port license...等,要進行投入應進行詳盡評估