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

CentOS 6.3下安裝配置NFS4服務

安裝 NFS 服務器所需的軟件包: apache

# 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服務: app

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

#chkconfig rpcbind on
# chkconfig nfs on tcp

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

#service rpcbind start
#service nfs start 性能

 

確認nfs服務啟動成功: ui

# 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: spa

# 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服務器也不檢查其父目錄的權限,這樣能夠提升效率;
相關文章
相關標籤/搜索