正在DIY一套家庭用NAS系統(tǒng),通過手機(jī),PC,NB,ipad,高清等設(shè)備共享數(shù)據(jù),統(tǒng)一數(shù)據(jù)源訪問,提高數(shù)據(jù)一致性。
ZFS是個(gè)不錯(cuò)的東東,出來時(shí)間不長(zhǎng),但關(guān)注不小,未來文件系統(tǒng)的方向。借FreeNAS先學(xué)習(xí)一下。
ZFS最佳實(shí)踐指南
(注:本文目前的寫作背景是Solaris 10 以及OpenSolaris,但同樣對(duì)FreeBSD具有參考作用,
原文請(qǐng)參見:http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide)
原文2007年11月12日更新
1ZFS管理事項(xiàng)
1.1ZFS存儲(chǔ)池建議
本節(jié)描述了配置ZFS存儲(chǔ)池的通用建議。
1.1.1系統(tǒng)
1.1.1.1內(nèi)存與交換空間
1.1.2存儲(chǔ)池
# zpool create tank mirror c1t0d0 c2t0d0
# zpool create tank mirror c1t0d0 c2t0d0 spare c1t1d0 c2t1d0
1.1.2.1簡(jiǎn)單的或條帶化的存儲(chǔ)池限制
簡(jiǎn)單的或條帶化的存儲(chǔ)池有一些應(yīng)被考慮的限制。
# zpool add tank c2t2d0
# zpool replace tank c0t2d0 c2t2d0
# zpool replace tank c0t2d0 ### 錯(cuò)誤:不能再創(chuàng)建數(shù)據(jù)因?yàn)椴淮嬖谌哂? zpool replace tank c0t2d0 c2t2d0 ### ok
1.1.3多個(gè)存儲(chǔ)池于同一系統(tǒng)
1.1.3根存儲(chǔ)池建議
若您正在使用ZFS根文件系統(tǒng)(root filesystem),請(qǐng)保持根存儲(chǔ)池(即存儲(chǔ)池的數(shù)據(jù)集是被分配給根文件系統(tǒng)的)與用于數(shù)據(jù)的存儲(chǔ)池分開。關(guān)于這一策略存在幾個(gè)理由:
給我們當(dāng)前分配的作為單獨(dú)的文件系統(tǒng)(例如:根,/usr和/var)配置不同的存儲(chǔ)池根本不合理。這或許都不是一個(gè)所支持的配置。對(duì)于這些目錄有單獨(dú)的數(shù)據(jù)集倒是可能,但只能在同一個(gè)存儲(chǔ)池中。關(guān)于ZFS和SVM鏡像的根內(nèi)容,請(qǐng)參見UFS/SVM節(jié)。
1.2存儲(chǔ)池性能事項(xiàng)
1.2.1通用存儲(chǔ)池性能事項(xiàng)
1.2.1.1單獨(dú)日志設(shè)備
ZFS intentlog(ZIL,ZFS意圖日志)符合POSIX的同步事務(wù)(synchronoustransactions)的要求。例如,數(shù)據(jù)庫從系統(tǒng)調(diào)用返回時(shí)常常需要其事務(wù)要在穩(wěn)定的存儲(chǔ)設(shè)備上。在默認(rèn)情況下,intentlog從主存儲(chǔ)池中分配塊。然而,若使用獨(dú)立的intentlog設(shè)備,其可能會(huì)獲得更佳的性能,像NVRAM或?qū)S么疟P。請(qǐng)確定是否一個(gè)單獨(dú)的日志設(shè)備適合您的環(huán)境:
1.2.1.2 內(nèi)存與動(dòng)態(tài)重構(gòu)(DynamicReconfiguration)建議
ZFS的自適應(yīng)置換高速緩存(Adaptive ReplacementCache,ARC)試圖使用最多的系統(tǒng)可用內(nèi)存來緩存文件系統(tǒng)數(shù)據(jù)。默認(rèn)是使用除了1GB以上的所有的物理內(nèi)存。當(dāng)內(nèi)存壓迫性增長(zhǎng)時(shí),ARC會(huì)放棄內(nèi)存。請(qǐng)?jiān)谌缦虑樾螘r(shí)考慮限制最大ARC內(nèi)存的使用范圍:
這些限制內(nèi)存使用范圍的方式被認(rèn)為會(huì)使ARC不能緩存更多的文件系統(tǒng)數(shù)據(jù),這可能會(huì)對(duì)性能有所影響??傊魞?nèi)存既沒被ZFS使用也沒被其他系統(tǒng)組件使用,限制ARC則是浪費(fèi)資源的。注意非ZFS文件系統(tǒng)通常仍會(huì)設(shè)法使用系統(tǒng)的空閑內(nèi)存來緩存數(shù)據(jù)。調(diào)節(jié)ARC的詳細(xì)信息,請(qǐng)參考如下段落:http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide#Limiting_the_ARC_Cache
1.2.2RAID-Z配置要求及建議
一個(gè)以N塊X大小和P個(gè)奇偶校驗(yàn)磁盤的RAID-Z配置可以擁有大約(N-P)×X的字節(jié)并能承受P個(gè)設(shè)備故障而不破壞數(shù)據(jù)完整性。
1.2.3鏡像配置建議
1.2.3 我應(yīng)該配置RAID-Z、RAID-Z2還是鏡像存儲(chǔ)池?
通常需要考慮的是您的目標(biāo)是最大磁盤空間還是最優(yōu)性能
為獲得更好的性能,在大量的、不可緩存的、隨機(jī)讀取負(fù)載上,鏡像配置要顯著的勝于RAID-Z配置。關(guān)于RAIDZ所需注意事項(xiàng)的更多信息,請(qǐng)參考如下blog:WHEN TO (AND NOT TO) USE RAID-Z
1.2.4RAID-Z配置舉例
例如在Tunmper上的RAID-Z配置,將c3t0和c3t4(磁盤0和1)鏡像作為您的根存儲(chǔ)池,剩下的46塊可用磁盤用于用戶數(shù)據(jù)。如下的raidz2配置舉例說明了如何配置剩下的46塊盤:
1.3ZFS遷移事項(xiàng)
1.3.1ZFS與分區(qū)技術(shù)(Zone)
當(dāng)在安裝有區(qū)域(zone)的Solaris系統(tǒng)上使用ZFS數(shù)據(jù)集(dataset)時(shí)請(qǐng)牢記如下幾點(diǎn):

