CentOS 6.5系統下安裝和配置NFS服務

來源:互聯網
上載者:User

標籤:style   io   ar   color   os   使用   sp   strong   on   

CentOS 6.3下安裝配置NFS4服務

安裝 NFS 伺服器所需的軟體包:

# yum install nfs-utils
編輯/etc/exports檔案
/home/exp             192.168.0.10(rw,sync,fsid=0)  192.168.0.11(rw,sync,fsid=0)
192.168.0.10 和192.168.0.11兩台機器可以掛載NFS服務器上的/home/exp目錄到自己的檔案系統中。rw表示可讀可寫;sync表示同步寫內存和磁盤,fsid=0表示將/home/exp這個導出檔案夾包裝成起始根目錄。

/file/ 192.168.0.5(rw,sync,no_root_squash)

 啟動nfs服務:

先開啟rpcbind和nfs隨機自啟動:

#chkconfig rpcbind on
# chkconfig nfs on

然後分別啟動rpcbind和nfs服務:

#service rpcbind start
#service nfs start

 

確認nfs服務啟動成功:

# rpcinfo -p
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    ...
    100005    3   tcp    750  mountd
檢查 NFS 伺服器是否輸出我們想共用的目錄 /home/exp:

# exportfs
/home/exp  192.168.0.10
/home/exp  192.168.0.11
NFSv4已經不使用portmap了,而是rpcbind,這一點要注意。

NFS 用戶端
首先還是和服務器端一樣,安裝nfs套件。

然後啟動rpcbind服務:

還是先開啟rpcbind服務隨機啟動:

#chkconfig rpcbind on

然後啟動rpcbind服務:

#service rpcbind start

 

檢查 NFS 伺服器端是否有目錄共用:

# showmount -e nfs服務器的IP

 

使用 mount 掛載伺服器端的目錄/home/exp到用戶端某個目錄下:

# mkdir /home/exp
# mount -t nfs4 nfs服務器IP:/    /home/exp

# df -h看一下掛上來了沒有。

想在客戶機啟動時自動掛載,則在/etc/fstab加上:

# vi /etc/fstab
nfs服務器IP:/   /home/exp  nfs4 ro,hard,intr,proto=tcp,port=2049,noauto 0 0
客戶端掛載後,寫檔案時可能會報一個權限問題:Permission denied。解決這個問題可以修改服務器端檔案/etc/exports,改成如下內容:

# vi /etc/exports
/home/exp             192.168.0.10(rw,sync,fsid=0,anonuid=48,anongid=48)  192.168.0.11(rw,sync,fsid=0,anonuid=48,anongid=48)

anonuid=48的意思是讓所有匿名用戶的操作都視同為服務器上ID為48的用戶,在我的服務器上是apache用戶;同樣的anongid=48意 思是讓所有匿名用戶組的操作都視同為服務器上ID為48的用戶組,在我的服務器上是apache組。這樣設置了還不夠,服務器上還必須要存在ID為48的 用戶和用戶組,同時客戶機上也要有ID為48的用戶和用戶組,且用戶名和用戶組的名稱要和服務器上的一致。

設置好後,重啟NFS服務,問題即可解決。

 

重新讀取NFS設定檔:
# exportfs -rv

可使用如下命令查看


# exportfs -v




 


共用多個目錄

使用NFSv4方式共用多個目錄時,所有的目錄都要作為共用根目錄的子目錄。例如:有以下目錄需要共用:


/first/very/long/path1

/second/very/long/path2

同時讓用戶端看上去共用的目錄是 /dir1 和 /dir2。

伺服器端 建立子目錄 # mkdir /home/NFSv4/dir1

# mkdir /home/NFSv4/dir2

使用參數掛載需要共用的目錄 # mount --bind /first/very/long/path1
/home/NFSv4/dir1

# mount --bind /secend/very/long/path2
/home/NFSv4/dir2

修改/etc/exports檔案 /home/NFSv4/dir1 *(rw,nohide,sync)

/home/NFSv4/dir2 *(rw,nohide,sync)

注意:需要使用nohide參數 重新讀取NFS設定檔 # exportfs -rv


這時你就可以在用戶端上掛載伺服器上的多個共用資料夾了:
從根目錄掛載

# mount server1:/ /mount/point/


單獨掛載


# mount server1:/dir1 /mount/point1/

# mount server1:/dir2 /mount/point2/


許可權控制

修改 /ect/export 檔案,類似以下內容:


