配置CentOS6.3 NFS


 

說明:本文是基於CentOS 6.3版本,5系列版本請另行參照其他文檔

一、安裝NFS對應的服務

1.安裝NFS 套件

   首先安裝NFS套件,命令如下:

yum install nfs-utils.x86_64(64位系統)

yum install nfs-utils(32位系統)

2.安裝RPC服務(注①)

yum install rpcbind(centos6)

 

二、啟動NFS

1.啟動RPC服務

Service rpcbind start

2.啟動NFS服務

Service nfs start

 

三、配置NFS服務器端

1.設置共享目錄

  建立共享目錄或者使用已有的目錄,本文創建/data/nfsshare作為共享目錄。

     返回到根目錄 CD /

     創建目錄 mkdir –p /data/nfsshare        -p 的意思是父文件夾不存在就創建

 

2.編輯/etc/exports文件

 a) #vi /etc/exports  注②

 b)按一下鍵盤 【i】 鍵進入編輯狀態

 c)輸入nfs地址,具體命令格式:[目錄路徑]…  [目標主機名或IP地址(參數…)]…

例子:

/data/nfsshare  10.10.225.*(rw,all_squash,anonuid=504,anongid=504)注③

[共享目錄]   [第一台主機(權限)]

 

  d)保存文件,按【esc】鍵輸入【:w】保存

  e)退出vi,輸入【:q】退出Vi

3.重新加載exports文件

輸入exportfs –rv命令    注④

 

4.查看本機發布的nfs目錄

showmount –e 注⑤

 

四、設置客戶端

1.查看可掛載的目錄

  showmount –e ip

 

2.掛載服務器目錄

  mount –t nfs –o nolock [主機名或IP]:[服務端目錄路徑] [客戶端目錄路徑]

 例子:

mount –t nfs –o nolock

10.10.225.178:/data/nfsshare  /data/clientshare

 

五、進行測試

在服務器的共享目錄里面建立一個文件,查看一下客戶端是否存在

 

問題:

1. RPC: Port mapper failure - RPC: Unable to receive

iptable沒關,把portmap的端口給阻擋了,禁用,service iptables  stop,一切OK!

 

2. mount.nfs:access denied by server while mounting

查看NFS Server端的/etc/exports文件設置是否有問題。

 

3.NFS客戶端不能寫文件問題

   是因為服務器端沒有設置NFS 共享目錄的讀寫權限,使用chmod進行更改文件夾的權限即可。

注解:

注① 為什么要安裝RPC(Remote Procedure Call)

因為NFS支持的功能相當的多,而不同的功能都會使用不同的程序來啟動,每啟動一個功能就會隨機啟動一些沒有被占用並且小於1024的端口來傳輸資料,因為NFS支持的功能沒有固定的端口。

這樣的話,就需要一個服務來獲得對應的端口號,而這個服務就是RPC服務。因為服務器在啟動NFS時會把隨機取得的端口主動注冊到RPC服務中,因此RPC就可以知道每個NFS功能對應的端口號,並且RPC服務是固定端口號111。

 這也就間接要求RPC服務必須先於NFS服務啟動。

詳見:【鳥哥的 Linux 私房菜------第十三章、檔案伺服器之一:NFS 伺服器】

http://linux.vbird.org/linux_server/0330nfs.php

 

注② Vi的簡單操作

Vi有三種模式:命令模式、插入模式、底行模式。畫面啟動的時候就是命令模式,這個時候只能輸入各種命令,而不能進行輸入,所以需要按【i】鍵進入到插入模式,進行輸入文本,然后在按【Esc】鍵退出插入模式,進入命令模式。輸入:qw進行保存退出。

注③ 權限參數

參數值

內容說明

rw

ro

目錄分享權限是可讀寫(read-write)或者只讀(read-only),但最終能否讀寫還是與檔案系統的rwx以及身份相關

sync

async

sync 資料會同步寫入內存和硬盤中, async 資料會先存入內存中,而不是直接寫入硬盤。

no_root_squash

root_squash

客戶端使用NFS的賬號若為root時,系統如何判斷這個賬號的身份?

默認情況下,客戶端root的身份由root_squash設定縮減為nfsnobody,這樣才能保證服務器系統的安全。

但若想開放客戶端的root身份來操作服務器檔案系統,就需要設置no_root_squash

all_squash

無論登入NFS的客戶端身份是什么,都會被縮減為匿名使用者,也就是nobody(nfsnobody)

anonuid

anongid

anon 代表anonymous (匿名用戶),前面關於*_squash提到的匿名用戶的UID設定值,通常為nobody(nfsnobody),但是你也可以自行設定這個UID的值!當然,這個UID必須存在你的/etc/passwd當中!anongid 則是群組的GID。

 

 

注④ Exportfs命令

Exportfs命令是使得本地目錄可以被NFS客戶端進行安裝,默認使用/etc/exports文件進行導出一個或者多個目錄。

參數:

 –r   重新讀取etc/exports文件中的設置,並使設置生效,而無需重啟NFS服務     -v    顯示當前共享目錄及詳細的選項設置

  其它具體設置,請參照exportfs的命令詳解。

 

注⑤ 用戶端查詢服務器分享資源的指令:/usr/sbin/showmount

這是另一個重要的NFS指令。exportfs是用於在NFS Server端進行設置,查詢的。而showmount則主要用於Client端,用於查看NFS分享出來的目錄資源。

-e   顯示導出服務器上的所有文件系統。

-a   顯示每個已安裝在服務器上的所有網絡文件系統 (NFS) 客戶端和目錄。

-d   顯示當前裝載 NFS 客戶端的服務器上的所有目錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM