2014年3月26日 星期三

NexentaStor(ZFS) 與 Windows Storage Server 2012(ReFS + NTFS) 比較



NexentaStor
Windows Storage Server 2012 (ReFS + NTFS)
File System
ZFS
ReFS(無法作為開機磁區) + NTFS
發表年份
2005
2012
Hybrid Storage Pool
ZFS 原生支援
支援
Volume Max Size
16EB
256EB(理論) 16EB(實際)
Hot Spares
支援
支援
Read Cache
支援,分為 ARC(DRAM) & L2ARC(SSD) 兩層處理
支援 SSD Cache,但不支援 DRAM Cache(可透過 3-party 的元件解決)
Write Cache
支援 SSD
支援 SSD
授權方式/費用
以下價格最多能使用 8TB 的容量:


共有三種不同的 Support Level,分別為:
Silver($51,750)
Gold($83,700)
Platinum($125,550)


功能皆相同,磁碟數量、記憶體數量、CPU 數量都沒限制,但有總使用空間的限制(8TB / 16TB / 32TB …. etc)


每年續約 or 一次買 2 / 4 / 6 年的授權合約(買越長平均價格越便宜)
分為 Workgroup & Standard 版本:
=== Workgroup ===
最多 50 個連線
單一處理器插槽
最多 32 GB 的記憶體
最多 6 部磁碟 (不使用外接式 SAS)


=== Standard ===
連線數量無授權限制
多重處理器插槽
記憶體無授權限制
磁碟數量無授權限制
解除複寫、虛擬化 (主機外加 2 部虛擬機器,提供存放區及磁碟管理工具) 以及網路服務(無網域控制站)容錯移轉叢集,提供更高可用性
Microsoft BranchCache,降低 WAN 流量
支援協定
CIFS / SMB / NFS / iSCSI …. etc
CIFS / SMB / NFS / iSCSI …. etc
ReFS volume 無法使用 NFS,僅有 NTFS 能使用 NFS
操作介面
普通,透過 Web Browser
優,直接在作業系統 GUI 中操作
Deduplication(重複資料刪除)
ZFS 原生支援
支援,但有以下限制:
1. Windows Server 2012才能用 (沒有Deduplication Feature的Windows會抓不到Deduplicate後的檔案)
2. Boot 或 System 磁碟不能用
3. 不是NTFS的磁碟不能用 (新的ReFS也不行)
4. Cluster Shared Volumes(CSV)不能用
5. 加密檔案不能用
6. 暫時不能以群組原則設定
Snapshot (快照)
ZFS 原生支援
支援,但必須與 VSS(Volume Shadow Copy Service) 搭配才可以
Compress
ZFS 原生支援
不支援
HA(High Availability)
支援(JBOD + Multiple Servers)
支援(JBOD + Multiple Servers)
與 AD 整合
支援
支援
整合雲端
查無相關資訊
可與 Windows Azure 雲端服務整合

【備註】很多一樣的功能其實我並沒有列出來......只是個很簡單的比較...

心得


感覺 ReFS 根本就是跟著 ZFS 在走的,成熟度上還不足! (畢竟 ZFS 已經發展十年了....)

微軟雖然在廣告文宣上把 storage server 2012 的功能寫得很強,但事實上很多限制都沒寫出來.....評估 storage 解決方案時還是要注意一下...

不過看得出來微軟來勢洶洶啦~希望以後他可以更進步囉!

參考資料




2014年3月20日 星期四

[ZFS] 效能調校觀念 (ZIL、ARC、L2ARC)

要調校 ZFS storage 的效能,首先必須知道的就是 ZIL、ARC、L2ARC 這三個重要的機制,以下說明一下這三個機制的特性:

ZIL

因為 ZFS 在寫入的特性是 copy-on-write,因此若是要將 storage 用在大量 sync write 的情境下(例如:ESXi over NFS),要在大量的 IO 下兼顧效率與穩定性,SLC SSD 將會是較好的選擇。
且因為 ZIL 不需要太大容量,因此選擇小容量且高速的 SLC SSD 可以在大量 sync write 的情況下提升不少效能(國外論壇推薦 ZeusRAM)。
【重要】ZIL 要儘量選用耐用的裝置(或是不要設定 ZIL),因為 ZIL 掛掉可能也會造成 zpool 的損毀。(這問題在 ZFS v28 之後似乎已經解決,可參考此討論串)

ARC (Adaptive Replacement Cache)

ARC 是存在於記憶體中的超快速暫存區,大小約為系統總記憶體容量減去 1GB,假設系統共安裝了 32GB 的記憶體,ARC 的容量約為 31(32 - 1)GB。
這表示若是安裝了 32 GB 的記憶體在 server 上,ZFS system 則會使用約 31GB 作為 ARC 暫存讀取資料用。
想當然爾,系統記憶體越大,ARC 空間自然就越大,read performance 自然就會提升。

L2ARC (Second Level Adaptive Replacement Cache)

由於 RAM 價格的關係,ARC 的容量無法無限制的提升,因此 L2ARC 就被用來做為第二部份的 read cache 之用,因此適合使用速度快且符合經濟效益的裝置,以目前的狀況來說 SSD 是最佳選擇。(雖然速度比記憶體慢,但卻比一般硬碟快上許多)
由於此區掛了不會讓 zpool 中的資料損毀,選擇大容量且速度快的 MLC SSD 就可以了,建議容量是 ARC 容量(假設 31GB RAM)的 5 倍以下(150GB SSD),因為 L2ARC 的資料還是需要存放 index 資訊於 ARC 中,所以 L2ARC 容量過大也不會有太顯著的效果,當然選企業級的 SSD 穩定性肯定是更好,推薦 Intel DC S3500/S3700 系列(容量越大速度越快......)。
若是上述例子,做成 80GB SSD striped,效能應該會比單顆 160GB 更好。

ARC + L2ARC = 減少硬碟實際存取次數

當 ZFS 收到  read request 時,會做以下動作:
  1. 到 ARC 尋找資料,找到則 response
  2. ARC 沒有資料,到 L2ARC 尋找資料,找到則 response
  3. ARC 與 L2ARC 都沒有,到 Hard Disk 尋找資料,找到則 response
因此可以得知,若是 ARC & L2ARC 可以 cache 越多常用資料,容量大但速度慢的硬碟存取資料機會相對就會少了許多,資料大多都從 memory & SSD 回傳,自然可以大幅提升 ZFS 的讀取效能。

其他注意事項

  1. 在 ZFS layout 設定中,選擇兩個裝置 for ZIL,ZFS 會將其視為 miror,但 L2ARC 則不會視為 mirror。(實際上也真的不需要....)
  2. L2ARC 可以選用便宜的 MLC SSD,但 ZIL 最好選用 SLC SSD,因為 SLC SSD 較耐用且穩定(速度沒比較快)。
  3. 若是要打造全 SSD 的 ZFS filesystem,L2ARC 也就不需要了.....
  4. 若是要將 ZFS 用於虛擬化環境中,透過 template 產生大量 VM,讓每個 VM 擁有許多共同的資料;在存取時就會被視為常用資料存於 ARC or L2ARC 中,如此一來讀取效率可大幅提升。

參考資料