iT邦幫忙

0

FreeNAS9.3裝在ESXi 5.5上效能低落

近日小弟在測試FreeNAS 9.3 作為 Windows共享資料夾之用 CIFS

以下兩個環境,都是在同一台Switch上測試,所以實體網路品質的問題可以排除。

起初先找了一台Core2 Duo E8400,RAM 4G DDR2,500G HDD*1 的舊電腦來安裝,如此環境下建立出來的分享資料夾,其大檔連續寫入速度可達65MB~75MB

後來把FreeNAS安裝到ESXi 5.5之上,實體伺服器是Dell R720,實體8顆HDD做Radi5。
CPU我切2C2T,RAM 8GB,硬碟500GB完整布建,結果建立出來的分享資料夾,連續寫入速度剩下45MB~52MB

請問這是哪裡有問題呢?

虛擬化造成的影響會到那麼大嗎?

看更多先前的討論...收起先前的討論...
vicentli iT邦新手 3 級 ‧ 2015-09-03 09:32:17 檢舉
我之前lab時, server 2008 r2 掛在esxi下,
硬碟沒做raid有關fm tools 跑的也是比virtual box下慢,
極限也只有50m左右...virtualbox可到70-90M
vicentli iT邦新手 3 級 ‧ 2015-09-03 09:34:29 檢舉
囧。Ipad把我打的字自動改成錯字,有灌vmtools
okra iT邦研究生 3 級 ‧ 2015-09-05 00:55:15 檢舉
ra605002提到:
最近也在研究freenas要做iscsi配10G網卡將空間掛給esxi使用

建議版大參考FreeNAS官網推薦的Production Environment
使用PCI passthrough of an HBA
版大使用Test Lab的做法可能會導致ZFS pool(和/或數據)沒有警告的災難性損失(can result in catastrophic loss of your ZFS pool (and/or data) without warning)

使用PCI passthrough(DirectPath I/O)準則:
https://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.vsphere.networking.doc/GUID-BF2770C3-39ED-4BC5-A8EF-77D55EFE924C.html
okra iT邦研究生 3 級 ‧ 2015-09-05 12:18:56 檢舉
如果實體硬體不夠力
沒有16G RAM
那就是拎到的歹勢
與VMware無關

Joshua Paetzel:
“i don't always virtualize FreeNAS, but when ido ... i use VMware.”

2 個回答

20
raytracy
iT邦大神 1 級 ‧ 2015-09-03 00:17:37
最佳解答

你的檔案系統是用 ZFS 嗎? 我就假設是好了, 因為這是預設選項, 而且也是大部分人選擇使用 FreeNAS 的主因.

ZFS 雖然強大, 但是您了解 ZFS 相關的設計架構嗎? 會不會是您的設計牴觸了 ZFS?

  1. 你既然用了 ZFS, 就不應該再用硬體的 RAID Controller 去切 RAID LUN, 而是要將每一顆硬碟交給 FreeNAS 用 zfs 去控管, 這樣才會增加效能. RAID 會有 write penalty, 而 RAID-5 的 write penalty 高達 4:1, 也就是說, RAID-5 的寫入 I/O 原本就會比你用單顆硬碟要多 4 倍.

如果改用 ZFS 的 RAID-Z, 幾乎可以消除 RAID-5 的 Write penalty 影響, 達到接近 1:1 的效能. 問題是, 您若用硬體的 Controller 把 RAID-5 包成一個 LUN 再分配一顆硬碟給 VM, 這樣 ZFS 只能看到一顆硬碟, 完全無法發揮他的特長.

關於 ZFS vs. Hardware RAID 的討論, 國外網路上有很多, 請深入了解看看.

  1. 您的 R720 上面是用哪一片 RAID Controller? 規格是甚麼? 如果你的 RAID Controller 沒有內建 Cache RAM, 或是 Cache RAM 不夠大的話, 那麼寫入 RAID-5 變慢是正常的, 這是 RAID Controller 的特性, 跟 FreeNAS 沒有關係.

  2. ZFS 需要使用大量 CPU 運算, 奇怪的是, 我明明有 VCP5-DCV 的證照, 但是卻聽不懂你說的 2C2T 是如何配置 CPU? 可否請您說明一下, 若以下圖為例, 是如何設定的:

    然後, 您這台 ESXi Host 的 CPU 虛擬化比例是多少? 若是您不會算的話, 請告訴我以下這些數據就好:
    A. ESXi Host 所顯示的 Logical Processors 數量?
    B. 所有已經註冊的 VM 設定, 每一台的 Total number of core 數量加總是多少?