/home/NFSv4 192.168.1.0/24
(ro,fsid=0,sync,anonuid=65534,anongid=65534)

調優

在預設情況下,NFS 的配置不適合大容量磁碟。 
每個客戶機應該用 rsize=32768,wsize=32768,intr,noatime 掛裝遠程檔案系統,如。

mount -o rsize=32768,wsize=32768,intr,noatime server1:/
/mount/point/

從而確保: 

使用大的讀/寫塊(數字指定最大塊大小,在這個樣本中是 32KB)。

在掛起時 NFS 操作可以被中斷。

不持續更新 atime。

可以將這些設定放在 /etc/fstab 中。如果使用自動掛裝器,那麼應該將這些設定放在適當的 /etc/auto.* 檔案中。
在 伺服器端,一定要確保有足夠的 NFS 核心線程來處理所有客戶機。在預設情況下,只啟動一個線程,但是 Red Hat 和 Fedora 系統會啟動 8 個線程。對於繁忙的 NFS 伺服器,應該提高這個數字,比如 32 或 64。可以用 nfsstat -rc 命令評估客戶機,瞭解是否有阻塞的現象,這個命令顯示客戶機遠端程序呼叫(RPC)統計資料。下表顯示一個 Web 服務器的客戶機統計資料。



# nfsstat -rc
Client rpc stats:
calls retrans authrefrsh
1465903813 0 0

第二列 retrans 是零,這表示從上一次重新引導以來沒有出現需要重新傳輸的情況。如果這個數字比較大,就應該考慮增加 NFS 核心線程。設定方法是將所需的線程數量傳遞給 rpc.nfsd,比如 rpc.nfsd 128 會啟動 128 個線程。任何時候都可以進行這種設定,線程會根據需要啟動或銷毀。同樣,這個設定應該放在啟動指令碼中,尤其是在系統上啟用 NFS 的指令碼。 

關於 NFS,最後要注意一點:如果可能的話,應該避免使用 NFSv2,因為 NFSv2 的效能比 v3 和 v4 差得多。在現代的 Linux 發行版中這應該不是問題,但是可以在伺服器上檢查 nfsstat 的輸出,瞭解是否有任何 NFSv2 調用。

NFSv4配置參考:

exports檔案內容格式:
<輸出目錄> [用戶端1 選項(存取權限,使用者映射,其他)] [用戶端2 選項(存取權限,使用者映射,其他)]
1.輸出目錄:
輸出目錄是指NFS系統中需要共用給客戶機使用的目錄;
2.用戶端:
用戶端是指網路中可以訪問這個NFS輸出目錄的電腦
用戶端常用的指定方式
指定ip地址的主機 192.168.0.200
指定子網中的所有主機 192.168.0.0/24
指定網域名稱的主機 a.liusuping.com
指定域中的所有主機 *.liusuping.com
所有主機 *
3.選項:
選項用來設定輸出目錄的存取權限、使用者映射等。NFS主要有3類選項:
存取權限選項
設定輸出目錄唯讀 ro
設定輸出目錄讀寫 rw
使用者映射選項
all_squash 將遠端存取的所有普通使用者及所屬組都映射為匿名使用者或使用者組(nfsnobody);
no_all_squash 與all_squash取反(預設設定);
root_squash 將root使用者及所屬組都映射為匿名使用者或使用者組(預設設定);
no_root_squash 與rootsquash取反;
anonuid=xxx 將遠端存取的所有使用者都映射為匿名使用者,並指定該使用者為本機使用者(UID=xxx);
anongid=xxx 將遠端存取的所有使用者組都映射為匿名用 戶組賬戶,並指定該匿名使用者組賬戶為本機使用者組賬戶(GID=xxx);
其它選項
secure 限制用戶端只能從小於1024的tcp/ip連接埠串連nfs伺服器(預設設定);
insecure 允許用戶端從大於1024的tcp/ip連接埠串連伺服器;
sync 將資料同步寫入記憶體緩衝區與磁碟中,效率低,但可以保證資料的一致性;
async 將資料先儲存在記憶體緩衝區中,必要時才寫入磁碟;
wdelay 檢查是否有相關的寫操作,如果有則將這些寫操作 一起執行,這樣可以提高效率(預設設定);
no_wdelay 若有寫操作則立即執行,應與sync配合使用;
subtree 若輸出目錄是一個子目錄,則nfs伺服器將檢查其父目錄的許可權(預設設定);
no_subtree 即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的許可權,這樣可以提高效率;

CentOS 6.5系統下安裝和配置NFS服務

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.