桌面虛擬化:虛擬環境的管理和維護
原創虛擬化已經從一種需要解釋的異類技術演進成為我們大多數人生活中必不可少的可行技術。或許您早已將此技術應用于質量保證測試、開發、Web 設計或培訓等領域。也許您是嘗試新技術的前驅,通過部署虛擬基礎結構,甚至部署使用 Amazon.com、Rackspace Inc. 或其他云計算供應商提供的“云”虛擬化的基礎結構,引領技術潮流。
無論您當前是否正在使用虛擬化技術,只要您曾經使用過,您無疑都會認識到此種技術自身面臨著一些挑戰,正如維護物理硬件也處于兩難境地那樣。很多問題是不同的,但也有一些問題是相似的。
處理虛擬機監控程序
您或許聽說過一度流行甚廣的“虛擬機監控程序”(hypervisor) 一詞。它已經成為虛擬化領域的一大熱門術語。但虛擬機監控程序并非新鮮事物。只要我們使用過虛擬機 (VM),就必然使用過虛擬機監控程序。事實上,IBM 早在上世紀七十年代就創造了“虛擬機監控程序”一詞。
虛擬機監控程序是一種軟件,它為在系統上“虛擬”運行的來賓提供一套虛擬化硬件。它為來賓操作系統實現抽象的物理硬件。在過去幾年中,在 x86 平臺上運行的“1 類虛擬機監控程序”(包括 Microsoft Hyper-V 和 VMware ESX Server)得到了很大發展,這也導致產生一些混淆。大多數人使用的虛擬機監控程序(特別是對于客戶端系統)被稱為“2 類虛擬機監控程序”。兩種虛擬機監控程序的差異何在?
1 類虛擬機監控程序直接在主機硬件上運行,而無需“主機操作系統”。Microsoft Hyper-V 和 VMware ESX Server 是 1 類虛擬機監控程序的常見例子。
2 類虛擬機監控程序需要運行主機操作系統。通常,2 類虛擬機監控程序主要作為用戶模式應用程序在其主機操作系統上運行。Microsoft Virtual PC 和 VMware Workstation 是 2 類虛擬機監控程序的常見例子。
在大多數情況下,對于任何“始終運行的”工作負載(例如,虛擬化 SQL 或文件服務器),您都希望使用 1 類虛擬機監控程序。至少,1 類使用的資源要比 2 類少。但是,它可能需要用戶登錄才能啟動(取決于主機),這對關鍵任務系統而言并非一個好的選擇。相反,2 類虛擬機監控程序更加適用于“按需”虛擬機。這種類型的角色包括用于測試、應用程序兼容性或安全訪問的虛擬機。
#p#
虛擬化可以節省哪些資源?
顯而易見,虛擬化可以節省花費在硬件上的資金,但事情并非這么簡單。如果您有兩個可機架安裝的 1U 規格的服務器系統,您運行這兩個相同的工作負載,將它們都加載在一個 1U 系統中,當然可以節省前期的硬件成本,但其中還有奧妙。如果您使用這兩個相同的服務器系統,兩者可以在兩臺具有雙核 CPU、2GB RAM 和 160GB SATA 硬盤的 1U 服務器上正常運行。
現在,您要將這兩個工作負載放在一臺具有相同硬件配置的服務器上運行,則必須將資源平分。對于 2 類虛擬機監控程序,您通常需要更多資源。
在規劃如何將工作負載從物理機整合到虛擬機時,要考慮到 CPU、RAM 和硬盤所需的成本。虛擬化整合通常稱為“垂直堆棧系統而不是水平堆棧系統”,因為您將消除對 OEM 提供的多個 物理系統的依賴。因而,您對單個系統的要求遠高于虛擬化之前的要求。這會導致系統管理成本急劇攀升,而很多組織在倉促采用虛擬化技術時并未考慮到這一成本。
#p#
虛擬化的成本有多高?
過去,好的虛擬化軟件需要花費大量資金。隨著時間的推移,虛擬化市場的競爭日趨激烈,您能夠以相當低的成本獲得眾多類型的虛擬化軟件。但是,大多數關鍵企業功能仍然需要花費資金,包括主機操作系統或虛擬機監控程序。
根據您打算在虛擬機上運行的工作負載,您可能需要研究故障轉移。來賓操作系統偶爾會被破壞,主機硬件可能發生故障。虛擬化不會讓硬件變得更加可靠。它無助于降低故障機率。對于關鍵任務系統,您仍然 需要制定一個備份來賓操作系統的策略,無論是備份虛擬機容器本身(強烈建議)還是其中包含的文件系統。
即便您只要虛擬化一組來賓操作系統,以便在 2 類虛擬機監控程序上進行測試和開發,您仍然需要分配足夠的 RAM,以同時運行一個或多個來賓(在主機操作系統之上)。在虛擬化管理中,最容易被忽略的問題是磁盤空間消耗。
我曾經使用虛擬化進行安全測試。我在虛擬機上運行可能的攻擊,監控其運行,使用虛擬機監控程序的撤消或快照功能來回滾到早期版本,未沒有出現任何問題,因此只能重復不斷地進行測試。連續不斷地重復進行撤消更改的唯一后果是磁盤空間很快失去控制。最終結果可能是超出來賓操作系統中硬盤的實際容量。
我經常使用的一個虛擬機有 50GB 的硬盤映像,而這次直到我嘗試移動映像(包含六個 VMware 快照)時,我才意識到映像大小嚴重超出控制,占用的磁盤遠超出 125GB。
下面是最大程度地減小虛擬化的影響/成本的一些最佳實踐:
◇ 如果您在具有“撤消”功能的 2 類虛擬機監控程序上使用 Windows 客戶端操作系統,則無論如何都要禁用 Windows 系統還原。否則,每次當您對系統進行更改時,占用的磁盤空間都會增長。
◇ 如果您執行步驟 1,請嚴格界定在什么時候要創建撤消點。
◇ 如果您在進行安全/攻擊測試,請不要 依賴 Windows 回滾到更早的時間點。請使用虛擬機監控程序的撤消功能,因為它通常不會受到與還原點相同的影響。
◇ 在運行來賓操作系統時,只使用必需的最少資源。
◇ 確保分配足夠的 RAM,避免客戶端操作系統不斷將數據從 RAM 交換到磁盤。這樣會減慢主機和 所有來賓的運行速度。
◇ 在內部對來賓進行碎片整理,然后在外部對其進行碎片整理(請參見下面關于碎片整理的部分)。這兩項操作應定期執行。
#p#
虛擬機的廣泛應用
正如您所看到的那樣,管理虛擬機很快成為一大難題。虛擬機易于復制可能是一大優點,但也會導致很大的問題,包括在管理和保護來賓、跟蹤 Windows(Windows Vista 之前的操作系統,在 Windows Vista 中,新的密鑰管理功能實際上在這方面很有好處)的操作系統許可證、確保商業機密不會泄露等方面。對于居心不良的員工而言,通過 USB 閃存驅動器或 USB 硬盤驅動器惡意復制虛擬機要遠比嘗試惡意復制整個桌面系統簡單得多。
在精通技術的群體(了解虛擬化內部原理的人員)中,虛擬機廣泛應用所引起的問題尤為顯著。通常,虛擬機在客戶端來賓中使用更加普遍,而不是在虛擬化服務器來賓中。
#p#
系統管理
所有公司都開始重視幫助用戶重新獲得對虛擬化系統的控制。一直以來,Microsoft 和 VMware 對于系統管理的重視程度始終超過虛擬化本身的價值。系統管理很重要,因為您并沒有擺脫系統,而只是虛擬化系統。
許多系統管理產品在虛擬機上的運行非常出色,但需要一些新功能來實現虛擬化系統的更智能化的管理,包括喚醒和更新來賓,如果沒有這些功能,將無法進行更新。在這個零時差攻擊的時代,此類功能至關重要。您最不愿意看到的一種情況是:使用頻率較低的虛擬機成為企業網絡上的本地僵尸網絡代理。
系統管理方法必須考慮到您有主機和來賓,確保對它們進行相應的更新并明晰各自的角色。您最不希望出現的一種情況是:設計欠佳的修補程序管理解決方案更新您的虛擬機監控程序,在工作時間進行更新,停止系統運行以進行重新啟動,導致四個關鍵任務的來賓服務器中斷運行。
您還需要通過與以前相同的方式實現這些系統的還原。這是因為即使系統已經過虛擬化,也有可能因注冊表損壞或整個虛擬機損壞而導致系統崩潰。與當前物理系統相同,虛擬系統也需要同樣的備份。
另外要注意的是您的虛擬機監控程序是否執行撤消功能。在考慮修補程序管理時,要牢記這一點。您很可能在周二安裝修補程序,在周三更新來賓,將其回滾到周一的撤消點,其結果是在理論上“受保護”的時間內遭受零時差攻擊。這是一個很大的問題,因為撤消技術的工作方式是通過虛擬機監控程序將整個磁盤回滾到較早的時間點,這意味著您將失去任何 Windows 和應用程序修補程序,以及所有的反病毒簽名。
#p#
安全軟件
除了撤消功能之外,您需要為虛擬來賓提供與物理機相同的安全保護以及其他保護功能。在入站威脅方面,虛擬機與物理機同樣易受攻擊,這一點沒有任何區別。
但有一個問題非常關鍵:非關鍵虛擬機(并不是始終運行)安裝修補程序和反病毒更新通常會有延遲。因此,它們會成為零時差攻擊的一個無法跟蹤的很大目標。正因如此,您必須確保使用一種能夠充分考慮上述問題并可以修復虛擬系統的成熟系統管理解決方案。
出站威脅的情況又有所不同了。虛擬機可能是盜竊知識產權的通道。應該明白,在不受控制的主機上運行的虛擬機可能產生數據漏洞,這一點非常重要。首先,如果虛擬環境可以輕松復制,則會出現問題,特別是在您必須遵守有關控制數據訪問的任何法規遵從要求的情況下,正如我在 2008 年的一篇文章中討論的那樣 (http://technet.microsoft.com/magazine/2008.06.desktopfiles)。
其次,您可能還記得我在關于 RMS 和 IRM 的文章 (http://technet.microsoft.com/magazine/2008.11.desktopfiles) 中曾經說過,這些控制方法依賴于操作系統來防止屏幕捕獲和打印等。然而,這些控制方法并未延伸到虛擬機監控程序,這意味著如果受 RMS 保護的內容顯示在來賓操作系統上,則主機操作系統仍然可以打印各個屏幕截圖或創建屏幕的視頻捕獲。
雖然在技術上不是模擬,但它并非完全不同于“模擬漏洞”。我不知道有任何方法可以防止 DRM 控制的內容受到此種方式的攻擊。事實上,即使您可以做到,您仍然必須面對防止用戶使用照相機或攝像機執行相同“攻擊”的問題。
#p#
磁盤碎片整理
虛擬機上的磁盤碎片整理是一個獨特的挑戰,有以下幾個原因:
◇ 您通常進行兩個級別的磁盤碎片整理,第一是在虛擬化磁盤容器本身內部進行的磁盤碎片整理(每個來賓在其客戶端看到的磁盤碎片整理),我將其稱為“主要磁盤碎片整理”;第二是對包含虛擬化磁盤(跨主機操作系統的各個磁盤)的實際文件進行的磁盤碎片整理,也稱為“輔助磁盤碎片整理”。
◇ 使用某些虛擬化產品時,起初只需要最小的磁盤大小,但會“按需”增長,它們可能導致進行輔助磁盤碎片整理。
◇ 撤消操作不僅會很快導致磁盤膨脹,還會導致進行大規模的輔助磁盤碎片整理,因為它會消耗更多的主機操作系統磁盤空間,每個來賓都會開始爭奪可用的扇區。
◇ 隨著磁盤按需增長,當需求減少時,大多數卻不具備縮減的能力。如果您分配了 40GB 磁盤空間,開始僅使用 10GB,但隨后增加到需要 35GB,則磁盤將不會自行還原,這意味著您會有一個大型文件,進行輔助磁盤碎片整理的可能性要高得多。
虛擬磁盤容量很大,其更改、縮減或增長速度快,易受兩種類型的磁盤碎片整理的影響,這些因素意味著您對虛擬磁盤的維護應該比物理系統更加認真。
以下是保護文件的一種方法:
◇ 最大程度減少任何撤消技術的使用,因為它會導致所有磁盤文件的過度增加,不便于在來賓中進行碎片整理,盡管主機可對包含虛擬磁盤的文件進行磁盤碎片整理。
◇ 從一開始就在來賓上使用功能良好的碎片整理產品,并定期運行該產品。
◇ 如果您使用按需磁盤擴展技術:
a. 按以下方式使用 Sysinternals sdelete.exe 實用程序:sdelete –c drive_letter,其中 drive_letter 是您要清零的卷。例如,sdelete –c C: 可在碎片整理后將所有未使用磁盤清零。
b. 使用任何虛擬磁盤縮減技術(如果您的供應商提供),將虛擬磁盤容器減少到最小大小。
◇ 對包含虛擬機的主機操作系統卷進行磁盤碎片整理。
很多人不重視磁盤碎片整理。我在 2007 年發布的關于磁盤碎片整理的文章 (technet.microsoft.com/magazinebeta/2007.11.desktopfiles) 收到了大量讀者郵件,這些郵件證明大家通常對這個主題存在誤解,但不應該忽略它,即便對于虛擬化系統。
隨著虛擬化技術的重要性和使用的持續增加,我們很容易跟隨使用虛擬化技術的潮流,而不了解其成本以及意想不到的固有復雜性。本文應該有助于您了解在遷移到或使用虛擬化技術需要考慮一些額外成本。
作者簡介:Wes Miller 在位于德克薩斯州奧斯汀市的 CoreTrace ( CoreTrace.com ) 擔任產品管理主管。他之前任職于 Winternals Software,并且曾在 Microsoft 擔任項目經理一職。您可通過以下電子郵件與 Miller 聯系: technet@getwired.com 。
本文來源:微軟TechNet中文站