看更多先前的回應...收起先前的回應...
raytracy iT邦大神 1 級 ‧ 2015-09-03 01:18:14 檢舉

為了能提供您對比, 我花半小時在自己的 Lab 建了一個跟您類似的 FreeNAS:

Host: Dell R410, Xeon E5620x2, 96GB ECC RAM
RAID: H700/1GB NVRAM
Disk: 3TBx3 NL-SAS RAID-5 LUNx1, 512GB SSD CascadeCache
NIC: 1Gbps Ethernet
CPU 虛擬化比例: 65:16 (Virtual Core:Physical Core)

我也只用 Hardware 的 RAID, 只給 ZFS 一顆硬碟, 所以沒有用上 RAID-Z, 相關設定如下:

傳檔的結果:

結果我用了比你老一代的硬體, 還跑出比你快很多的效能, 所以, 這是哪邊出問題?....

James iT邦大師 7 級 ‧ 2015-09-03 07:49:00 檢舉

2C2T我猜是2Core 2 Total,所以Ray大你的CPU多2 Core,另外Ray大你用了Thick Provision,如果沒注意到的人用了Thin Provision,一開始寫入檔案時因為要取得硬碟空間,一定會效能低落。

u8526425 iT邦大師 1 級 ‧ 2015-09-03 08:25:26 檢舉

請教一下
這種測試情境下
如果把SSD CascadeCache關掉
會有多少的效能影響

外獅佬 iT邦大師 1 級 ‧ 2015-09-03 08:30:32 檢舉

raytracy提到:
我花半小時在自己的 Lab

讚灑花

77012904 iT邦新手 3 級 ‧ 2015-09-03 08:43:45 檢舉

然後, 您這台 ESXi Host 的 CPU 虛擬化比例是多少? 若是您不會算的話, 請告訴我以下這些數據就好:
A. ESXi Host 所顯示的 Logical Processors 數量?
B. 所有已經註冊的 VM 設定, 每一台的 Total number of core 數量加總是多少?

raytracy 大您好
A. 邏輯處理器12個
B 所有運作中的客體,CPU加起來是60個core

77012904 iT邦新手 3 級 ‧ 2015-09-03 08:51:48 檢舉

這是ESXi Host平時的狀況.

77012904 iT邦新手 3 級 ‧ 2015-09-03 08:52:15 檢舉


這是ESXi Host平時的狀況.

raytracy iT邦大神 1 級 ‧ 2015-09-03 10:43:59 檢舉

77012904提到:
A. 邏輯處理器12個
B 所有運作中的客體,CPU加起來是60個core

那跟我的 Lab 狀況差不多, 你是60:12, 我的是 65:16, 所以問題不在虛擬化的比例.
我平常的 CPU 用量還有到 3095 MHz, 比你的 2117 還高, 所以也不是 CPU 效能問題.

但是您還是要解釋一下: 2C2T 到底是怎麼設定的?
我用的 vCPU 是: x2 virtual sockets, x2 cores per socket = 4 vCPU core

(Bruck 眼尖喔, 知道我的秘密.....拍手)

ra605002 iT邦新手 3 級 ‧ 2015-09-03 10:52:56 檢舉

raytracy 大

最近也在研究freenas要做iscsi配10G網卡將空間掛給esxi使用
請問上面提到的如果不用Raid Card 做包成一個Raid 5 virtual disk而是使用Raid-z
這樣是代表使用軟體式的Raid?當硬碟故障時有什麼影響或風險嗎?

raytracy iT邦大神 1 級 ‧ 2015-09-03 11:16:23 檢舉

