首先介紹一下fstab :這個文件描述系統中各類文件系統的信息。通常而言,應用程序僅讀取這個文件,而不對它進行寫操做。對它的維護是系統管理員的工做。在這個文件中,每一個文件系統用一行來描述,在每一行中,用空格或TAB符號來分隔各個字段,文件中以#開頭的行是註釋信息。Fstab文件中的紀錄的排序十分重要。由於fsck,mount或umount等程序在作它們的工做時會按此順序進行。
接下來整理一下它的配置語法:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1 linux
fs_spec :該字段定義但願加載的文件系統所在的設備或遠程文件系統,對於通常的本地塊設備狀況來講:IDE設備通常描述爲/dev/hdXN,X是IDE設備通道(a, b或者c),N表明分區號;SCSI設備一描述爲/dev/sdXN。對於procfs,使用`proc'來定義。對文件系統的定義(fsspec),它描述了將被裝載的塊設備或遠程文件系統。對於一般的mount操做而言,這個字段應該包括一個將被裝載的塊設備的設備結點(經過mknod命令來建立)或指向這類結點的鏈接(例如/dev/cdrom或/dev/sdb),對於NFSmount操做,這個字段應該包含host:dir格式的信息,對於進程文件系統procfs,使用proc。除了顯示的使用設備名,你可使用設備的UUID或設備的卷標籤,例如,你能夠在這個字段寫成「LABAL=root」或「UUID=3e6be9de-8139-11d1-9106-a43f08d823a6」,這將使系統更具伸縮性。例如,若是你的系統添加或移除了一個SCSI硬盤,這有能夠改變你的設備名,但它不會修改你的卷標籤。
fs_file: 該字段描述但願的文件系統加載的目錄點,對於swap設備,該字段爲none;對於加載目錄名包含空格的狀況,用40來表示空格。描述文件系統的載入點,對於交換分區(swap),這個字段定義爲none,若是在載入點的路徑中包含空格符,能夠用「\040」來替代空格符。
fs_type: 定義了該設備上的文件系統,通常常見的文件類型爲ext2 (Linux設備的經常使用文件類型)、vfat(Windows系統的fat32格式)、NTFS、iso9600等.文件系統類型(fsvfstype),主要用來定義文件系統的類型。Linux系統支持大量的文件類型,包括sdfs,affs,autofs,jfs,minix,msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs,,smbfs,sysv, tmpfs, udf, ufs, umsdos, vfat, xenix,xfs等等。若是想了解你的kernel目前支持哪些文件系統,能夠查看/proc/filesystems的內容。若是這個字段定義爲swap,這條紀錄將關聯到一個用於交換目的的文件或分區。若是這個字段定義爲ignored,這行將被忽略。這對於顯示目前沒有使用的分區很是有用。
fs_options: 指定加載該設備的文件系統是須要使用的特定參數選項,多個參數是由逗號分隔開來。文件系統選項(fsmntops)在裝載文件系統時使用的裝載選項。多個選項之間用逗號作分隔符,這些選項列表包括了裝載類型以及對於該文件系統合適的其它裝載選項。對於非NFS系統可用的裝載選項能夠參看mount命令的說明,對於nfs系統的選項能夠查看關於nfs的文檔。對於全部文件系統都適用的選項有noauto(當使用mount–a命令時不載入),user(容許用戶進行裝載),owner(容許設備全部人裝載),_netdev(設備須要網絡),後兩個選項是linux系統所特有的。
對於大多數系統使用"defaults"就能夠知足須要。其餘常見的選項包括:
選項 含義
ro 以只讀模式加載該文件系統
sync 不對該設備的寫操做進行緩衝處理,這能夠防止在非正常關機時狀況下破壞文件系統,可是卻下降了計算機速度
user 容許普通用戶加載該文件系統
quota 強制在該文件系統上進行磁盤定額限制
noauto 再也不使用mount -a命令(例如系統啓動時)加載該文件系統
fs_dump: 該選項被"dump"命令使用來檢查一個文件系統應該以多快頻率進行轉儲,若不須要轉儲就設置該字段爲0.文件系統頻率(fs_freq),被dump程序使用來肯定哪一個文件系統須要dump,若是最後一個字段沒有設置,系統將認爲其值爲0,而dump程序則認爲此文件系統無需dump。
fs_pass: 該字段被fsck命令用來決定在啓動時須要被掃描的文件系統的順序,根文件系統"/"對應該字段的值應該爲1,其餘文件系統應該爲2。若該文件系統無需在啓動時掃描則設置該字段爲0.被fsck程序所使用來肯定進行在系統重啓進行文件系統檢查時的順序,對於根系統/這個值應設爲1,其它文件系統能夠設爲2,在同一個物理硬盤內的文件系統應該被順序檢測,而不一樣硬盤中的文件系統則應該同時檢測以充分利用系統的並行性。若是最後一個字段值爲0或沒有設置,fsck程序裝跳過此文件系統的檢測。在linux編程中能夠用getmntent過程來訪問這個文件的內容。web
--------------------------------------------------------------------------------
其中fs_options參數值得一提,這個參數在mount的目標文件時nfs文件時,參數能夠是:
HARD:
NFS CLIENT會不斷的嘗試與SERVER的鏈接(在後臺,不會給出任何提示信息,在LINUX下有的版本仍然會給出一些提示),直到MOUNT
上。
SOFT:
會在前臺嘗試與SERVER的鏈接,是默認的鏈接方式。當收到錯誤信息後終止mount嘗試,並給出相關信息。
例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
rsize和wsize:
文件傳輸尺寸設定:wsize 來進行設定。這兩個參數的設定對於NFS的執行效能有較大的影響
bg:
在執行mount時若是沒法順利mount上時,系統會將mount的操做轉移到後臺並繼續嘗試mount,直到mount成功爲止。(一般在設
定/etc/fstab文件時都應該使用bg,以免可能的mount不上而影響啓動速度)
fg:
和bg正好相反,是默認的參數
nfsvers=n:
設定要使用的NFS版本,默認是使用2,這個選項的設定還要取決於server端是否支持NFS VER 3
mountport:
設定mount的端口
port:
根據server端export出的端口設定,例如若是server使用5555端口輸出NFS,那客戶端就須要使用這個參數進行一樣的設定
timeo=n:
設置超時時間,當數據傳輸遇到問題時,會根據這個參數嘗試進行從新傳輸。默認值是7/10妙(0.7秒)。若是網絡鏈接不是很穩定的話就要加大這個數值,而且推薦使用HARD MOUNT方式,同時最好也加上INTR參數,這樣你就能夠終止任何掛起的文件訪問。
intr:容許通知中斷一個NFS調用。當服務器沒有應答須要放棄的時候有用處。
udp:使用udp做爲nfs的傳輸協議(NFS V2只支持UDP)
tcp:使用tcp做爲nfs的傳輸協議
namlen=n:設定遠程服務器所容許的最長文件名。這個值的默認是255
acregmin=n:設定最小的在文件更新以前cache時間,默認是3
acregmax=n:設定最大的在文件更新以前cache時間,默認是60
acdirmin=n:設定最小的在目錄更新以前cache時間,默認是30
acdirmax=n:設定最大的在目錄更新以前cache時間,默認是60
actimeo=n:將acregmin、acregmax、acdirmin、acdirmax設定爲同一個數值,默認是沒有啓用。
retry=n:設定當網絡傳輸出現故障的時候,嘗試從新鏈接多少時間後再也不嘗試。默認的數值是10000 minutes
noac: 關閉cache機制。
同時使用多個參數的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs
請注意,NFS客戶機和服務器的選項並不必定徹底相同,並且有的時候會有衝突。好比說服務器以只讀的方式導出,客戶端卻以可寫的方式 mount,雖然能夠成功mount上,但嘗試寫入的時候就會發生錯誤。通常服務器和客戶端配置衝突的時候,會以服務器的配置爲準。
下面給出公司生產換幾個的fstab配置文件樣板:
LABEL=/ / xfs defaults 1 1
LABEL=SWAP swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/lewa/data /data ext4 defaults 0 0
/dev/lewa/web /web ext4 defaults 0 0
/dev/lewa/Hadoop_data /hadoop_data ext4 defaults 0 0
web-storage-1:/data/www/static/discuz/xwb/log /web/bbs/htdoc/xwb/log nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/www/static/discuz/uc_server/data /web/bbs/htdoc/uc_server/data nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/www/static/discuz/static /web/bbs/htdoc/static nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/www/static/discuz/xwb/cache /web/bbs/htdoc/xwb/cache nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/www/static/discuz/data /web/bbs/htdoc/data nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/fcfiles/theme /web/theme/htdoc/theme nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0編程
多注意裏面的參數哦,頗有用。服務器