超載

虛擬機全稱為Virtual Machine(圖2),是一種基于物理硬件系統(位于外部、內部)、充當虛擬電腦系統的虛擬環境,簡單說,虛擬機會模擬一整套硬件設備,包括處理器、內存、網絡、硬盤、顯卡等等硬件設備,使之可以分配給不同的虛擬系統(如Windows 10)使用。
虛擬機的好處是隔離、獨立于系統的其余部分,而且單一硬件(電腦)上可以規劃安裝有多個虛擬機(圖3)。使用者可以根據自己的需要在主機服務器之間移動這些虛擬機,更有效的利用硬件資源。也就是說,我們可以使用一臺電腦當做主機,通過虛擬機安裝幾個不同的操作系統,然后供局域網內其他設備、用戶使用。每個操作系統的運行方式與通常操作系統或應用在主機硬件上使用的運行方式相同,因此在虛擬機中獲得的最終用戶體驗與物理機上的實時操作系統體驗也幾乎毫無二致。

虛擬化技術允許多個虛擬環境共享一個系統。虛擬機監控程序負責管理硬件并將物理資源與虛擬環境分隔開。來自物理環境的資源根據需要進行分區后,會分配給虛擬機使用。虛擬機運行時,當使用者或程序發出需要從物理環境獲取更多資源的指令,虛擬機監控程序會調度物理系統的資源請求,以便虛擬機的操作系統和應用可以訪問共享的物理資源池(圖4)。

服務整合是使用虛擬機的一個重要因素,這和商業環境下使用虛擬機還是有些許區別。除開游戲、視頻編碼等工作不談,日常應用中,電腦的“閑置系統資源”還是很多的,如何充分發揮電腦硬件、榨干每一份性能,虛擬機就可以實現這個“愿望”。此外,整合服務也是另一個虛擬機走入日常用戶使用的重要原因。比如我們需要一個存儲服務的同時還要有個性化的網絡管理,那么就可以使用虛擬機建立一個NAS系統的同時,分配一部分硬件資源給OpenWRT,前者主要使用的硬件資源在硬盤、磁盤控制器,后者主要使用CPU的資源,這種差異化的使用需求正好對應了電腦硬件資源中不同的資源配置,充分發揮電腦硬件的性能——你無需單獨為某一個應用服務購買添置新的硬件(圖5)。

同時,這樣做的好處還有一個,就是虛擬機之下的各個系統互相之間獨立存在的,即便出現問題,恢復的成本,無論是精力投入還是數據恢復,都要比傳統的單一系統方便許多(快照功能、備份功能),而且不會影響到其他服務中的虛擬系統。
既然虛擬機要分配資源,那就需要一定的硬件資源來供虛擬機分配。在處理器部分,多核心處理器、尤其是多核心多線程的處理器十分有意義(圖6),筆者推薦至少電腦擁有四個核心以上的處理器,這樣再考慮將其用作虛擬機主機使用,一般而言,虛擬機上都會存在至少兩個或者更多的虛擬系統,分配不同的核心給與不同虛擬機使用十分必要。至于為什么要四個核心的處理器,主要是因為至少要預留一個處理器核心供虛擬機自身的資源消耗使用,其次,每一個虛擬機至少能夠分配到一個處理器核心負責,也就是所謂的“專人專職”。當然了,核心數量越多,所能分配給虛擬機中每一個系統的處理器資源就越多。當然,最根本的是處理器還需要支持虛擬化技術,例如英特爾的VT-X。
其次,就是內存部分了(圖7),筆者強烈推薦日常使用虛擬機的電腦內存不要低于16GB,當然如果安裝的都是極為輕量的虛擬系統可以酌情降低至8GB。同處理器的道理一樣,足夠的內存資源分配給不同的虛擬系統也可以讓其更好的工作。就日常的使用經驗來看,Windows 7操作系統需要4GB內存、Ubuntu操作系統需要4GB內存、OpenWRT(路由器系統)需要512MB內存、NAS類系統普遍需要最少2GB至4GB的內存。
最后是硬盤部分,這個部分的資源主要是在兩個部分,并發的數據吞吐需求以及容量需求。如果是機械硬盤,最好是4T B以上、轉速達到72 0 0 RPM的CMR /PMR機械硬盤(圖8),畢竟在尋道時間,并發數據吞吐上,達到這個級別的硬盤性能不會很差,應對虛擬機的操作要求可以初步滿足。當然如果可能,最好還是使用M.2接口的固態硬盤(圖9),容量不要低于120GB,方便更自如的分配給不同的虛擬機系統使用。Windows至少分配30GB左右的空間、Ubuntu也需要差不多至少30GB的存儲空間,諸如OpenWRT之類的輕量級系統200MB至4GB就足夠了。注意,筆者這里說的是實用空間,不是最小安裝需要的空間。此外,硬盤本身要有一定的存儲空間余量,方便之后的調整、文件暫存等實用需求。

