① esxi 虛擬機性能問題
【本文不討論的】
想獲得最高的虛擬機硬碟效率,是可以直通sata控制器的,這樣陣列、休眠、smart信息等特性都可以直接使用。其次,直通硬碟也不錯,單盤的效率基本接近原生。
這茄哪兩種直通在ESXi、PVE、unRaid下性能都很好,虛擬機做nas強烈推薦這兩種方式。但本文不會討論這塊,因為沒什麼研究空間了。。。
【本文討論的】
如果你無法使用直通(比如說硬碟數量不夠),那就必須創建虛擬磁碟了。如何創建一個適合自己的虛擬磁碟?尤其是虛擬機玩NAS或Windows等系統,佔用磁碟空間大且有一定性能需求,該如何權衡?
本文只是想給出一些我嘗試過的方法和結論,希望能夠提供幫助。
【大致想法】
首先最簡單的方法肯定是虛擬機下直接創建虛擬磁碟,那麼虛擬磁碟的硬碟控制器、精簡置備、置零這些選項對磁碟的性能到底有多大影響?精力有限,本文只研究了ESXi,其它虛擬系統情形大體相似。
如果你的虛擬機中有一個NAS(比如說群暉),你可能已經把最大最快的硬碟直通給它了。其它次要的系統可否從NAS中分一部分硬碟空間使用,性能如何?是否實用?
【測試的環境】
主機(ESXi系統):
CPU:E3-1265L v3 主硬碟:WDC WD5000BPVT(讀取速度72MB/s)
群暉(虛擬機):
直通了sata控制器,兩塊4T酷狼組raid0,虛擬萬兆網卡
Win10(虛擬機顫運碼):
除系統盤外,對下面1、2、3、4情況各自建立了2G的虛擬磁碟,虛擬萬兆網卡
【待測試的方案】
ESXi下的SCSI厚置備、置零硬碟
ESXi下的SATA厚置備、置零硬碟
ESXi下的SATA厚置備、延遲置零硬碟
ESXi下的SATA精簡置備硬碟
群暉提供的iSCSI磁碟
群暉提供的SMB共享
群暉提供的NFS共享
接下來,我們按照解決疑問的方式一步步給出測試數據。
【SCSI有必要嗎?】(方案1、2對比)
ESXi創建Windows虛擬機,會默認採用SCSI控制器。而我們一般家用主機,基本都是用SATA控制器的,SCSI一般只會在伺服器上見到。是不是SCSI比SATA更高級呢?
理論上,SCSI會佔用較少的CPU、有更好的擴展性,但硬體要求較高,所以家用很少用到。我們還是看看實測數據:
SATA(厚置備,置零)硬碟讀取
SATA(厚置備,置零)硬碟寫入
SCSI(厚置備,置零)硬碟讀取
SCSI(厚置備,置零)硬碟寫入
SATA(厚置備,置零)硬碟:讀取58.9MB/s 寫入47.8MB/s cpu平均2.8%
SCSI(厚置備,置零,半虛擬)硬碟:讀取57.6MB/s 寫入44.9MB/s cpu平均2.5%
(主機硬碟直接讀取測試72MB/s)
為了方便對比,兩塊硬碟全都是厚置備、置零的配置。測得的速度相差不大,甚至SCSI還略低一丟丟。CPU佔用SCSI略低一丟丟。考慮到測試有誤差,可以認為兩者的性能數據幾乎一樣。看來軟體模擬出來的SCSI、SATA性能差別不大,跟硬體SCSI、SATA的情況可能不一樣。我個人偏向於使用SATA,因為平時主機就是SATA,兼容問題少(半虛擬的SCSI安裝Windows需要額外驅動)。
【延遲置零有什麼效果?】(方案2、3對比)
顧名思義,延遲置零可以把磁碟的置零操作延後,節省了創建虛擬機的時候卡住的那幾秒或幾分鍾時間。實測在我這個爛硬碟上創建一個2G的置零磁碟差不多要1分多鍾。我們來看看設置了延遲置零的硬碟的測試數據:
SATA(厚置備,延遲置零)硬碟第一次讀取
SATA(厚置備,延遲置零)硬碟第一次寫入
SATA(厚置備,延遲置零)硬碟第二次讀取
SATA(厚置備,延遲置零)硬碟第二次寫入
SATA(厚置備,延遲置零)硬碟第一次:讀取1517.5MB/s 寫入11.7MB/s
SATA(厚置備,延遲置零)硬碟第二次:讀取58.5MB/s 寫入48.8MB/s
SATA(厚置備,置零)硬碟:讀取58.9MB/s 寫入47.8MB/s (前面有數據截圖)
第一次讀取速度簡直逆天!細想一下,很正常嘛,未置零的部分直接返回0就可以了,根本不需要真正的磁碟IO。再想一下,這個速度快有用嗎?正常軟體根本就不應該去讀取硬碟的未初始化區域,總要先寫入數據再讀取才對。而第一次的寫入速度就會比較悲劇了,因為寫入的同時又要處理延遲置零,所以寫入速度成倍下降。第悄橋二次讀取、寫入速度才是長期使用後磁碟的速度。
結論:延遲置零會降低初次寫入磁碟的性能,長期使用影響不大。從我個人而言,無所謂建立虛擬機的時候等幾分鍾,所以我還是不會選擇延遲置零。
【精簡置備劃算嗎?】(方案2、4對比)
精簡置備是一個省硬碟空間的好辦法,初期建立的虛擬磁碟文件會很小,隨著寫入數據而逐漸變大。(這里有人可能會疑惑,為什麼精簡置備沒有區分置零和延遲置零?因為精簡備至只能延遲置零了。換個角度:如果做了置零,也就不是精簡置備了。)我們看看精簡置備的性能數據:
SATA(精簡置備)硬碟第一次讀取
SATA(精簡置備)硬碟第一次寫入
SATA(精簡置備)硬碟第二次讀取
SATA(精簡置備)硬碟第二次寫入
SATA(精簡置備)硬碟第一次:讀取1639.6MB/s 寫入12.2MB/s
SATA(精簡置備)硬碟第二次:讀取58.9MB/s 寫入47.9MB/s
SATA(厚置備,置零)硬碟:讀取58.9MB/s 寫入47.8MB/s (前面有數據截圖)
同樣,第一次讀取的速度是逆天的,第一次寫入的數據是悲催的,原因跟延遲置零一樣。結論似乎也是一樣:是否精簡置備對長期使用的性能影響較小。但是我的實際使用經驗是,拿Windows這種操作系統跑精簡置備的話,精簡備至後期的實際性能要低於測試值。猜測原因可能是雜亂的磁碟使用導致虛擬磁碟文件出現大量碎片。
【iSCSI能有多快?】(方案5)
如果你的虛擬系統中包含一個nas虛擬機,比如群暉,那麼讓nas提供一個iSCSI網路硬碟給目標虛擬機用也是個不錯的選擇。看看測試數據:
群暉iSCSI(厚置備)讀取
群暉iSCSI(厚置備)寫入
群暉iSCSI(厚置備)網路硬碟:讀取177.0MB/s 寫入191.5MB/s
(單個原生盤的讀取速度180MB/s,這里是雙盤組了軟raid 0)
這組數據已經跟之前的方案沒有可比性了,因為基於的物理硬碟不一樣。不過從這個數據可以看出,iSCSI的讀寫速度已經比較令人滿意了。實際長期使用較穩定,沒有任何問題。有點遺憾的是理論上組了raid 0可以速度達到單盤的2倍,但這個才勉強1倍,不確定是軟raid不太行還是什麼原因(iperf3測試網路5G多速率)。有知道的老哥還請不惜賜教。
【SMB共享能做磁碟嗎?】(方案5、6對比)
iSCSI的方案我用了厚置備以提升性能,但是這會帶來很大的磁碟空間浪費。而且iSCSI一般不方便同時共享給多方使用。所以,我試了試把SMB(Samba)共享映射為驅動器。對比方案5測得的性能數據如下:
iSCSI磁碟讀寫
SMB共享讀寫
iSCSI磁碟:讀取713MB/s 寫入267MB/s
SMB共享:讀取1143MB/s 寫入297MB/s
因為HD Tune無法測試網路共享,所以只能換了CrystalDiskMark來測試,但後者的測試不那麼准確,受緩存等影響較大。看起來SMB的讀取速度會高於iSCSI,有點超出我認知。可能主要還是緩存影響了這部分數據。SMB共享因為是文件級的,可能受到了更多的緩存加速?
不過SMB在實際使用中並不穩定,而且還有兩個問題:
一是不能做系統盤。因為SMB共享是在系統啟動後載入的,而iSCSI磁碟的載入甚至可以從BIOS引導開始(設置有點麻煩,我沒實驗了)。
二是碎文件讀寫非常慢。
【NFS共享更快嗎?】(方案6、7對比)
簡單測試看不出差異,就不獻丑了。直接借用別人的結論:
NFS在碎文件多的時候性能顯著高於SMB,大文件速度跟SMB不相上下。想看詳細對比數據直接看老外的研究(也是基於群暉): Network share: Performance differences between NFS & SMB
但這個測試結果不是在Windows上得出的。我在Windows上的實際使用速度還遠不及SMB,而且有不穩定的狀況,經常卡住。
【結論】
需要穩定高性能的話,可以採用虛擬SATA、厚置備、置零硬碟。
如果需要節省空間,則考慮虛擬精簡置備硬碟。
如果有NAS,可以用NAS做一個iSCSI硬碟,穩定度和速度都較好。
愛折騰的也可以試試SMB或NFS共享,如果能解決Windows下穩定性問題還請指點一下。
② 如何設置vmware esxi的網卡
可通過以下步驟設置vmware esxi的網卡:
1、啟動vmware esxi系統,PC安裝vmware esxi的vmware vSphere管理工具,網卡1作為vmware esxi的管理埠,網卡2作為vmware esxi的網路數據傳輸介面,啟動vmware vSphere管理工具,輸入網卡1的管理IP地址、用戶名、密碼,點擊登錄;
2、點擊管理地址,右邊點擊配置選項卡,找到網路,在網卡2上創建一個虛擬Trunk口,允許所有VLAN都通過,在網卡2設置頁面下點擊右面的"屬性"選項;
3、在網卡2屬性頁面下點擊添加按鈕,在網卡2的屬性中點擊添加按鈕後會顯示網卡設置添加向導,選擇"VMkernel",建立一個埠組,點擊下一步;
4、在埠組屬性設置頁面下輸入網路標簽,這個標簽是自定義的,VLAN ID選擇"全部",其他保持默認,點擊下一步,在IP連接設置頁面下選擇自動獲取IP地址,點擊下一步,點擊完成,虛擬Trunk口就創建完成;
5、在網卡2的屬性頁面下點擊添加,在網路向導頁面下選擇"虛擬機",點擊下一步。在虛擬機里連接設置頁面下輸入網路標簽,點擊下一步,再點擊完成;
6、配置好交換機的Trunk介面並且UP起來即可,登陸交換機找到跟伺服器連接的介面,配置成Trunk模式,並且允許VLAN都在Trunk介面上通過,這樣vmware esxi的網卡即設置成功了。
③ ESXi5.1嵌套KVM虛擬機如何設置
記得以前就有人問過 「能讓沖不能在一個虛擬機上運行虛擬機」,答案當然是可以的,Xen HVM, KVM,VMware, Qemu 等 Hypervisor 都可以這樣嵌套虛擬,不過由於性能低下實際用處不大。在 VMware ESXi虛擬機上運行虛擬機,被稱為多層虛擬或者嵌套虛擬機(Nested VMs)。如果只有一台電腦想測試多節點 OpenStack 環境的話,使用 VMware ESXi 虛擬幾個運行 KVM Hypervisor 的 OpenStack 計算節點是個不錯的辦法。VMware ESXi 5.0 默認情況下不支持嵌套虛擬,所以在 VMware ESXi 虛擬機里安裝完KVM 以後會發現 KVM 雖然能裝但不可用:
# kvm-ok
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used
解決辦法很坦友殲簡單:1、修改 VMware ESXi 的設置;2、修改對應虛擬機的設置。
登陸 VMware ESXi 控制台打開 VMware ESXi 5.0 的 SSH 服務(默認 SSH 服務是關閉的),然後用 ssh 登陸 VMware ESXi 後在 config 文件中最後加入 vhv.allow = 「TRUE」 一行:
# vi /etc/vmware/config
libdir = "/usr/lib/vmware"
authd.proxy.vim = "vmware-hostd:hostd-vmdb"
authd.proxy.nfc = "vmware-hostd:ha-nfc"
authd.proxy.nfcssl = "vmware-hostd:ha-nfcssl"
authd.proxy.vpxa-nfcssl = "vmware-vpxa:vpxa-nfcssl"
authd.proxy.vpxa-nfc = "vmware-vpxa:vpxa-nfc"
authd.fullpath = "/sbin/authd"
authd.soapServer = "TRUE"
vmauthd.server.alwaysProxy = "TRUE"
vhv.allow = "TRUE"
重啟 VMware ESXi 後編輯虛擬機選項(需要先關閉虛擬機),打開 Edit virtual machine settings 對話框,在 options 頁面的 General Options 選項里把 Guest Operating System 的類型換成 Other 裡面的VMware ESxi 5.x,如圖:
最後啟動虛擬機後再 kvm-ok 一下就可以看到 KVM 可以用了:
虛擬機網路中的ip地址的配置,都是類似的。
你可以參考:
【整理】Virtualbox中的網路類型(NAT,橋接等),網卡,IP地址等方面的設置
一般都是網卡設置為NAT或告段橋接,然後虛擬機裡面的ip,多數都是可以直接設置好,就可以用了。
(此處不給貼地址,請自己用google搜帖子標題,即可找到帖子的地址)
④ 伺服器中的vmware esxi 5.5裡面建了幾個虛擬機,特別卡,為什麼
(1)用滑鼠右鍵單擊連接到的VMware ESXi的計算機名稱或IP地址,在彈出的快捷菜單中選擇「新建虛擬機」選項,或者按「Ctrl+N」熱鍵,如圖1所示。
(2)在「配置」對話框中,選擇「自定義」。
(3)在「名稱和位置」對話框,在「名稱」文本框中,輸入要創建的虛擬機的名稱,如Win8.1,如圖2所示。在VMware ESXi與vCenter Server中,每個虛擬機的名稱最多可以包含80個英文字元,並且每個虛擬機的名稱在vCenter Server虛擬機文件夾中必須是唯一的。在使用vSphere Client直接連接到VMware ESXi主機時無法查看文件夾,如果要查看虛擬機文件夾和指定虛擬機的位置,請使用VMware vSphere連接到vCenter Server,並通過vCenter Server管理ESXi。
· 說明:通常來說,創建的虛擬機的名稱與在虛擬機中運行的操作系統或者應用程序有一定的關系,在本例中創建的虛擬機名稱為Win8.1,表示這是創建一個Windows 8.1的虛擬機,並在虛擬機中安裝Windows 8.1的操作系統。
(4)在「數據存物碰嫌儲」對話框中,選擇要存儲虛擬機文件的數據存儲,當前只有一個存儲,如圖3所示。在該列表中,顯示了當前存儲的容量、已經使用的空間、可用的空間、存儲的文件格式。
(5)在「虛擬機版本」罩手對話框中,選擇虛擬機的版本。在VMware ESXi 6的伺服器中,可以支持的最高版本是11。在VMware ESXi 5.5支持「虛擬機版本:10」,但在創建虛擬機的對話框中沒有。如果你需要「虛擬機版本:10」,則可以在創建虛擬機後,通過升級硬體的方式,將虛擬機 版本升級到10。而在vSphere Client 6中,則可以直接創建硬體版本4、7~11的虛擬機。並且在9、10、11每個版本後面聲明了所選版本需要的ESXi 的版本號。如下圖:
(6)在「客戶機操作系統」對話框中,選擇虛擬機要運行的操作系統,如下圖所示。這與VMware Workstation、VMware Server相類似。在本示例中選擇「Windows 8(32位)」。
從列表中可以看到,因為Windows下一代伺服器產品的名稱還沒有正式定(估計應該是2015),所以列表中用20XX代替。另外,從列表中出現了 Windows 9,我們已經知道,Microsoft已經跳過了Windows 9直接到了Windows 10,估計VMware ESXi 6會在正式版中更正這個提示。
(吵敬7)在「CPU」對話框中,選擇虛擬機中虛擬CPU的數量,在VMware ESXi 5的硬體版本中,虛擬機中虛擬CPU的內核總數(虛擬插槽數×每個虛擬插槽的內核數)最多為32,但這受限於主機的CPU數量。為虛擬機中分配的虛擬 CPU的數量不能超過主機的CPU數量,例如在寫作本章時,作者所用的伺服器是具有2個4核心的CPU,則在創建虛擬機時,為虛擬機中分配虛擬CPU的數量不能超過2(虛擬插槽數),如下圖所示。
在為虛擬機選擇內核數時,不會超過VMware ESXi所在主機的CPU內核總數,例如,當在一個具有2個4核心的CPU主機上,創建虛擬機時,每個虛擬插槽的內核數不會超過4個。
說明:VMware Workstation 11所支持的虛擬機硬體版本的上限:64 GB 內存、16 個處理器、8 TB 磁碟大小,VMware ESXi 6的硬體版本應該不會等於或高於這個參數。
(8)在「內存」對話框中,配置虛擬機的內存大小,在默認情況下,向導為用戶分配的一個合適的大小,在本例中為Windows 8.1的虛擬機默認會分配1GB的內存,如圖:
(9)在「網路」對話框中,為虛擬機創建網路連接,如下圖所示。在VMware ESXi中的虛擬機,最多支持4個網卡。在VMware ESXi 6中,虛擬網卡支持Intel E1000E、E1000或 VMXNET 3型網卡。當VMware ESXi主機有多個網路時,可以在「網路」列表中選擇。
(10)在「SCSI控制器」對話框中,選擇要使用的SCSI控制器類型,可以在「BusLogin」、「LSI邏輯並行」、「LSI Logic SAS」、「VMware准虛擬」之間選擇,通常情況下,選擇默認值「LSI Logic SAS」即可。
(11)在「選擇磁碟」對話框,為虛擬機創建虛擬硬碟,這與VMware Workstation相類似,在此選擇「創建新的虛擬磁碟」。
· 說明:與VMware Workstation可以直接使用主機物理硬碟相類似,在VMware ESXi中,可以直接使用「裸機映射」磁碟。
(12) 在「創建磁碟」對話框中,設置新創建的虛擬磁碟的容量及置備參數。如果想讓虛擬機「按需分配磁碟空間」,請選擇「Thin Provision」;如果想讓虛擬磁碟按照「磁碟大小」立刻分配空間,可以選擇「厚置備延遲置零」或「厚置備置零」兩種磁碟,如下圖所示。厚置備磁碟具有更好的性能,但會佔用過多的磁碟空間,通常情況下,對於需要使用資料庫系統的虛擬機,選擇厚置備磁碟(非SSD存儲);對於大多數的應用來說,選 擇「Thin Provision」即可,如果虛擬機保存在SSD(固態硬碟)存儲上,則不要選擇「厚置備」磁碟,在SSD存儲上使用「Thin Provision」即可獲得更好的性能。通常來說,為Windows 7、Windows 8的虛擬機分配60GB即可滿足系統的需求。在此設置為16GB。
(13)在「高級選項」中,指定虛擬磁碟的高級選項與工作模式,如無必要,不要更改,如下圖:
· 說明:「獨立」磁碟模式不受快照影響,如果在一個虛擬機系統中,有多個虛擬硬碟時,在創建快照或者從快照中恢復時,選中為「獨立」磁碟模式的虛擬硬碟保持不變, 在VMware ESXi虛擬機中,「獨立」磁碟有兩種模式:「獨立—持久」與「獨立—非持久」。持久模式磁碟的行為與物理機上常規磁碟的行為相似。寫入持久模式磁碟的所 有數據都會永久性地寫入磁碟,而對於「獨立—非持久」模式的虛擬機關閉虛擬機電源或重置虛擬機時,對非持久模式磁碟的更改將丟失。使用非持久模式,您可以每次使用相同的虛擬磁碟狀態重新啟動虛擬機,對磁碟的更改會寫入重做日誌文件並從中讀取,重做日誌文件會在虛擬機關閉電源或重置時被刪除。
(14)在「即將完成」對話框中,查看當前新建虛擬機的設置,然後單擊「完成」按鈕,如下圖所示,如果你要想進一步修改虛擬機設置,可以選中「完成前編輯虛擬機設置」復選框。
(16)啟動虛擬機,如下圖所示:
(17)載入本地ISO鏡像安裝。
(18)因為我們實驗環境中,為Windows 8.1分配了16G硬碟,所以安裝的是Windows embedded 8.1 instry enterprise x86的版本,如下圖所示:
(19)最後,在VMware Workstation中創建了個Windows 2012 R2的虛擬機。
⑤ 如何在VMware ESXi上構建冗餘網路
摘要:VMware的默認配置提供了一個工作網路,但想抵禦網路介面故障,需要創建冗餘網路。 VMware的默認配置提供了一個工作網路,但想抵禦網路介面故障,需要創建冗餘網路。
WMware網路配置
VMware網路由許多層構成,最底層是物理網卡。在vSphereClient的「網路適配器」選項卡下能夠找到物理網卡。
圖1:物理網卡被添加到「網路適配器」選項卡中
虛擬化交換機位於物理網卡層之上,默認情況下,發現一個被稱為vSwitch0的虛擬交換機,查看虛擬交換機是否被連接到正確的網卡上:「網路適配器」選項卡下的每個物理網卡都列出了觀測的IP地址范圍,這些IP地址在連接的網段能夠被檢測到。利用這個信息,你就能夠確保物理網卡以及相關的交換機連接到了正確的網路。
虛擬機主機之上的虛擬交換機的用法與物理網路中的物理交換機類似。這意味著幾個虛擬機能夠連接到一個交換機上。「網路」選項卡提供了當前配置的概況。
圖2:網路選項卡顯示現有虛擬網路的概況
創建冗餘網路
默認安裝時,只有一塊物理網卡連接到虛擬交換機。為確保網路冗餘,你應該添加另一塊物理網卡組成網卡組。
單擊「配置」選項卡,再選擇「網路」,單擊虛擬交換機配置左側的「屬性」鏈接。打開vSwitch0屬性窗口。選擇正確的「屬性」鏈接,因為網路選項卡有兩個屬性鏈接。(不要選擇右上角的鏈接)
圖3:配置虛擬交換機屬性
點擊vSwitch0屬性窗口中的「網路適配器」選項卡,顯示當前連接到虛擬交換機的網卡。(默認情況下只有一塊網卡連接到虛擬交換機)。選擇「添加」按鈕,打開增加適配器向導。
圖4:通過增加適配器向導,你可以選擇額外的網卡,連接到當前的虛擬交換機。 在增加適配器向導中,列出了幾塊網路網卡。如果物理網路已經正確設置,所需的網卡將和連接到虛擬交換機的網卡一樣在相同的IP子網中。
很容易識別出一塊網卡是否具有相同的IP子網配置。選擇一塊網卡,然後選擇「下一步」,如果你沒有看到具有正確地址分配的網卡,這塊網卡可能沒有連接到合適的物理網路。在這種情況下,進行下一步操作前需要調整網路中的物理連接。
現在你將看到故障切換順序策略窗口,你可以指定哪塊配置為主網卡或者是備用網卡。為了達到最優性能,VMware默認提供了兩個主網卡,這將網路帶寬提高了一倍,同時實現了容錯。
如果你想將網卡配置為備用網卡,選擇它然後向下拖動,把它放到備用網卡之下,做出選擇後,單擊「下一步」,在最後的窗口中,單擊「完成」按鈕完成配置。
圖5:當多塊物理網卡連接到虛擬交換機時,將它們都設置為主網卡以達到最佳的性能。
你將返回到主界面,將有兩塊網卡連接到虛擬交換機上。在網路介面上創建了一個網路冗餘級別。
圖6:兩塊網卡連接到了虛擬交換機,提供了網路冗餘
現在到了測試網路冗餘的時候:在管理工作站上,持續的pingVMware主機的管理介面,物理拔掉一塊網卡的網線,你應該看到ping包一直在發送,並沒有任何問題。同時,中斷的物理網卡在vSphereClient網路介面中被標注為故障。恭喜,你的網路冗餘測試已經成功了。
圖7:如果網卡故障,流量將在冗餘網路中繼續傳輸。