2. nfs工作機制
3. exports檔案的格式
4. nfs管理
nfs有很多實際應用場景,以下是一些常用的場景:
nfs體系至少有兩個主要部分:
客戶機通過tcp/ip網路遠端訪問存放在nfs伺服器上的資料nfs是基於rpc來實現網路檔案系統共享的。所以我們先來說說rpc。在nfs伺服器正式啟用前,需要根據實際環境和需求,配置一些nfs引數
rpc(remote procedure call protocol),遠端過程呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。
rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。
rpc採用客戶機/伺服器模式。請求程式就是乙個客戶機,而服務提供程式就是乙個伺服器。
rpc工作機制如上圖所示,下面來描述一下它:
//nfs伺服器端執行著四個程序:
nfsd
mountd
idmapd
idmapd //實現使用者帳號的集中對映,把所有的帳號都對映為nfsnobody,但是在訪問時卻能以本地使用者的身份去訪問
mountd //用於驗證客戶端是否在允許訪問此nfs檔案系統的客戶端列表中,在則允許訪問(發放乙個令牌,持令牌去找nfsd),否則拒絕訪問
nfsd //nfs的守護程序,監聽在2049/tcp和2049/udp埠上
//不負責檔案儲存(由nfs伺服器本地核心負責排程儲存),用於理解客戶端發起的rpc請求,並將其轉交給本地核心,而後儲存在指定的檔案系統上
下面通過乙個例子來說明nfs的簡單工作流程:
需求:檢視file檔案的資訊,此file儲存在遠端nfs服務端主機上(掛載在本地目錄/shared/nfs中)
nfs的主配置檔案是/etc/exports,在此檔案中,可以定義nfs系統的輸出目錄(即共享目錄)、訪問許可權和允許訪問的主機等引數。該檔案預設為空,沒有配置輸出任何共享目錄,這是基於安全性的考慮,如此即使系統啟動了nfs服務也不會輸出任何共享資源。
exports檔案中每一行提供了乙個共享目錄的設定,其命令格式為:
《輸出目錄》 [客戶端1(選項1,選項2,…)] [客戶端2(選項1,選項2,…)]其中,除輸出目錄是必選引數外,其他引數均是可選項。另外,格式中的輸出目錄和客戶端之間、客戶端與客戶端之間都使用空格分隔,但客戶端與選項之間不能有空格。
客戶端是指網路中可以訪問這個nfs共享目錄的計算機。客戶端的指定非常靈活,可為單個主機的ip或網域名稱,亦可為某個子網或域中的主機等。
客戶端常用的指定方式:
客戶端說明
172.16.12.129
指定ip位址的主機
172.16.12.0/24(或172.16.12.*)
指定子網中的所有主機
指定網域名稱的主機
指定baidu.com域中的所有主機
*(或缺省)
所有主機
選項用來設定共享目錄的訪問許可權、使用者對映等。exports檔案中的選項比較多,一般可分為三類:
其他選項
訪問許可權選項:
訪問許可權選項
說明ro
設定輸出目錄唯讀
rw設定輸出目錄可讀寫
使用者對映選項:
使用者對映選項
說明all_squash
將遠端訪問的所有普通使用者及所屬組都對映為匿名使用者或使用者組(nfsnobody)
no_all_squash
不將遠端訪問的所有普通使用者及所屬使用者組都對映為匿名使用者或使用者組(預設設定)
root_squash
將root使用者及所屬使用者組都對映為匿名使用者或使用者組(預設設定)
no_root_squash
不將root使用者及所屬使用者組都對映為匿名使用者或使用者組
anonuid=***
將遠端訪問的所有使用者都對映為匿名使用者,並指定該匿名使用者為本地使用者帳戶(uid=***)
anongid=***
將遠端訪問的所有使用者組都對映為匿名使用者組,並指定該匿名使用者組為本地使用者組(gid=***)
常用的其他選項:
其他選項
說明secure
限制客戶端只能從小於1024的tcp/ip埠連線nfs伺服器(預設設定)
insecure
允許客戶端從大於1024的tcp/ip埠連線nfs伺服器
sync
將資料同步寫入記憶體緩衝區或磁碟中,效率較低,但可保證資料一致性
async
將資料先儲存在記憶體緩衝區中,必要時才寫入磁碟
wdelay
檢查是否有相關的寫操作,如果有則這些寫操作一起執行,可提高效率(預設設定)
no_wdelay
若有寫操作則立即執行,應與sync配置使用
subtree_check
若輸出目錄是乙個子目錄,則nfs伺服器將檢查其父目錄的許可權(預設設定)
no_subtree_check
即使輸出目錄是乙個子目錄,nfs服務亦不檢查其父目錄的許可權,可提高效率
nohide
若將乙個目錄掛載到另乙個目錄之上,則原來的目錄通常就被隱藏起來或看起來像空的一樣。要禁用這種行為,需啟用hide選項
nfs安裝:
//安裝
yum -y install nfs-utils
//啟動
systemctl start rpcbind nfs-server
使用shoumount命令測試nfs伺服器的輸出目錄狀態://常用的選項有:
-a //顯示指定nfs伺服器的所有客戶端主機及其所連線的目錄
-d //顯示指定的nfs伺服器中已被客戶端連線的所有輸出目錄
-e //顯示指定的nfs伺服器上所有輸出的共享目錄
在客戶端掛載nfs檔案系統:
mount -t nfs server:/path/to/sharedfs /path/to/mount_point
server:/path/to/exported_fs /mnt_point nfs defaults,_netdev 0 0
客戶端掛載時可以使用的特殊選項:
exportfs //維護exports檔案匯出的檔案系統表的專用工具
-a //輸出在/etc/exports檔案中所設定的所有目錄
-r //重新讀取/etc/exports檔案中的設定,並使其立即生效,無需重啟服務
-u //停止輸出某一目錄
-v //在輸出目錄時將目錄顯示到螢幕上
檢查輸出目錄所使用的選項:在配置檔案/etc/exports中,即使在命令列中只設定了一兩個選項,但在真正輸出目錄時,實際上還帶有很多預設的選項。通過檢視/var/lib/nfs/etab檔案,可以看到具體使用了何選項
[root@longnian ~]# cat /var/lib/nfs/etab
....此處省略
服務管理 NFS
1 關閉防火牆 4步 root zhangwu systemctl stop firewalld root zhangwu systemctl disable firewalld root zhangwu vim etc selinux config root zhangwu setenforce ...
Linux檔案服務管理之nfs
nfs network file system 即網路檔案系統,是freebsd支援的檔案系統中的一種,它允許網路中的計算機之間通過tcp ip網路共享資源。在nfs的應用中,本地nfs的客戶端應用可以透明地讀寫位於遠端nfs伺服器上的檔案,就像訪問本地檔案一樣。nfs network file s...
NFS服務配置與管理
伺服器端 1 配置網路,這裡用僅主機模式的網路。使伺服器與客戶端能夠互相通訊。2 配置本地yum源 name baseurl file gpgcheck 0 3 yum list檢驗yum源是否配置成功。yum install nfs server y 安裝nfs。4 重啟服務 systemctl ...