• 2

網路傳輸測試 測試四:ZFS @ Solaris Express 11

什麼是ZFS? 為什麼是ZFS?? 以下是維基百科的介紹:

維基百科 - ZFS

簡單來說,ZFS是一種檔案系統,它跟我們所熟悉的Windows檔案系統很不一樣。它沒有磁碟或是分割區的概念,它是以Pool(儲存池)為基準,所有加入Pool的儲存媒體(不論是硬碟、USB隨身碟、磁帶機等等),都能被系統所存取、共享。這麼說還是滿抽象的,舉個列:

假設你有一台Win系統的File Server,其中有一顆500G的硬碟拿來存放高清電影,並分享出來給其他電腦存取。當這顆500G的硬碟滿了,而你想再擴增一顆1TB的硬碟時,你可能有兩種做法:

一、500G的資料不動,新的資料存到1TB那一顆。對系統而言,你存放影片的磁碟就由一個變成兩個,當你要搜尋某個影片時,勢必得在兩個磁碟內來回尋找(尤其是你不記得放在那個磁碟時)。更不用說,1TB也不夠用,要再擴充一顆2TB硬碟時。

二、500G的資料轉存至1TB那一顆,然後讓500G退役或做其他用途。避免了上述管理上的不方便,不過大量資料的轉存很麻煩,當1TB不夠用時,相同的動作得再重覆一次。另外,要處理汰換下來的硬碟也是件麻煩事。

以上的情形若是套用在ZFS的系統上,解決方法很簡單。首先建立一個叫Movie的Pool存放高清影片,當容量不夠時,只要將1TB的硬碟加入Movie這個Pool,容量即刻由500G擴增到1.5TB,系統會自動分配檔案的存放。

上述的也是我目前所碰到的問題,所以當我看到alfonsoh兄這篇 “我的 NAS 檔案伺服器之路-Sun之OpenSolaris” 時,就決定我的下一代File Server要以ZFS為基底來開發,只是這麼多年過去了,次世代檔案伺服器還沒生出來…

當然,ZFS還有許多優良的特性,也有缺點,不過此篇不是要討論這個。此篇想討論的是ZFS的File Server在實作上,到底能提供多大的網路傳輸效能。







測試環境:
網路傳輸測試 測試四:ZFS @ Solaris Express 11


測試環境Zoey

Sophie

CPUQ9400 2.66GE5400 2.7G
RAM8G8G
OSWin7 x64Solaris Express 11 64bit
NICIntel 82567LM-3Intel 82566DM-2
HD Read/Write123 / 122127 / 126
RamDisk R/W2329 / 3949N/A

一號機不變,二號機更改作業系統為Solaris Express 11 64bit,Zpool的版本是V31,加掛napp-it套件。







測試一:單一磁碟
網路傳輸測試 測試四:ZFS @ Solaris Express 11

硬碟實際讀寫測試:
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

網路傳輸測試 測試四:ZFS @ Solaris Express 11

ZFS系統一樣會將記憶體拿來做檔案快取,而且設計的比Windows系統更聰明些,請看小檔案的「RAM -> Disk」這欄。測試「RAM -> Disk」時,必需先將測試檔案複製到Ramdisk。在「RAM -> Disk」時,雖然它們都是一樣的檔案,Windows系統將把它當作是新的複製;ZFS系統則會直接調用快取裏的檔案。



傳輸數據:
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

網路傳輸測試 測試四:ZFS @ Solaris Express 11

滿慘的,尤其是小檔案的傳輸。從硬碟的讀寫測試來看,瓶頸應該不在硬碟身上,那會是CIFS的效能不佳,導至傳輸效能的低落嗎?順帶一提,所有的測試都是在預設值下執行的。





測試二:HD*2
網路傳輸測試 測試四:ZFS @ Solaris Express 11

硬碟實際讀寫測試:
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

網路傳輸測試 測試四:ZFS @ Solaris Express 11

在原有的Pool裏再加入一顆硬碟會怎麼樣?

