CentOS6.7安裝配置nfs服務

科技小能手發表於2017-11-12

 

NFS Network File System的縮寫,即網路檔案系統。它功能是通過網路讓不同的機器、不同的作業系統能夠彼此分享各自的資料,讓應用程式在客戶端通過網路訪問位於伺服器磁碟中的資料。

 

NFS在檔案傳送或資訊傳送過程中依賴於RPC協議。RPC:遠端過程呼叫(Remote Procedure Call) 是能使客戶端執行其他系統中程式的一種機制。NFS本身是沒有提供資訊傳輸的協議和功能的,但NFS卻能讓我們通過網路進行資料的分享,這是因為NFS使用了一些其它的傳輸協議。而這些傳輸協議用到這個RPC功能的。可以說NFS本身就是使用RPC的一個程式。或者說NFS也是一個RPC SERVER。所以只要用到NFS的地方都要啟動RPC服務,不論是NFS SERVER或者NFS CLIENT。這樣SERVERCLIENT才能通過RPC來實現PROGRAM PORT的對應。可以這麼理解RPCNFS的關係:NFS是一個檔案系統,而RPC是負責資訊的傳輸。

 

所以,我們需要安裝兩個軟體包:nfs-utilsrpcbind,在centOS 5rpcbind portmap,作用都是一樣的,名字不同而已。

 

安裝方式:yum安裝

nfs服務端:balichvm192.168.171.51

 

客戶端:balichos192.168.171.50

 

安裝步驟:

 

1)、在balichvm上安裝nfs-utilsrpcbind,使用yum 安裝,如下:

[root@balichvm ~]# yum install –y nfs-utilsrpcbind                                   

 

2)、在balichvm建立需要分享的目錄和編輯配置檔案/etc/exports(這個檔案預設沒有)

[root@balichvm ~]# mkdir –p /data/nfsdata

[root@balichvm ~]#vim /etc/exports

/data/nfsdata/  192.168.171.0/24 (rw,sync,root_squash)

 

這裡的配置是共享目錄/data/nfsdata/;網段192.168.171.0的主機可以有讀寫許可權、限制root許可權、同步到磁碟)

/etc/exports配置檔案的格式和選項有:

格式:共享的目錄         共享給那些網段的主機         共享的許可權

 

選項:(共享的許可權)

 

ro:——只讀;

rw:——讀寫;

sync :——同步模式,記憶體中資料時時寫入磁碟;

async :——不同步,把記憶體中資料定期寫入磁碟中;

no_root_squash :——加上這個選項後,root使用者就會對共享的目錄擁有至高的許可權控制,就像是對本機的目錄操作一樣。不安全,不建議使用;

root_squash:——和上面的選項對應,root使用者對共享目錄的許可權不高,只有普通使用者的許可權,即限制了root

all_squash:——不管使用NFS的使用者是誰,他的身份都會被限定成為一個指定的普通使用者身份;

anonuid/anongid :——要和root_squash以及all_squash一同使用,用於指定使用NFS的使用者限定後的uidgid,前提是本機的/etc/passwd中存在這個uidgid

 

3)、在balichvm配置防火牆規則,編輯/etc/sysconfig/nfs,固定服務的埠,預設是註釋的,需要開啟。

# Port rpc.mountd should listen on.

MOUNTD_PORT=892                             #把前面的#號去掉

 

# Port rquotad should listen on.

RQUOTAD_PORT=875                             #把前面的#號去掉

 

# TCP port rpc.lockd should listen on.

LOCKD_TCPPORT=32803                           #把前面的#號去掉

 

# UDP port rpc.lockd should listen on.

LOCKD_UDPPORT=32769                        #把前面的#號去掉

 

這些埠是配置檔案預設的,是可以自行修改增加需要的埠號,然後儲存配置檔案。

 

然後啟動rpdbind nfs 服務:

/etc/init.d/rpcbind restart

/etc/init.d/nfs restart

 

服務啟動後,使用rpcinfo –p 檢視啟用的埠。

[root@balichvm ~]# rpcinfo -p

  program vers proto   port  service

   100000    4   tcp   111  portmapper

   100000    3   tcp   111  portmapper

   100000    2   tcp   111  portmapper

   100000    4   udp   111  portmapper

   100000    3   udp   111  portmapper

   100000    2   udp   111  portmapper

   100005    1   udp   892  mountd

   100005    1   tcp   892  mountd

   100005    2   udp   892  mountd

   100005    2   tcp   892  mountd

   100005    3   udp   892  mountd

   100005    3   tcp   892  mountd

   100003    2   tcp  2049  nfs

   100003    3   tcp  2049  nfs

   100003    4   tcp  2049  nfs

   100227    2  tcp   2049  nfs_acl

   100227    3   tcp  2049  nfs_acl

   100003    2   udp  2049  nfs

   100003    3   udp  2049  nfs

   100003    4   udp  2049  nfs

   100227    2   udp  2049  nfs_acl

   100227    3   udp  2049  nfs_acl

   100021    1   udp 32769  nlockmgr

   100021    3   udp 32769  nlockmgr

   100021    4   udp 32769  nlockmgr

   100021    1   tcp 32803  nlockmgr

   100021    3   tcp 32803  nlockmgr

   100021    4   tcp 32803  nlockmgr

[root@balichvm ~]#

 

將這些啟用的埠(tcpudp)寫到iptables防火牆裡面(vim /etc/sysconfig/iptables),允許通過,如下:

 

-A INPUT -m state –state NEW -m tcp -p tcp–dport 111 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 892 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 2049 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 32769 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 32803 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 111 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 892 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 2049 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 32769 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 32803 -j ACCEPT

 

然後重啟iptables服務:/etc/init.d/iptables restart

 

4)、在客戶端balichos上,安裝nfs-utils,並且掛載balichvm共享的nfsdata目錄,檢視某臺主機共享的nfs使用命令showmount–e ip(主機名)

[root@balichOS ~]# yum install –y nfs-utils

[root@balichOS ~]# showmount -e192.168.171.51                          ##檢視共享的nfs

Export list for 192.168.171.51:

/data/nfsdata 192.168.171.0/24

[root@balichOS ~]#

 

[root@balichOS ~]# mount -t nfs192.168.171.51:/data/nfsdata/ /mnt/

[root@balichOS ~]# df -h

Filesystem     Size      Used     Avail      Use%       Mountedon

/dev/sda3      18G      5.9G     11G        36%        /

tmpfs        495M     0      495M        0%         /dev/shm

/dev/sda1      190M    36M      145M        20%         /boot

192.168.171.51:/data/nfsdata/  18G  3.8G   13G    24%        /mnt

 

現在就已經掛載了一個檔案系統,但是由於在balichvm/data/nfsdata的許可權是755,其他使用者不具備寫的許可權,而在nfs配置檔案/etc/exports上又限定了root使用者許可權,預設是使用其他的使用者的登入,所有無法寫入資料,只有讀取的許可權。

如果需要有寫入的許可權,可以修改許可權。

 

本文轉自 巴利奇 51CTO部落格,原文連結:http://blog.51cto.com/balich/1709934


相關文章