淺談VPS虛擬化技術
vps根本上就是虛擬機,都是在一定的虛擬化技術上構建的。用得最多的虛擬化技術是Xen, OpenVZ, Hyper-V和vmware。下面針對vps有用的部分粗略的講一下。
Hyper-V是微軟自家的虛擬化技術,只能在windows上運行。也就是,一般安裝windows系統的vps虛擬服務器很可能是Hyper-V。國內的一些較小主機商會用到vmware,跑windows或linux的都有,用過虛擬機的朋友應該了解過它。
另外兩種主要是用來跑linux的虛擬化技術,其中OpenVZ是基于操作系統的虛擬化技術,它運行效率跟真機(實體服務器)幾乎一樣。vps虛擬機的性能來自于物理服務器,因為物理機上有多個vps,每個vps可以獲得的資源并不是很高,具體這要看宿主機本身硬件性能如何、上面運行了多少vps。
OpenVZ有個顯著特點:沒有交換分區swap(虛擬內存)、不能運行pptp協議的vpn容易被超售。
關于超售
假設宿主機有16G內存,但開出二十臺1G內存的vps,都賣出去了;而這20臺vps里都顯示1G內存,這就是超售。事實上OpenVZ通常超售得更厲害!
Xen,是一種稱為半虛似化的技術,性能比真機有所損失,但虛擬出來的系統跟真機相似度極高,有swap,可以運行pptp的vpn,不容易超售。在xen的linux上,可以更換或升級內核;據說甚至可以再裝個虛擬機環境虛擬出vps(沒有親眼見過,不過即使成功,性能也是極其低下,沒有實用性的)。
一般來說,大家都認同以下說法:
購買同等配置的vps,xen的性能要明顯優于OpenVZ. 最主要的原因就是超售問題。
OpenVZ沒有swap,通過free命令查出的內存,其中一部分事實上是物理主機上的swap只是被vps當成物理內存。
沒有不超售的OpenVZ vps。
512M的Xen,其內存性能比1G OpenVZ vps的好,甚至是遠超。
OpenVZ內存用完時,系統就差不多只能重啟了,因為這時遠程ssh連接也無法建立的。而xen的,還有swap可用,通常不至于要重啟。
看上去,xen幾乎是完勝于openvz,那價格呢,也一樣,xen遠遠高于openvz. 畢竟一分價錢一分貨。
關于xen與openvz的了解更多,請參閱文后擴展閱讀“vps虛擬化技術-openvz與xen對比”。
kvm虛擬化技術:
KVM (全稱是 Kernel-based Virtual Machine),是一個開源的系統虛擬化模塊,自Linux 2.6.20之后集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,所以相對于Xen,其核心源碼很少。KVM已成為學術界的主流VMM之一。 KVM的虛擬化需要硬件支持(如Intel VT技術或者AMD V技術)。是基于硬件的完全虛擬化。而Xen早期則是基于軟件模擬的Para-Virtualization,新版本則是基于硬件支持的完全虛擬化。
KVM技術已經從最初的概念發展成為企業 IT 基礎設施管理系統。可以從kvm client管理軟件這樣的單一界面直接訪問位于多個遠程位置的服務器和設備。