ZFS文件系統的部署規劃建議

存儲系統以及文件系統的部署規劃遠比調優重要,因爲一旦存儲了數據,可以調整的餘地已
經非常小了。以下是關於ZFS文件系統規劃的一些建議:
● 使用最新的Solaris版本或OpenSolaris版本。
ZFS技術更新非常快,其中包含了很多性能改進和bug的修復。這些更新反映在最新的
OpenSolaris版本里。Solaris裏關於ZFS的更新會滯後一些。如果要求不是很嚴格的話,可以
考慮使用OpenSolaris。(每一個OpenSolaris的版本,SUN可以提供18個月的付費支持。每
一個Solaris的版本,SUN可以提供至少7年的付費支持。)
● 對於server應用應使用64位的Solaris操作系統
ZFS以及ARC使用kernel memory。如果使用32位的操作系統,由於kernel的地址空間和應
用的地址空間共享4GB,ZFS會受到很大限制。另外對於x86/x64硬件,64位系統通常會得到
更高的性能。
● 使用整個磁盤而不是某個分區或slice來作爲ZFS的存儲設備
使用整個磁盤作爲ZFS的存儲設備可以使ZFS打開磁盤的寫cache,並且方便將來存儲池
import和export的操作(比如磁盤遷移到另外的機器上)。一個磁盤上如果有多個分區並安裝
了不同的文件系統將會帶來磁盤管理上的麻煩。
● 讓ZFS直接管理磁盤
實踐證明,讓ZFS直接管理磁盤而不是hardware RAID往往可以得到更好地性能。因爲ZFS
有自己的I/O 調度的算法,讓ZFS直接管理磁盤可以讓ZFS更好地做出I/O調度以及文件系統
塊的分配策略。如果要使用外部存儲系統,建議每個ZFS看到的設備包含較少的磁盤。總之,
ZFS更喜歡廉價的硬件。
● 存儲池的設備分散到多個控制器上
這主要是從性能和可用性上的考慮。例如,對於Sun x4500,一個可選的Pool的規劃爲:
root@x4500 # zpool create -f zfspool \
raidz c5t7d0 c4t7d0 c7t7d0 c6t7d0 c1t7d0 c0t7d0 \
raidz c5t6d0 c4t6d0 c7t6d0 c6t6d0 c1t6d0 c0t6d0 \
raidz c5t5d0 c4t5d0 c7t5d0 c6t5d0 c1t5d0 c0t5d0 \
raidz c4t4d0 c7t4d0 c6t4d0 c1t4d0 c0t4d0 \
raidz c5t3d0 c4t3d0 c7t3d0 c6t3d0 c1t3d0 \
raidz c5t2d0 c4t2d0 c7t2d0 c6t2d0 c0t2d0 \
raidz c5t1d0 c4t1d0 c7t1d0 c1t1d0 c0t1d0 \
raidz c4t0d0 c7t0d0 c6t0d0 c1t0d0 c0t0d0 \
spare c0t3d0 c1t2d0 c6t1d0
● 把root pool 和data pool分開
Opensolaris現在支持ZFS作爲根文件系統,這帶來了很多好處,比如快照,克隆,系統升級
方便等。從維護的角度來講,應該把root pool 和data pool分開,因爲root pool有一些限制比
如不能做RAIDZ等。另外如果root pool 和data pool不分開的話,重裝系統或遷移數據時都會
有麻煩。
● 不要讓ZFS Pool太滿
當文件系統太滿時,對於寫操作需要尋找空閒塊的時間會明顯變長,影響性能。
● 對於大量小文件的應用不建議使用RAIDZ
前面對ZFS文件系統的介紹中提到,RAIDZ會影響讀操作的性能。因爲一個文件系統塊被均
勻分攤到RAIDZ group的所有磁盤上,讀一個塊需要讀RAIDZ group中所有的磁盤。這對於
小文件來講性能影響會尤其明顯。另外大量小文件意味着大量的metadata,如果建了一個大的
基於RAIDZ的存儲池,當RAIDZ做數據恢復時磁盤重建的時間可能會很長。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章