1. 程式人生 > >VxFS(Veritas File System)檔案系統簡介

VxFS(Veritas File System)檔案系統簡介

VxFS(Veritas File System)檔案系統通常被應用於分散式叢集、雙機、異地容災等高可靠解決方案中,它主要是和VCS/VVR/GCO/VxVM這些軟體配套使用。從我使用VxFS的經驗來看,該檔案系統的一大優勢是——由於HA的主、備節點上可以同時線上看到相同的磁碟組(Diskgroup),VxFS可以解實現自動對磁碟組加鎖、解鎖,從而保證儲存裝置只在主節點上可以I/O。

下面系統的介紹下VxFS及其使用方法:

Veritas File System (VxFS) 是首個商業日誌記錄檔案系統。通過日誌記錄功能,元資料更改首先寫入到日誌,然後再寫入到磁碟。由於無需在多處寫入更改,且元資料是非同步寫入的,因此吞吐量的速度較快。VxFS 也是基於擴充套件區的意向日誌記錄檔案系統。VxFS 設計用於要求高效能和高可用性,並且可以處理大量資料的操作環境。

一. VxFS 的主要元件包括:
1. 日誌記錄
任何檔案系統的一個重要環節都是如何在發生系統崩潰時進行恢復。早期的方法要求對整個檔案系統進行掃描,這往往會耗費較長的時間。較好的解決方案是採用對檔案的元資料進行日誌記錄的方法。

每當發生檔案系統更改,VxFS 都會將新屬性資訊記錄到檔案系統的保留區域內。只有元資料寫入日誌後,檔案系統才能將實際資料寫入到磁碟。如果發生系統崩潰,系統恢復程式碼會對元資料日誌進行分析並嘗試只清理這些檔案。如果不執行日誌記錄功能,則檔案系統檢查 (fsck) 必須檢視所有元資料。

意向日誌記錄可通過記錄檔案系統事務,最大限度地縮短系統異常關閉後的宕機時間。系統意外停止時,可重放此日誌,完成未完成的事務。檔案系統的檢查和修復時間可縮短至數秒,這與檔案系統的大小無關。

預設情況下,VxFS 檔案系統會在將事務提交到磁碟之前記錄檔案事務,從而縮短系統異常停止後檢查和修復檔案系統的時間。

2. 擴充套件區
擴充套件區是計算機檔案系統中儲存器的連續區域,保留用於檔案。開始向檔案寫入時,分配整個擴充套件區。再次向該檔案寫入時,資料從先前寫入停止的位置繼續。這樣可以減少或消除檔案碎片。由於 VxFS 是基於擴充套件區的檔案系統,因此,定址是通過擴充套件區(可由多個塊組成)而不是單塊段完成。因此,擴充套件區可提高檔案系統吞吐量。

3.檔案系統磁碟佈局
磁碟佈局是檔案系統在磁碟上儲存的方式。

二. VxFS的基本用法:
1. 建立一個VxFS檔案系統
mkfs命令通過對特定的字元裝置檔案的寫入建立VxFS檔案系統,特定的字元裝置是指一個slice或者一個VxVM的卷。Mkfs在檔案系統內建立一個root目錄和一個lost+found目錄。在執行mkfs之前,必須建立目標裝置。

建立檔案系統的命令為:
mkfs [ -F vxfs ] [generic_options] [ -o specific_options ] special [ size ]
其中解釋如下:
vxfs 檔案系統格式
generic_options 普通檔案系統選項
specific_options VxFS的特殊選項
-o largefiles 允許使用者建立超過2G的檔案
special 目標裝置
size 新檔案系統的大小,單位是sector
例如:
# mkfs -F vxfs /dev/vx/rdsk/diskgroup/volume 12288

2. Mount一個檔案系統
可以使用mount命令mount一個VxFS的檔案系統。當你使用mount命令時,一般的mount命令分析引數和-F FSType選項指定檔案系統。Mount命令首先查詢/etc/fs/FSType目錄,然後是/usr/lib/fs/FSType目錄。如果不提供-F選項,mount命令搜尋/etc/vfstab來制定檔案系統和掛接點。
在建立了VxFS檔案系統以後,你可以用mount命令來mount這個檔案系統。用法如下:
mount [ -F vxfs ] [generic_options ] [ -r] [-o specific_options] special mount_point
解釋如下:
vxfs 檔案系統
generic_options mount命令通用選項
specific_options VxFS的特別選項
special 特定塊裝置
mount_point 掛接點
-r 檔案系統只讀

例如:
# mount -F vxfs -o delaylog /dev/vx/dsk/fsvol/vol1 /ext

使用fstyp驗證檔案系統型別,方法如下:
fstyp -v special