處理器、內存、硬盤的硬件資源多寡,決定了虛擬機上安裝系統的性能優劣,這是根本所在。其他硬件資源,則屬于“錦上添花”——當然顯卡是個例外。如果你對虛擬機中圖形性能有要求,自然是要加裝一塊性能夠用的顯卡。而且,一般來說有這種特定的使用需求,顯卡需要硬件直通到某一個虛擬機上讓其“專屬”使用。
什么是CMR/PMR機械硬盤?
CMR的中文意思是傳統磁記錄方式,采用該技術的硬盤會在磁道間保有保護間距(圖10),數據不會被重復疊寫,安全穩定性更高。而PMR是垂直磁道記錄技術(圖11),后來隨著技術的發展,PMR細分出了CMR和SMR,一般我們認為PMR=CMR。只有采用CMR技術的機械硬盤另一個特點是緩存比SMR技術的硬盤更小一些。在讀寫性能上,尤其是寫入性能,PMR/CMR技術的機械硬盤明顯比采用SMR技術的機械硬盤來得好,尤其是SMR技術的機械硬盤行將存滿數據的時候,寫入性能十分堪憂。而且在使用壽命上,PMR/CMR技術的機械硬盤無疑更加出色一些。SMR技術的機械硬盤是可以在同等技術規格之下,容量更大一些,再無其他優點。


ESXiESX i是VMWare v Sp he reHyper visor套件之下重要組件,或者說是核心組件(圖12),ESXi只是vsphere架構中的Hyper visor這一層。vSphere包含VC,NSX,VSAN等一整套軟件。它的前身是ESX,2011年,VMware推出了ESXi,即為當前應用最廣泛的虛擬化產品。同樣,ESXi也是裸機安裝在物理電腦上的,他做的改進是將虛擬化層中繁雜的linux層剔除,只保留了VMkernel虛擬化內核對資源進行管理,也就是說,它和Linux沒有很么關系了(以前是基于Linux的)。這樣,便大大的額降低了虛擬化層的大小,同時也減小了虛擬化層對物理層的硬件資源消耗。

ESXi做的第二大改進便是將控制臺從虛擬化程序中移除,變成一個獨立的組件,即Vsphere Client,使得管理工作更加的輕松便捷。
ESXi的商用氣息十分濃重,界面極為簡介,所有操作控制在網頁頁面上就可以完成。本身ESXi也是商用級別的虛擬機產品,所以它的功能拓展性并不強,但是可維護性極高。此外就是硬件兼容性并不好,畢竟是面向商用領域,主要安裝在服務器上使用,所以只針對有限的硬件進行兼容處理(圖13)。
ESXi的重要特點就是精簡的體系結構,這讓它的執行效率很高,而且安裝所需的空間也非常少。此外,在部署和配置上,ESXi的操作極為簡潔(圖14),對比筆者后面要介紹的Proxmox Virtual Environment要方便許多。此外,它在維護功能、更新模式上,都極為方便易用,這對使用者來說極為友好。