想要了解區(qū)域使用ZFS的更多信息,請(qǐng)參見如下FAQ條目:[1](http://opensolaris.org/os/community/zones/faq/#cfg_zfsboot)
1.3.2 UFS/SVM
當(dāng)下,您不能在當(dāng)前的Solaris10發(fā)行版中使用ZFS為根文件系統(tǒng)。如果您想使用基于鏡像備份的根文件系統(tǒng),您需要使用SVM將包含系統(tǒng)軟件(root,/usr,/var,等等)的分區(qū)(slice)進(jìn)行鏡像。其他所有存儲(chǔ)都可以使用ZFS來進(jìn)行管理。請(qǐng)不要使用ZFS和SVM重疊存儲(chǔ)。例如,您可以使用磁盤或分區(qū)作為SVM卷或者ZFS存儲(chǔ)池的一部分。但請(qǐng)不要在相同的磁盤或者分區(qū)上使用SVM和ZFS配置。當(dāng)將數(shù)據(jù)從UFS文件系統(tǒng)遷移至ZFS文件系統(tǒng)時(shí),請(qǐng)參考如下實(shí)踐:
1.3.2.1UFS/SVM 交互
ZFS可以不需要任何額外的卷管理軟件即能很好工作。如果您需要額外級(jí)別的卷管理,ZFS要求能將連續(xù)的1至4MB的邏輯塊映射至連續(xù)的物理塊上。若可以達(dá)到這一要求,我們就能以ZFS的功能使用卷了。
1.3.3 VxVM/FS
2常規(guī)ZFS管理信息
3應(yīng)用服務(wù)器使用ZFS事項(xiàng)
3.1 ZFSNFS 服務(wù)器實(shí)踐
請(qǐng)參考如下課程所述之UFS至ZFS遷移經(jīng)驗(yàn):
# zfs set sharenfs=on export/home
# zfs share export/home
關(guān)于跨NFS的ZFS的性能信息,請(qǐng)參閱ZFS與NFS服務(wù)器性能。
3.1.1基于ZFS的NFS服務(wù)器優(yōu)勢(shì)
3.2ZFS主目錄服務(wù)器實(shí)踐
當(dāng)規(guī)劃您的ZFS主目錄(homedirectory)時(shí),請(qǐng)參考如下實(shí)踐:
當(dāng)從UFS文件系統(tǒng)向ZFS文件系統(tǒng)遷移數(shù)據(jù)時(shí),請(qǐng)參考如下實(shí)踐:
請(qǐng)參閱 #ZFS_NFS_Server_Practicessection for additional tips on sharing ZFS home directories overNFS.
3.2.1ZFS主目錄服務(wù)器的好處
3.3ZFS郵件/新聞服務(wù)器
3.4ZFS軟件開發(fā)服務(wù)器
3.5ZFS備份還原建議
3.5.1使用ZFS快照
# zfs snapshot -rtank/home@monday
3.5.2使用ZFS于AVS
Sun StorageTek AvailabilitySuite(AVS),是一套Solaris的基于主機(jī)的數(shù)據(jù)服務(wù),其同Veritas VVR(VolumeReplicator)和Flashsnap(point-in-time copy,時(shí)間點(diǎn)副本)產(chǎn)品類似,當(dāng)前在SolarisExpress發(fā)行版中可用。 SNDR(Sun StorEdge Network Data Replicator)同ZFSsend和recv功能不同,其具備的是固定時(shí)間(time-fixed)的復(fù)制功能。例如,您可以獲得一時(shí)間點(diǎn)快照,復(fù)制它,或是基于先前快照的差別進(jìn)行復(fù)制。AVSII與SNDR功能的結(jié)合,還允許您進(jìn)行固定時(shí)間復(fù)制。其他模式的AVS SNDR復(fù)制功能允許您獲得CDP(Continuous DataReplication,持續(xù)數(shù)據(jù)復(fù)制)。ZFS當(dāng)前并沒有這類功能。關(guān)于AVS的更多信息,請(qǐng)參見OpenSolarisAVS項(xiàng)目。請(qǐng)?jiān)诖瞬榭碅VS/ZFS演示。
3.5.3使用ZFS于企業(yè)備份解決方案
tsm> q file/opt/SUNWexplo/output # Last Incr Date Type File Space Name — ————–—- —————
1 08/13/07 09:18:03 ZFS /opt/SUNWexplo/output ^ |__正確的文件系統(tǒng)類型
關(guān)于ZFS的企業(yè)級(jí)備份解決方案問題的最新信息,請(qǐng)參見ZFSFAQ為了能充分利用ZFS的功能,如快照,來提高備份和還原的進(jìn)度,ndmp服務(wù)會(huì)在Solaris(首先在OpenSolaris)中發(fā)行。根據(jù)這些附加功能,企業(yè)級(jí)備份解決方案可以通過充分利用快照來提升對(duì)大存儲(chǔ)庫的數(shù)據(jù)保護(hù)。
3.6ZFS與數(shù)據(jù)庫建議
關(guān)于正在進(jìn)行的ZFS和數(shù)據(jù)庫性能測(cè)試的信息,請(qǐng)參看zfs_and_databases。還可參見ZFSfor Databases
概要說明
截至2007年7月,如下功能會(huì)對(duì)數(shù)據(jù)庫性能產(chǎn)生影響:
Oracle事項(xiàng)
請(qǐng)參閱一些在PostgreSQL和MySQL中用db_STRESS性能測(cè)試獲得的真實(shí)結(jié)果。
3.7ZFS與復(fù)合存儲(chǔ)事項(xiàng)
3.8驅(qū)動(dòng)問題
4ZFS管理/觀察工具
5虛擬化事項(xiàng)
5.1ZFS與虛擬帶庫(VTL)
虛擬帶庫解決方案是通過對(duì)模擬磁帶、磁帶驅(qū)動(dòng)器和帶庫的使用而出現(xiàn)的一種硬件與軟件的結(jié)合體。虛擬帶庫被用于備份/存檔系統(tǒng),被定位于用來減少硬件和軟件的成本。虛擬帶庫是大量磁盤空間的吞噬者,我們相信ZFS將允許其更有效和安全的管理大量的、在線磁盤空間。
5.2ZFS與VMWare
6ZFS性能事項(xiàng)
對(duì)于基本系統(tǒng)、內(nèi)存、存儲(chǔ)池和副本建議,請(qǐng)參考如下章節(jié):
6.1ZFS與應(yīng)用程序事項(xiàng)
6.1.1ZFS與NFS服務(wù)器性能
配有ZFS的NFS,這被應(yīng)用在許多不同地方并未報(bào)有明顯不足。很多人報(bào)告對(duì)性能表示失望,但這恐怕是將跨NFS的ZFS的性能同本地文件系統(tǒng)所比較了。眾所周知相比于本地或直連的文件系統(tǒng)而言,提供NFS服務(wù)會(huì)明顯降低速度。尤其是對(duì)于低線程并發(fā)的作業(yè)量而言。有一種危險(xiǎn)的創(chuàng)建更優(yōu)的跨NFS的ZFS的方式,是以犧牲數(shù)據(jù)完整性為代價(jià)設(shè)定內(nèi)核變量zil_disable。該參數(shù)的設(shè)定并不被推薦。請(qǐng)參考:ZFS與數(shù)據(jù)庫建議。關(guān)于跨NFS的ZFS性能的更多詳細(xì)信息,請(qǐng)參見zfs and nfs。
愛華網(wǎng)