3. 更改檔案系統大小
可以使用fsadm命令擴大或者縮小檔案系統。
3.1 擴寬一個檔案系統
如果一個VxFS檔案系統不夠大你可以增加它的大小,單位是512byte的塊。如果檔案系統滿了,忙等,可能失敗。擴充套件檔案系統的語法是:
/usr/lib/fs/vxfs/fsadm [ -b newsize ] [ -r rawdev ] mount_point
解釋如下:
newsize 檔案系統需要增加的塊
mount_point 檔案系統的掛接點
-r rawdev 如果在/etc/vfstab中沒有的或者fsadm不能識別的原裝置,就制定原裝置的目錄和檔名
例如:
fsadm -b 22528 /ext
給/ext擴充套件到22528個塊

3.2 縮小一個檔案系統
就算檔案系統已經mount了,你也可以使用fsadm來減小檔案系統的大小。命令語法是:
fsadm [ -b newsize ] [ -r rawdev ] mount_point
例如:
#fsadm -b 20480 /ext

3.3 改造一個檔案系統
你可以使用fsadm來改造一個有碎片的檔案系統,這樣有可能可以減少前面介紹的方法不能減小檔案系統大小。
語法如下:
fsadm [ -e ] [ -d ] [-E ] [ -D ] [ -r rawdev ] mount_point
解釋如下:
-d 對目錄重新排序,整理碎片
-D 生成碎片報告
-e 最小化檔案系統碎片
-E 生成擴充套件碎片報告
例如:
# fsadm -EeDd /ext

4. 備份和恢復一個檔案系統
備份一個檔案系統,需要先建立一個只讀的檔案系統快照,然後備份這個快照。這個過程允許你保持主檔案系統線上。這個快照是建立快照期間的一個檔案系統拷貝。
4.1 建立和mount一個檔案系統快照
備份一個VxFS的檔案系統的第一步是建立和掛接一個快照檔案系統,建立和掛接的語法如下:
mount [ -F vxfs ] -o snapof=source, [snapsize=size] destination snap_mount_point
解釋如下:
source 需要拷貝的檔案系統的裝置名或者掛接點
destination 建立快照的目標裝置名
size 大小
snap_mount_point 掛接快照的位置,之前必須存在
例如:
在/dev/vx/dsk/fsvol/vol1上建立一個/home的快照檔案系統並把它掛接到/snapmount下:
#mount -F vxfs -o snapof=/dev/vx/dsk/fsvol/vol1,snapsize=32768 \
/dev/vx/dsk/fsvol/vol1 /snapmount
然後就可以備份檔案系統了

4.2 備份一個檔案系統
建立了快照檔案系統以後可以使用vxfump來備份它,備份一個檔案系統的語法是:
vxdump [ -c ] [-f backupdev] snap_mount_point
-c 指定使用盒式磁帶
backupdev 備份檔案系統的裝置
snap_mount_point 快照檔案系統掛接點
例如:
備份掛接在/snapmount下VxFS快照檔案系統到叫做/dev/rmt/00mm的磁帶裝置上,輸入:
#vxfump -cf /dev/rmt/00m /snapmount

4.3 恢復一個檔案系統
備份一個檔案系統以後,可以使用vxrestore命令來恢復它。首先,建立並掛接一個空的檔案系統,然後是用下面的語法來恢復他:
vxrestore [-v] [-x] [filename]
解釋如下:
-v 指定詳細模式
-x 從磁帶上解壓指定檔名的檔案
filename 恢復到的檔案或者目錄,如果filename省略,根資料夾被解壓
例如:
使用/restore做為掛接點恢復一個VxFS快照檔案系統,輸入:
#vxrestore -vx /restore

5. vxfs檔案系統的快速I/O實驗
我們可以在兩個不同的檔案系統上做一個試驗,來驗證vxfs的快速I/O特性。首先建立一個vxfs的檔案系統,然後在一個ufs的檔案系統和一個vxfs上一起開始建立一個500M大小的檔案,ufs檔案系統先做。
使用mkfile命令:
#mkfile 500m testfile
最終的測試結論是vxfs的I/O速度比ufs快得多。

三. VxFS的整體評價:
無需對資料或資料鎖定進行限制,也無需增加儲存就能完成完全備份;
資料訪問不中斷;
大型檔案和I/O(如圖形和視訊檔案)吞吐量更大;
通過改善檔案系統的佈局而提高效能;
自動調整I/O策略,使之滿足VERITAS Volume Manager的資料;
佈局、從而提供最佳的效能;
管理檔案系統的靈活性和磁碟效能相結合;
提高NFS環境中UFS上的效能;
通過優化大型I/O請求的吞吐量而提高效能;
輕鬆地滿足大量使用者對空間的需求。