當然,它的缺點就是在硬件兼容性上,普通電腦上日新月異、各種規格各種品牌的硬件在ESXi上并不一定就能很好的使用,ESXi很可能因為沒有驅動程序或者對其支持度不完善而無法調用這部分硬件資源。甚至包括溫度監控,也必須是主板具備IPMI的才可以,畢竟它是為服務器而生的。
筆者體驗ESXi的使用感受就是,極為簡便,異常穩定,但是拓展功能有限。此外,它對普通用戶來說,最難以企及的是售價,ESXi安裝后可以免費試用70天的時間,而最便宜的售價是一年期授權1700元以上,這個價格可不算便宜了。如果你只是最基礎的應用,ESXi也提供了“免費注冊”,對個人用戶來說比較友好,它與收費版本的區別在于功能受限。
Proxmox Virtual Environment
如果你覺得ESXi有點不對“胃口”的感受,那么不妨考慮一下PVE。PVE的全稱是Proxmox Virtual Environment,是基于Debian的Linux系統,本質上也是面向企業級的虛擬化平臺。PVE集成了基于內核的虛擬機管理程序(KVM)和基于Linux容器(LXC)這兩種虛擬化技術(圖15),同時還集成了軟件定義存儲和虛擬網絡功能。借助網頁的管理界面工具和命令行模式,可以有效管理和配置虛擬機、容器、高可用性集群、軟件定義存儲、虛擬網絡以及備份等。
一方面,它屬于開源產物,拓展能力極強。另一方面,它對硬件的兼容性頗佳,各種新硬件都能很快得到驅動程序,畢竟屬于Linux系統,這方面是ESXi無法比擬的。舉例來說,2.5G的網卡在第一時間就能提供PVE驅動支持,而ESXi則頗費時日才將驅動加入其中,而且執行效率和兼容性也是PVE更勝一籌。
在安裝上,只需要在Proxmox VE社區下載ISO鏡像,并刻錄到U盤之中即可引導安裝,整個安裝過程在10分鐘之內就可以,然后根據提示輸入安裝向導時指定的內網IP地址(圖16)即可開始使用網頁控制、管理PVE系統(圖17)。只不過,它的網頁界面可管理項目并不豐富,很多操作都需要使用Linux命令行來實現,這對于沒有Linux使用基礎或是新手來說是個挑戰。


最后,PVE最大的優點是免費,尤其是軟件和社區支持都是免費的,對企業用戶的收費最低是1年700元左右,相比之下PVE無疑更具有“性價比”。
不得不說,PVE是近年來難得的優秀虛擬機系統,固然需要一定的技術基礎才能完美操作,但是好在支持社區活躍,問題發現很快就能有對應的解決方案,這也是開源軟件的一大好處。另外對于普通用戶來說,PVE有不少討論、分享的教程、經驗,如果你愿意花些時間來學習,PVE絕對是最值得選擇使用的虛擬機系統。當然了,這個門檻如果實在難以跨越,也可以考慮筆者接下來介紹的系統Unraid —— 操作更為簡便,支持度更加靈活,但是又沒有ESXi那么昂貴的授權費用。
Unraid
嚴格意義上說,Unraid是一個NAS系統而不是虛擬機系統,它是基于Slackware的Linux系統,虛擬機內核也是K VM。其磁盤陣列管理非常有特色,靈活性很高。同時還有很不錯的插件、Docker和虛擬機支持。
但是對于普通用戶而言,恐怕Unirad是可玩性最高、操作難度最低的一個了。與其他虛擬機操作系統相比之下,它的操作易用性極為出色,絕大部分設置都是圖形化操作(圖18),即便有些“高級”功能,也可以通過插件替代命令行的方式進行,十分便利。
另外一個優秀的地方是它對硬件的兼容性頗佳,畢竟是基于Linux操作系統衍生而來的,在硬件的驅動程序兼容上可以快速跟進,幾乎主流的硬件產品都可以匹配支持(圖19),這要比ESXi方便多了,而且也不像PVE那樣很多時候需要命令行執行操作。
除了這些,它對Docker的原生支持更是讓易用性大大加分,想要虛擬機?Unraid可以辦到。想要使用Docker?Unraid一樣可以完美支持(圖20),這就是Unraid的魅力。Unraid自身對電腦系統資源的占用并不高,可以充分發揮硬件的性能,以分別供給不同的虛擬機、Docker容器使用。

當然,從根本上講,Unraid更偏向于家用或小型商用的數據存儲功能——從它的名字就可以看出來,Unraid,是一個不使用Raid方式、但提供完善數據保護的數據存儲方案。Unraid采用校驗盤模式來保證數據的安全性,最高支持兩塊硬盤作為校驗盤,從而實現了類似RAID5、RAID6的冗余模式,唯一的要求就是校驗盤容量必須是大于等于數據存儲盤的容量。極端情況下,在使用兩塊數據校驗盤時允許同時損壞兩塊數據存儲硬盤損毀,這對一般用戶而言足夠了。
當然了,Unirad也是收費系統,它按照存儲設備的數量來定價(包括校驗盤),共分為Basic(支持6個磁盤)、Plus(支持12個磁盤)、Pro(磁盤無限制)三個階梯,分別約在400元、550元、850元的水準。但你可以免費注冊一個賬號,擁有30天的全功能試用期。
Hyper-V
如果你既不想花錢,又怕麻煩,只想單純在現有條件下體驗一下虛擬機的使用方式,不妨試試微軟操作系統中自帶的Hyper-V虛擬機。它是微軟提供的硬件虛擬化產品,而且只需要在控制面板→程序和功能中,選擇“啟用或關閉Windows功能”中找到“Hyper-V”一項,將其勾選添加(圖21),重啟后就可以在開始菜單中找到了——只要你擁有一個正版的Windows操作系統,就能體驗虛擬機系統,是不是很劃算?