u8526425提到:
如果把SSD CascadeCache關掉

我知道會有很多網友, 看到這個項目, 覺得會有重大差異, 不過, 我就實證給大家看看:

把它關掉:


然後再傳一次:

還是贏過樓主....

實際上, 今天如果這台 Host 只跑 FreeNAS 的話, 上面的數據應該根本不會往下掉(或是掉得極少), 因為 H700 的 Cascade Cache 是 1.1 版, 這個版本只會對 Read 做 Cache, Write 則完全不理, 所以理論上不會有差別.

至於上面的測試會往下掉, 是因為我還有其他的 VM 在跑, 他們會用到 Read I/O, 但因為少了 SSD Cache, 所以會來跟 FreeNAS 搶 HDD 的 I/O 的時間, 是被其他的 VM 影響造成略為下滑, 並非是 FreeNAS 本身因為少了 Cache 才下滑的. 不過大家也看得出來, 差別並不大.

77012904 iT邦新手 3 級 ‧ 2015-09-03 11:31:43 檢舉

raytracy提到:
跟我的 Lab 狀況差不多, 你是60:12, 我的是 65:16, 所以問題不在虛擬化的比例.
我平

R大您好,我的設定就和你的Lab環境一樣

目前我的機器上其他的Guest OS都是Windows Server2008 R2,配置4CPU、8~16GB的記憶體

我剛才有做了一些測試,就是關閉某幾台Guest OS,當我關到某一台特定的虛擬機(A)時,速度會稍微恢復正常 (變成70~85MB之間),當那台A再開起來,速度又變成5xMB了.

但那台虛擬機A,只是某台重要實體機器的備援,平常完全不會做什麼事情... 感覺滿詭異的.

raytracy iT邦大神 1 級 ‧ 2015-09-03 12:36:28 檢舉

ra605002提到:
請問上面提到的如果不用Raid Card 做包成一個Raid 5 virtual disk而是使用Raid-z這樣是代表使用軟體式的Raid?當硬碟故障時有什麼影響或風險嗎?

是的 ZFS 最迷人的特色, 就是他的 Software RAID 效能可以直逼 Hardware RAID (當然, 前提是你要懂得調教(誤)...調校...), ZFS 有很多特色, 在此無法通通介紹, 僅單就故障部分提供比較:

  1. ZFS 比 Hardware RAID 容易救援, 因為只要能存取 Raw disk, 就可以讀取資料; 但傳統 RAID 故障一定要透過原本的 Controller 才能讀取

  2. 如果你的 zil cache 設計不良的話, 有可能造成故障時的資料遺失, 這是設計 ZFS 時必須要注意的一點.

  3. ZFS 需要消耗大量的 RAM 和 CPU (尤其是你啟用 Dedup 功能的話), 如果你的 RAM 穩定性不夠好, 有可能會把錯誤的資料回寫到磁碟上. 所以務必要採用 ECC RAM

  4. 大部分的 ZFS 軟性故障, 通常都可以用指令修復, 但是你要非常熟悉 ZFS 的維護指令, 不能只透過 FreeNAS 這樣的 GUI 介面來操作

  5. ZFS 對硬碟的監測非常盡責, 但前提是: 你必須讓他能讀到硬碟的 SMART 資料, 如果中間還透過一層 RAID Controller 去管理的話, 這些 SMART 資料讀不到, ZFS 就無法進行預警性的防範, 一旦出現故障, 就會造成很大的損失.

  6. ZFS 預設會對資料進行 lz4 或 lzjb 的壓縮, 這個特性可以讓他的資料產出效能高達 500MB/sec~1,174MB/sec 以上, 但缺點是, 萬一 zpool 故障, 要救資料也會比較困難(壓縮過的資料很難救). 但是如果你的 ZFS 設計得宜, 其實不用太擔心故障的這種程度. (就算到這種程度, 一般的 Hardware RAID 也同樣很難救回了)

raytracy iT邦大神 1 級 ‧ 2015-09-03 12:41:05 檢舉

