fstab配置詳解
fstab :這個(gè)文件描述系統(tǒng)中各種文件系統(tǒng)的信息。一般而言,應(yīng)用程序僅讀取這個(gè)文件,而不對(duì)它進(jìn)行寫(xiě)操作。對(duì)它的維護(hù)是系統(tǒng)管理員的工作。在這個(gè)文件中,每個(gè)文件系統(tǒng)用一行來(lái)描述,在每一行中,用空格或TAB符號(hào)來(lái)分隔各個(gè)字段,文件中以#開(kāi)頭的行是注釋信息。Fstab文件中的紀(jì)錄的排序十分重要。因?yàn)閒sck,mount或umount等程序在做它們的工作時(shí)會(huì)按此順序進(jìn)行。
接下來(lái)整理一下它的配置語(yǔ)法:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1
fs_spec :該字段定義希望加載的文件系統(tǒng)所在的設(shè)備或遠(yuǎn)程文件系統(tǒng),對(duì)于一般的本地塊設(shè)備情況來(lái)說(shuō):IDE設(shè)備一般描述為/dev/hdXN,X是IDE設(shè)備通道(a, b或者c),N代表分區(qū)號(hào);SCSI設(shè)備一描述為/dev/sdXN。對(duì)于procfs,使用`proc’來(lái)定義。對(duì)文件系統(tǒng)的定義(fsspec),它描述了將被裝載的塊設(shè)備或遠(yuǎn)程文件系統(tǒng)。對(duì)于通常的mount操作而言,這個(gè)字段應(yīng)該包括一個(gè)將被裝載的塊設(shè)備的設(shè)備結(jié)點(diǎn)(通過(guò)mknod命令來(lái)創(chuàng)建)或指向這類結(jié)點(diǎn)的連接(例如/dev/cdrom或/dev/sdb),對(duì)于NFSmount操作,這個(gè)字段應(yīng)該包含host:dir格式的信息,對(duì)于進(jìn)程文件系統(tǒng)procfs,使用proc。除了顯示的使用設(shè)備名,你可以使用設(shè)備的UUID或設(shè)備的卷標(biāo)簽,例如,你可以在這個(gè)字段寫(xiě)成“LABAL=root”或“UUID=3e6be9de-8139-11d1-9106-a43f08d823a6”,這將使系統(tǒng)更具伸縮性。例如,如果你的系統(tǒng)添加或移除了一個(gè)SCSI硬盤(pán),這有可以改變你的設(shè)備名,但它不會(huì)修改你的卷標(biāo)簽。
fs_file: 該字段描述希望的文件系統(tǒng)加載的目錄點(diǎn),對(duì)于swap設(shè)備,該字段為none;對(duì)于加載目錄名包含空格的情況,用40來(lái)表示空格。描述文件系統(tǒng)的載入點(diǎn),對(duì)于交換分區(qū)(swap),這個(gè)字段定義為none,如果在載入點(diǎn)的路徑中包含空格符,可以用“\040”來(lái)替代空格符。
fs_type: 定義了該設(shè)備上的文件系統(tǒng),一般常見(jiàn)的文件類型為ext2 (Linux設(shè)備的常用文件類型)、vfat(Windows系統(tǒng)的fat32格式)、NTFS、iso9600等.文件系統(tǒng)類型(fsvfstype),主要用來(lái)定義文件系統(tǒng)的類型。Linux系統(tǒng)支持大量的文件類型,包括sdfs,affs,autofs,jfs,minix,msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs,,smbfs,sysv, tmpfs, udf, ufs, umsdos, vfat, xenix,xfs等等。如果想了解你的kernel目前支持哪些文件系統(tǒng),可以查看/proc/filesystems的內(nèi)容。如果這個(gè)字段定義為swap,這條紀(jì)錄將關(guān)聯(lián)到一個(gè)用于交換目的的文件或分區(qū)。如果這個(gè)字段定義為ignored,這行將被忽略。這對(duì)于顯示目前沒(méi)有使用的分區(qū)非常有用。
fs_options: 指定加載該設(shè)備的文件系統(tǒng)是需要使用的特定參數(shù)選項(xiàng),多個(gè)參數(shù)是由逗號(hào)分隔開(kāi)來(lái)。文件系統(tǒng)選項(xiàng)(fsmntops)在裝載文件系統(tǒng)時(shí)使用的裝載選項(xiàng)。多個(gè)選項(xiàng)之間用逗號(hào)做分隔符,這些選項(xiàng)列表包括了裝載類型以及對(duì)于該文件系統(tǒng)合適的其它裝載選項(xiàng)。對(duì)于非NFS系統(tǒng)可用的裝載選項(xiàng)可以參看mount命令的說(shuō)明,對(duì)于nfs系統(tǒng)的選項(xiàng)可以查看關(guān)于nfs的文檔。對(duì)于所有文件系統(tǒng)都適用的選項(xiàng)有noauto(當(dāng)使用mount–a命令時(shí)不載入),user(允許用戶進(jìn)行裝載),owner(允許設(shè)備所有人裝載),_netdev(設(shè)備需要網(wǎng)絡(luò)),后兩個(gè)選項(xiàng)是linux系統(tǒng)所特有的。
對(duì)于大多數(shù)系統(tǒng)使用"defaults"就可以滿足需要。其他常見(jiàn)的選項(xiàng)包括:
選項(xiàng) 含義
ro 以只讀模式加載該文件系統(tǒng)
sync 不對(duì)該設(shè)備的寫(xiě)操作進(jìn)行緩沖處理,這可以防止在非正常關(guān)機(jī)時(shí)情況下破壞文件系統(tǒng),但是卻降低了計(jì)算機(jī)速度
user 允許普通用戶加載該文件系統(tǒng)
quota 強(qiáng)制在該文件系統(tǒng)上進(jìn)行磁盤(pán)定額限制
noauto 不再使用mount?。璦命令(例如系統(tǒng)啟動(dòng)時(shí))加載該文件系統(tǒng)
fs_dump: 該選項(xiàng)被"dump"命令使用來(lái)檢查一個(gè)文件系統(tǒng)應(yīng)該以多快頻率進(jìn)行轉(zhuǎn)儲(chǔ),若不需要轉(zhuǎn)儲(chǔ)就設(shè)置該字段為0.文件系統(tǒng)頻率(fs_freq),被dump程序使用來(lái)確定哪個(gè)文件系統(tǒng)需要dump,如果最后一個(gè)字段沒(méi)有設(shè)置,系統(tǒng)將認(rèn)為其值為0,而dump程序則認(rèn)為此文件系統(tǒng)無(wú)需dump。
fs_pass: 該字段被fsck命令用來(lái)決定在啟動(dòng)時(shí)需要被掃描的文件系統(tǒng)的順序,根文件系統(tǒng)"/"對(duì)應(yīng)該字段的值應(yīng)該為1,其他文件系統(tǒng)應(yīng)該為2。若該文件系統(tǒng)無(wú)需在啟動(dòng)時(shí)掃描則設(shè)置該字段為0.被fsck程序所使用來(lái)確定進(jìn)行在系統(tǒng)重啟進(jìn)行文件系統(tǒng)檢查時(shí)的順序,對(duì)于根系統(tǒng)/這個(gè)值應(yīng)設(shè)為1,其它文件系統(tǒng)可以設(shè)為2,在同一個(gè)物理硬盤(pán)內(nèi)的文件系統(tǒng)應(yīng)該被順序檢測(cè),而不同硬盤(pán)中的文件系統(tǒng)則應(yīng)該同時(shí)檢測(cè)以充分利用系統(tǒng)的并行性。如果最后一個(gè)字段值為0或沒(méi)有設(shè)置,fsck程序裝跳過(guò)此文件系統(tǒng)的檢測(cè)。在linux編程中可以用getmntent過(guò)程來(lái)訪問(wèn)這個(gè)文件的內(nèi)容。
其中fs_options參數(shù)值得一提,這個(gè)參數(shù)在mount的目標(biāo)文件時(shí)nfs文件時(shí),參數(shù)可以是:
HARD:
NFS CLIENT會(huì)不斷的嘗試與SERVER的連接(在后臺(tái),不會(huì)給出任何提示信息,在LINUX下有的版本仍然會(huì)給出一些提示),直到MOUNT
上。
SOFT:
會(huì)在前臺(tái)嘗試與SERVER的連接,是默認(rèn)的連接方式。當(dāng)收到錯(cuò)誤信息后終止mount嘗試,并給出相關(guān)信息。
例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
rsize和wsize:
文件傳輸尺寸設(shè)定:wsize 來(lái)進(jìn)行設(shè)定。這兩個(gè)參數(shù)的設(shè)定對(duì)于NFS的執(zhí)行效能有較大的影響
bg:
在執(zhí)行mount時(shí)如果無(wú)法順利mount上時(shí),系統(tǒng)會(huì)將mount的操作轉(zhuǎn)移到后臺(tái)并繼續(xù)嘗試mount,直到mount成功為止。(通常在設(shè)
定/etc/fstab文件時(shí)都應(yīng)該使用bg,以避免可能的mount不上而影響啟動(dòng)速度)
fg:
和bg正好相反,是默認(rèn)的參數(shù)
nfsvers=n:
設(shè)定要使用的NFS版本,默認(rèn)是使用2,這個(gè)選項(xiàng)的設(shè)定還要取決于server端是否支持NFS VER 3
mountport:
設(shè)定mount的端口
port:
根據(jù)server端export出的端口設(shè)定,例如如果server使用5555端口輸出NFS,那客戶端就需要使用這個(gè)參數(shù)進(jìn)行同樣的設(shè)定
timeo=n:
設(shè)置超時(shí)時(shí)間,當(dāng)數(shù)據(jù)傳輸遇到問(wèn)題時(shí),會(huì)根據(jù)這個(gè)參數(shù)嘗試進(jìn)行重新傳輸。默認(rèn)值是7/10妙(0.7秒)。如果網(wǎng)絡(luò)連接不是很穩(wěn)定的話就要加大這個(gè)數(shù)值,并且推薦使用HARD MOUNT方式,同時(shí)最好也加上INTR參數(shù),這樣你就可以終止任何掛起的文件訪問(wèn)。
intr:允許通知中斷一個(gè)NFS調(diào)用。當(dāng)服務(wù)器沒(méi)有應(yīng)答需要放棄的時(shí)候有用處。
udp:使用udp作為nfs的傳輸協(xié)議(NFS V2只支持UDP)
tcp:使用tcp作為nfs的傳輸協(xié)議
namlen=n:設(shè)定遠(yuǎn)程服務(wù)器所允許的最長(zhǎng)文件名。這個(gè)值的默認(rèn)是255
acregmin=n:設(shè)定最小的在文件更新之前cache時(shí)間,默認(rèn)是3
acregmax=n:設(shè)定最大的在文件更新之前cache時(shí)間,默認(rèn)是60
acdirmin=n:設(shè)定最小的在目錄更新之前cache時(shí)間,默認(rèn)是30
acdirmax=n:設(shè)定最大的在目錄更新之前cache時(shí)間,默認(rèn)是60
actimeo=n:將acregmin、acregmax、acdirmin、acdirmax設(shè)定為同一個(gè)數(shù)值,默認(rèn)是沒(méi)有啟用。
retry=n:設(shè)定當(dāng)網(wǎng)絡(luò)傳輸出現(xiàn)故障的時(shí)候,嘗試重新連接多少時(shí)間后不再嘗試。默認(rèn)的數(shù)值是10000 minutes
noac: 關(guān)閉cache機(jī)制。
同時(shí)使用多個(gè)參數(shù)的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs
請(qǐng)注意,NFS客戶機(jī)和服務(wù)器的選項(xiàng)并不一定完全相同,而且有的時(shí)候會(huì)有沖突。比如說(shuō)服務(wù)器以只讀的方式導(dǎo)出,客戶端卻以可寫(xiě)的方式 mount,雖然可以成功mount上,但嘗試寫(xiě)入的時(shí)候就會(huì)發(fā)生錯(cuò)誤。一般服務(wù)器和客戶端配置沖突的時(shí)候,會(huì)以服務(wù)器的配置為準(zhǔn)。
下面給出公司生產(chǎn)換幾個(gè)的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
————————————————
版權(quán)聲明:本文為CSDN博主「寫(xiě)bug的人」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_43484225/article/details/101542064
服務(wù)器的配置,配置文件/etc/exports:
ro 該主機(jī)對(duì)該共享目錄有只讀權(quán)限
rw 該主機(jī)對(duì)該共享目錄有讀寫(xiě)權(quán)限
root_squash 客戶機(jī)用root用戶訪問(wèn)該共享文件夾時(shí),將root用戶映射成匿名用戶
no_root_squash 客戶機(jī)用root訪問(wèn)該共享文件夾時(shí),不映射root用戶
all_squash 客戶機(jī)上的任何用戶訪問(wèn)該共享目錄時(shí)都映射成匿名用戶
anonuid 將客戶機(jī)上的用戶映射成指定的本地用戶ID的用戶
anongid 將客戶機(jī)上的用戶映射成屬于指定的本地用戶組ID
sync 資料同步寫(xiě)入到內(nèi)存與硬盤(pán)中
async 資料會(huì)先暫存于內(nèi)存中,而非直接寫(xiě)入硬盤(pán)
insecure 允許從這臺(tái)機(jī)器過(guò)來(lái)的非授權(quán)訪問(wèn)
例子
/ zhang (rw) wang (rw,no_root_squash)
表示共享服務(wù)器上的根目錄(/)只有zhang和wang兩臺(tái)主機(jī)可以訪問(wèn),且有讀寫(xiě)權(quán)限;
zhang主機(jī)用root用戶身份訪問(wèn)時(shí),將客戶機(jī)的root用戶映射成服務(wù)器上的匿名用戶(root_squash,該參數(shù)為缺省參數(shù)),相當(dāng)于在服務(wù)器使用nobody用戶訪問(wèn)目錄;
wang主機(jī)用root用戶身份訪問(wèn)該共享目錄時(shí),不映射root用戶(no_root_squash),即相當(dāng)于在服務(wù)器上用root身份訪問(wèn)該目
/root/share/ 192.168 . 1.20 (rw,insecure, sync ,all_squash)
表示共享服務(wù)器上的/root/share/目錄只有192.168.1.20主機(jī)可以訪問(wèn),且有讀寫(xiě)權(quán)限;
此主機(jī)用任何身份訪問(wèn)時(shí),將客戶機(jī)的用戶都映射成服務(wù)器上的匿名用戶(all_squash),相當(dāng)于在服務(wù)器上用nobody用戶訪問(wèn)該目錄(若客戶機(jī)要在該共享目錄上保存文件(即寫(xiě)操作),則服務(wù)器上的nobody用戶對(duì)該目錄必須有寫(xiě)的權(quán)限)
/home/ljm/ *.gdfs.edu.cn (rw,insecure, sync ,all_squash)
表示共享/home/ljm/目錄,*.gdfs.edu.cn域中所有的主機(jī)都可以訪問(wèn)該目錄,且有讀寫(xiě)權(quán)限
/home/share/ .gdfs.edu.cn (ro, sync ,all_squash,anonuid=student,anongid=math)
表示共享目錄/home/share/,*.gdfs.edu.cn域中的所有主機(jī)都可以訪問(wèn),但只有只讀的權(quán)限,所有用戶都映射成服務(wù)器上的uid為student、gid為math的用戶
啟動(dòng)nfs后又修改了/etc/exports,不用重啟該服務(wù),使用exports命令即可:
exports [-aruv]
-a 全部mount或umount文件/etc/exports中的內(nèi)容
-r 重新mount文件/etc/exports中的共享內(nèi)容
-u umount目錄
-v 在export的時(shí)候,將詳細(xì)的信息輸出到屏幕上
例:
[root@localhost ~]# /usr/sbin/ exportfs -rv
全部重新export一次
[root@localhost ~]# /usr/sbin/exportfs -au
全部卸載
nfs客戶端的配置:
若是臨時(shí)使用可直接執(zhí)行mount命令:mount servername(or IP): 共享目錄 本地掛載目錄
若客戶機(jī)啟動(dòng)就自動(dòng)掛載服務(wù)器的共享目錄,則需修改客戶機(jī)上的/etc/fstab文件
/etc/fstab格式:
(192.168.233.139:/share /mnt nfs defaults 0 2)
fs_spec fs_file fs_type fs_options fs_dump fs_pass
fs_spec:定義希望加載的文件系統(tǒng)所在的設(shè)備或遠(yuǎn)程文件系統(tǒng),對(duì)于nfs則設(shè)為IP:/共享目錄
fs_file:本地掛載點(diǎn)
fs_type:掛載類型
fs_options:掛載參數(shù)
fs_dump:該選項(xiàng)被“dump”命令使用來(lái)檢查一個(gè)文件系統(tǒng)該以多快頻率進(jìn)行轉(zhuǎn)儲(chǔ),若不需轉(zhuǎn)儲(chǔ)即為0
fs_pass:該字段被fsck命令使用來(lái)決定在啟動(dòng)時(shí)需要被掃描的文件系統(tǒng)的順序,根文件系統(tǒng)“/”對(duì)應(yīng)該字段值為1,其他文件系統(tǒng)為2,若該文件系統(tǒng)無(wú)需在啟動(dòng)時(shí)被掃描則為0
[root@localhost ~]#vi /etc/hosts.allow Portmap:192.168.5.123:allow
[root@localhost ~]#vi /etc/hosts.deny Portmap:ALL:deny
安全提醒:確保網(wǎng)絡(luò)安全,使用nfs時(shí)結(jié)合tcp_wrappers來(lái)限制使用范圍(如只想192.168.5.123主機(jī)可掛載nfs服務(wù)器上的共享目錄),另外還可結(jié)合iptables來(lái)加強(qiáng)
關(guān)機(jī)時(shí)若nfs server上有client聯(lián)機(jī)時(shí),先關(guān)掉portmap與nfs兩個(gè)系統(tǒng)服務(wù)。若無(wú)法正確將此2項(xiàng)服務(wù)關(guān)掉,用netstat –utlp找出PID,然后用kill殺掉進(jìn)程才關(guān)機(jī)
nfsstat查看NFS的運(yùn)行狀態(tài),調(diào)整NFS運(yùn)行大有幫助
rpcinfo查看rpc執(zhí)行信息,用于檢測(cè)rpc運(yùn)行情況
掛載格式:
mount -t nfs hostname (or IP):/directory / mount point
卸載:
umount /本地掛載目錄(本地client卸載方法,但用exports -au為server卸載)
showmount -e IP(查看NFS服務(wù)器上共享了那些目錄)
showmount -a IP(用于nfs server上,顯示已經(jīng)mount上本機(jī)NFS服務(wù)器的client(客戶機(jī)))