答案是,它的存取模式會變得類似Raid0,但不等於Raid0,只是類似,所以上面我並沒有標示為Raid0。除了容量立即擴增外,ZFS在寫入資料時並不是”等量”的,它會根據儲存媒體的不同狀況,寫入“變動(Adaptive)”的資料,也就是說兩邊的資料多寡可能會不一樣。因此,它的讀寫效能只會“趨近”於Raid0,但不會等同於Raid0。





傳輸數據:
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

網路傳輸測試 測試四:ZFS @ Solaris Express 11

若說Solaris網路傳輸不佳是卡在CIFS效能低落,那麼硬碟的存取速度,應當不致影響網路傳輸的結果。上圖紅框的部份,網路傳輸速度確實是有增長,後面的測試也證實四項數據中,只有「Zoe <- Sop」的大檔案傳輸有增加,只是增長的幅度多寡而巳,這個結果真難以理解…





測試三:Mirror
網路傳輸測試 測試四:ZFS @ Solaris Express 11

硬碟實際讀寫測試:
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

網路傳輸測試 測試四:ZFS @ Solaris Express 11

ZFS的Raid1模式稱之為Mirror,也就是鏡像。它跟傳統的Raid1不太一樣的地方在於,寫入的效能等同Raid1;讀取時會從組成磁碟中同時讀取,因此讀取的效能會接近Raid0。從上面的數據來看,測試軟體的數據確實符合這種特性,不過實測數據就沒那麼漂亮。

另外,ZFS的Mirror不限於只能複數硬碟組成,3顆、5顆都不是問題,很奇怪吧。若是在原有Mirror的Pool裏再加入一組Mirror會怎樣?答案是:會變成Raid 1+0。





傳輸數據:
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

網路傳輸測試 測試四:ZFS @ Solaris Express 11

和上面一樣,只有「Zoe <- Sop」的大檔案傳輸數據有增長,其他基本上不變。





測試四:Raidz
網路傳輸測試 測試四:ZFS @ Solaris Express 11

硬碟實際讀寫測試:
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

網路傳輸測試 測試四:ZFS @ Solaris Express 11

ZFS的Raid5模式稱為Raidz,Raid6模式稱為Raidz2,還多了一個Raidz3(允許最多同時故障三顆硬碟),不過建置成本也會很可觀。另外有一點跟傳統Raid5很不一樣的地方,它只要兩顆硬碟就能組成Raidz,神奇吧!

在Raidz底下,除了大檔案存取有增長外,小檔案的存取終於也變快了。



傳輸數據:
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

網路傳輸測試 測試四:ZFS @ Solaris Express 11

雖然本機小檔案的存取變快,卻未能像大檔案那樣對網路傳輸有影響。







測試五:HD*1 iSCSI
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11


傳輸數據:
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

網路傳輸測試 測試四:ZFS @ Solaris Express 11

和Windows系統的iSCSI一樣,對小檔案的傳輸很有幫助。但那讀取是怎麼一回事,是那裏搞錯了嗎?



和Win2008的iSCSI比較:
網路傳輸測試 測試四:ZFS @ Solaris Express 11


最後附上一張Pool模式對網路傳輸的影響:
網路傳輸測試 測試四:ZFS @ Solaris Express 11





結論:

很明顯的,以Solaris作為File Server,在網路傳輸的效能方面不及Windows系統。效能的瓶頸有兩個:一是大檔案的讀取被限制在60~70MB/s左右,但寫入沒問題;二是小檔案的“讀寫”被限制在5~7MB/s左右,兩邊都有這個情形,不太確定問題出在哪?

是ZFS的讀寫效能不足?

看起來不是,從上面的本機測試來看,ZFS的讀寫是十分優秀的,磁碟讀寫效能足以提供網路傳輸所需。雖然ZFS本機讀取效能佳,卻未能對網路傳輸提供同樣的效能…

那…是CIFS的效能不佳?

似乎也不是,因為若透過快取,網路的傳輸差不多能達到Giga-Lan的上限。

一定有一個因素造成此種情形的發生,影響了網路的傳輸,但這個因素是什麼,目前我還不知道,還有待去觀察、測試…



同場加映:10G檔案傳輸

之前在測試Win7傳輸時發現一個現象,傳輸效能會隨著檔案增大而降低。我很好奇,在Solaris系統上是否有類似的現象??