77012904提到:
我剛才有做了一些測試,就是關閉某幾台Guest OS,當我關到某一台特定的虛擬機(A)時,速度會稍微恢復正常 (變成70~85MB之間),當那台A再開起來,速度又變成5xMB了.

這樣就找到兇手啦.....

不過,

但那台虛擬機A,只是某台重要實體機器的備援,平常完全不會做什麼事情... 感覺滿詭異的

你沒叫他做事, 不代表他不會自己在背景做別的事, 所以要用 vCenter 的 Performance 看一下, 這台機器平常是否就會有一定量的 Disk I/O 在潛伏著?

raytracy iT邦大神 1 級 ‧ 2015-09-03 12:55:02 檢舉

其實, 上面還有一個秘密設定我沒有說出來, 那是可以讓我飆到 97MB/sec 的主因 (97MB SMB 傳輸大概是 1Gbps Ethernet 的極限了), 平常你可以到 85MB/sec 應該也是上限了. 但是我有把握, 如果網卡速度再提升的話, 我用上述硬體環境實做出來的傳輸, 可以超過 100MB/sec 以上.

這個秘密, 留在以後某個場次的{FLYING ITMEN}來談好了.....不然, 你們都不來聽....

raytracy iT邦大神 1 級 ‧ 2015-09-03 13:10:54 檢舉

先聞香一下, 這是我用 16 顆 1TB RAID-5 做出來的效能, 在 VM 裡面的兩顆 vHDD 之間互拷:

理論上, 8 顆 RAID-5 本機 VM 內互拷應該要有接近上面一半的效能.

下面也是同樣環境, 但透過 10GbE 網路兩台 Host 互拷的效能:

以上環境都沒有用到特殊的 Storage Appliance, 只是單純用 Windows SMB 互傳而已.
上面都還沒有調整到最高效能, 只是隨便裝裝就測了, 如果要仔細調的話, 還可以更高.

raytracy iT邦大神 1 級 ‧ 2015-09-03 15:50:33 檢舉

下面這張, 是我在前面的 Lab 內, 用一台 Win8 VM 自己本機互拷檔案的效能:

從這裡看, 你就知道為何我前面說: 有信心在網路速度提升後, 可以突破 100MB/sec....

77012904 iT邦新手 3 級 ‧ 2015-09-04 09:53:33 檢舉


昨日我把這個畫面中,客體記憶體出現橘色以上的虛擬機,配置更多的記憶體之後. 現在速度似乎恢復正常了,可以維持在80MB/sec

raytracy iT邦大神 1 級 ‧ 2015-09-04 11:07:10 檢舉

77012904提到:
客體記憶體出現橘色以上的虛擬機,配置更多的記憶體之後. 現在速度似乎恢復正常了

好, 那這代表, 這些記憶體不足的 VM, 一直持續在做 Memory Paging 的動作, 導致 Disk 需要有持續的大量 I/O, 干擾了你的寫入效率.

chenyulin iT邦新手 4 級 ‧ 2015-09-04 11:39:23 檢舉

VM記憶體不足,用到虛擬記憶體(分頁檔),把實體Disk I/O吃走了

77012904 iT邦新手 3 級 ‧ 2015-09-04 18:54:58 檢舉

原來如此,謝謝你的解說!

0
cmwang
iT邦高手 1 級 ‧ 2015-09-02 21:40:50

在VM上搞I/O(包括網路和Storage都算)本來就吃力不討好了,雖然有很多降低overhead的方法,但是限制還是不少就是了落寞落寞....

77012904 iT邦新手 3 級 ‧ 2015-09-02 21:45:53 檢舉

若有什麼方法,可以提出討論?

okra iT邦研究生 3 級 ‧ 2015-09-04 02:55:37 檢舉

cmwang提到:
在VM上搞I/O(包括網路和Storage都算)本來就吃力不討好了

讚
ZFS Production Environment需要EEC RAM,eMLC SSD,fiber gigabit network,如果使用PCI passthrough(DirectPath I/O),可以virtualize FreeNAS,就像安裝在實體硬體上,效能沒兩樣。

我要發表回答

立即登入回答