Hyper-V 支持在物理主機上運行虛擬化的計算機系統(圖22)。 可以像在物理計算機系統上一樣使用和管理這些虛擬化的系統,但它們存在于虛擬化和隔離的環境中。 稱為虛擬機監控程序的特殊軟件可管理虛擬系統和物理硬件資源之間的訪問權限。 虛擬化支持快速部署計算機系統、快速將系統還原為先前已知的良好狀態的方法和在物理主機之間遷移系統的能力。
傳統Windows操作系統分為應用層和內核層兩種不同的權限級別,應用程序運行在Ring 3權限上,操作系統運行在Ring0權限上。而Hyper-V在安裝之后會運行在比傳統模式更高的Ring -1權限(圖23),這個權限的級別是由處理器提供的,簡言之,它可以在最底層的高權限下讓處理器調用硬件資源對應虛擬機的硬件配置要求。當然了,Hyper-V同其他虛擬機一樣,也依賴于硬件虛擬化技術,例如英特爾的VT-X技術,幸好目前主流的處理器都帶有這個規格。

Windows上的Hyper-V提供了非常強大的虛擬機功能,但是它又基于Windows操作系統而生,操作的門檻較低。只是它的擴展功能不如其他虛擬機,更偏向對商業用戶的使用支持。另外一個差異是,除了日常使用的Windows操作系統Hyper-V之外,Windows Server上也有Hyper-V。不同之處在于Windows Ser ver中的Hyper-V支持Hyper-V 副本、虛擬光纖通道、SR-IOV 網絡等功能,而普通桌面的Windows操作系統則不擁有這些功能。這些功能在其他的虛擬機上其實都有提供,而Windows則因為服務器、桌面版本的差異將功能拆分到不同的系統之上,客觀的說,桌面Windows系統上的Hyper-V只有“淺嘗即止”的虛擬機功能。
Parallels Desktop
Parallels Desktop是這些虛擬機中的另一個“另類”,同Windows上的Hyper-V一樣,它也是基于操作系統之上的虛擬機產品,只不過它專屬于Mac平臺——尤其是在推出ARM架構的M1處理器之后,Parallels Desktop是Mac下近乎唯一的虛擬機平臺選擇,也是最好的一個(圖24)。

(24)
而使用Parallels Desktop最根本的目的,其實還是在Mac下獲得對Windows系統的支持。Parallels Desktop擁有極強的性能和更好的兼容性,在Mac和Windows雙系統間有著更無縫的體驗。因為它專門為Mac做了非常多的體驗和性能上的優化,這可以Windows系統在Mac上運行的非常順暢,而且其擁有的融合模式(圖25),能夠讓Windows“嵌入”Mac系統之中,運行Windows平臺的軟件和運行Mac的軟件幾乎不會感覺到有任何差異。

當然了,Parallels Desktop不光可以虛擬Windows,也同樣可以虛擬創建多種不同的操作系統供Mac平臺用戶使用,不同于其他虛擬機產品,Parallels Desktop更加追求簡單、易用的特性,操作Parallels Desktop就像操作普通軟件一樣,幾乎都是向導式操作,門檻極低(圖26)。

虛擬機的出現從根本上還是商用領域的需求,但隨著近些年電腦性能的飛速提升,加上用戶使用需求的多樣化,虛擬機也開始在普通用戶的電腦上“安家落戶”了。同一臺電腦安裝虛擬機創建多個不同的系統,不是為了多幾個不同的“系統桌面”,而是盡可能拓展使用的方式,提升電腦的使用效率,讓其更好的滿足使用者的需求。
如果你是一個毫無經驗的使用者,不妨從Windows的Hyper-V入手,嘗試、理解虛擬機帶來的功能變化;如果你是一個獵奇心很大的使用者,并且擁有一定Linux使用經驗(尤其熟悉Linux命令),PVE是你最好的選擇(可選圖27);如果你想擁有更多的功能,并且對存儲有一定的需求,Unraid是不二之選;如果你正巧也要為公司、企業的網絡規劃虛擬機使用方案,ESXi是個不錯的選擇;至于Mac用戶,Parallels Desktop就是近乎唯一的選擇了。
