CentOS6.5下搭建NFS檔案伺服器

科技探索者發表於2017-11-19

一、NFS服務簡介:

  NFS 是Network File System的縮寫,即網路檔案系統。一種使用於分散式檔案系統的協定,由Sun公司開發,於1984年向外公佈。功能是通過網路讓不同的機器、不同的作業系統能夠彼此分享個別的資料,讓應用程式在客戶端通過網路訪問位於伺服器磁碟中的資料,是在類Unix系統間實現磁碟檔案共享的一種方法。

  NFS 的基本原則是“容許不同的客戶端及服務端通過一組RPC分享相同的檔案系統”,它是獨立於作業系統,容許不同硬體及作業系統的系統共同進行檔案的分享。

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

二、環境介紹:

系統平臺:CentOS release 6.5 (Final)

nfs伺服器ip:192.168.56.131

linux客戶端ip:192.168.56.130

windows客戶端ip:192.168.56.129

SELINUX=disabled

三、安裝NFS服務

1、檢視系統是否已安裝NFS:

[root@localhost ~]# rpm -qa |grep nfs

[root@localhost ~]# rpm -qa |grep rpcbind

2、如果當前系統中沒有安裝NFS所需的軟體包,安裝nfs 和 rpcbind 軟體包:

[root@localhost ~]# yum -y install nfs-utils  rpcbind

四、NFS伺服器的配置

1、建立NFS共享目錄,設定讀寫許可權:

[root@localhost ~]# mkdir /home/share

[root@localhost ~]# chmod -R 777 /home/share/

2、 編輯export檔案,這個檔案是NFS的主要配置檔案:

[root@localhost ~]# vi /etc/exports

/home/share/ 192.168.56.130(insecure,rw,no_root_squash) 192.168.56.129(insecure,rw,sync)

注意地址和參數列之間沒有空格。如果下面設定的mountd埠大於1024,需要在參數列裡加入引數:insecure

3、 配置生效:

[root@localhost ~]# exportfs -r


內容格式: <輸出目錄> [客戶端1 選項(訪問許可權,使用者對映,其他)] [客戶端2 選項(訪問許可權,使用者對映,其他)]

客戶端地址的指定方式

  • 指定ip地址的主機:192.168.0.200

  • 指定子網中的所有主機:192.168.0.0/24 192.168.0.0/255.255.255.0

  • 指定域名的主機:david.bsmart.cn

  • 指定域中的所有主機:*.bsmart.cn

  • 所有主機:*

訪問許可權選項
  • 設定輸出目錄只讀:ro

  • 設定輸出目錄讀寫:rw

使用者對映選項

  • all_squash:遮蔽所有遠端使用者的許可權,將遠端訪問的所有普通使用者及所屬組都對映為匿名使用者或使用者組(nfsnobody);

  • no_all_squash:與all_squash取反(預設設定);

  • root_squash:遮蔽遠端root許可權,將root使用者及所屬組都對映為匿名使用者或使用者組(預設設定);

  • no_root_squash:NFS客戶端連線服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,也擁有root許可權。顯然開啟這項是不安全的;

  • 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伺服器也不檢查其父目錄的許可權,這樣可以提高效率;

五、防火牆設定

1、編輯nfs配置檔案,把 4個動態埠設定成靜態的:

[root@localhost ~]# vi /etc/sysconfig/nfs 

LOCKD_TCPPORT=30001    #TCP鎖使用埠

LOCKD_UDPPORT=30002    #UDP鎖使用埠

MOUNTD_PORT=30003      #掛載使用埠

STATD_PORT=30004       #狀態使用埠

2、在防火牆配置開放上面配置的埠,以及nfs協議埠2049、rquotad的875埠、rpc的111埠

[root@localhost ~]# vi /etc/sysconfig/iptables

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[root@localhost ~]# service iptables restart

六、啟動NFS服務rpcbind、nfs服務

[root@localhost ~]# service rpcbind  restart

[root@localhost ~]# service nfs  restart

[root@localhost ~]# chkconfig –level 235 rpcbind on

[root@localhost ~]# chkconfig –level 235 nfs on

、Linux客戶端掛載NFS

1、安裝NFS:

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

2、檢視伺服器的共享目錄資訊:

[root@localhost ~]# showmount -e 192.168.56.131

Export list for 192.168.56.131:

/home/share 192.168.56.129,192.168.56.130

3、為了提高NFS的穩定性,使用TCP協議掛載,NFS預設用UDP協議:

[root@localhost ~]# mkdir /mnt/share

[root@localhost ~]# mount -t nfs 192.168.56.131:/home/share /mnt/share -o proto=tcp -o nolock

4、解除安裝已掛在的NFS:

[root@localhost /]# umount /mnt/share/

5、開機自動掛載:

[root@localhost /]# echo “192.168.56.131:/home/share /mnt/share nfs defaults 0 0” >>/etc/fstab

八、Windows客戶端掛載NFS

1、開啟控制皮膚->程式->開啟或關閉windows功能->NFS客戶端

    勾選NFS客戶端,即開啟windows NFS客戶端服務.

2、win+R開啟cmd終端:

C:Windowssystem32>showmount -e 192.168.56.131

C:Windowssystem32>mount 192.168.56.131:/home/share X:

成功掛載,開啟我的點腦,你即可在你網路位置看到 X:盤了

3.取消掛載:

umount -a(解除安裝全部掛接點)

直接在 我的電腦 裡面滑鼠點選取消對映網路驅動器 X:

九、相關命令

1、exportfs

啟動了NFS之後又修改了/etc/exports,可以用exportfs 命令來使改動立刻生效:

  # exportfs [-aruv]

  -a 全部掛載或解除安裝 /etc/exports中的內容 

-r 重新讀取/etc/exports 中的資訊 ,並同步更新/etc/exports、/var/lib/nfs/xtab

-u 解除安裝單一目錄(和-a一起使用為解除安裝所有/etc/exports檔案中的目錄)

-v 在export的時候,將詳細的資訊輸出到螢幕上。

具體例子: 

# exportfs -au 解除安裝所有共享目錄

# exportfs -rv 重新共享所有目錄並輸出詳細資訊

2、nfsstat

檢視NFS的執行狀態,對於調整NFS的執行有很大幫助。

3、rpcinfo

檢視rpc執行資訊,可以用於檢測rpc執行情況的工具,利用rpcinfo -p 可以檢視出RPC開啟的埠所提供的程式有哪些。

4、showmount

  -a 顯示已經於客戶端連線上的目錄資訊

-e IP或者hostname 顯示此IP地址分享出來的目錄

本文轉自奔跑在路上部落格51CTO部落格,原文連結http://blog.51cto.com/qiangsh/1734908如需轉載請自行聯絡原作者

qianghong000


相關文章