10G Win7 --> Solaris Express 11
網路傳輸測試 測試四:ZFS @ Solaris Express 11

10G Win7 --> Win7
網路傳輸測試 測試四:ZFS @ Solaris Express 11

10G Win7 --> Win2008
網路傳輸測試 測試四:ZFS @ Solaris Express 11

看起來是沒有這個狀況,且Raidz的效能比Win2008的Raid5要來得好。




To be continue…

網路傳輸測試 測試一:測試基準
網路傳輸測試 測試二:影響網路傳輸的因素
網路傳輸測試 測試三:Soft Raid @ Windows
網路傳輸測試 番外篇:殘酷的現實…
網路傳輸測試 測試五:ZFS 二回戰
2012-03-18 2:31 發佈
您好
我目前還沒正式升級到最新版本,
這兩週內會動工
不過在beta版時,CIFS的效能確實輸給2008版!
在我的環境中,落差不小⋯
因為我都用windows機作業單眼的大檔,再拷貝回solaris 備份。

題外話
這次會考慮新的virtual hub架構,直接在solaris機上用virtualbox跑windows作業
之前做起來由於沒有virtualhub,跑虛擬機連本機網芳實在是慢

X79. 8條RAM⋯流口水中
真相永遠只有一個!
我倒是準備測試ESXI的環境,我對這反而比較有興趣。
只是我碰到的這個問題似乎都沒什麼人反應,透過網路也很難找到類似的例子,不曉得自已是不是搞錯了,能否alfonsoh兄提供一下你的數據做為參考,謝謝!
express 11 不是很久以前的版本了?

cifs好像本來效率就不好。
用nfs試試看。

ksc91u wrote:
express 11...(恕刪)


Express11 是2010年出的版本,SNV_151a,在OpenSolaris被邪惡的Oracle搞掉後,算是目前最新的版本。OpenIndiana也是直到去年底才升到SNV_151a的版本。

NFS對我的意義不大,我主要還是用Windows系統…
thi wrote:
NFS對我的意義不大,我主要還是用Windows系統…


那能不能在Windows上面跑NFS去配合Solaris試試看呢

我要開機啦 wrote:
那能不能在Windo...(恕刪)


我覺得這樣做意義不太,即使測出來的數據很漂亮,我想一般人也不會在Windows底下用NFS…
我希望能測試在最符合一般人使用的環境下~~

thi wrote:
我倒是準備測試ESX...(恕刪)


可以阿~不過我最近忙碌,很怕來不及您的需求
您要用什麼樣的軟體測試呢?
如你上面的軟體嗎?


另外nfs一樣慢
總之express版本就是有問題,我之前在國外網站看測試也是

就等有時間來升級Solaris 11
真相永遠只有一個!
ESXI倒是不適用我的環境

因為現在電腦夠快,所以zfs server兼作我的windows遠端登入機(以前文章就寫了)

現在的目標是單機跑solaris,裝上virtualbox 跑windows 一機同時多用
也是想嘗試單機上直接使用windows軟體來整理照片

但有個實際的問題,跑虛擬機的那個pool絕對不可以兼作檔案伺服器的pool
會頓

我是用ssd組成 raidz1來跑 放三個windows都沒問題

ps:我連pfsense都移上虛擬機了
真相永遠只有一個!

alfonsoh wrote:
可以阿~不過我最近忙...(恕刪)


不急,我只是先行測試看看實際效果如何,好有個底。

測試方法就一般最簡單的,Server端分享出來,Client端掛載為網路磁碟機,用檔案總管複製貼上,記錄開始到結束的時間,把檔案大小除以傳輸時間,就得到平均傳輸速率。測試前會將兩台PC重開,去除快取的影響。這是最接近一般人的使用習慣,用FastCopy測試,大檔案還好,小檔案傳輸速率就差滿多的,所以我捨棄不用FC。

我現在碰到的問題是,從Server端讀取的速度,遠低於寫入Server端,這種傳輸的不對稱讓我覺得很奇怪。目前只知Server端透過網路讀取時才有這個現象,本機讀取正常,且CPU的影響很大。
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?