搭建企業級NFS網絡文件共享服務

 

NFS服務簡介

      NFS是Network  File System(網絡文件系統)。主要功能是經過網絡讓不一樣的服務器之間能夠共享文件或者目錄。NFS客戶端通常是應用服務器(好比web,負載均衡等),能夠經過掛載的方式將NFS服務器端共享的目錄掛載到NFS客戶端本地的目錄下。
      NFS在文件傳送過程當中依賴與RPC(遠程過程調用)協議。NFS自己是沒有提供信息傳送的協議和功能的,可是可以用過網絡進行圖片,視頻,附件等分享功能。只要用到NFS的地方都須要啓動RPC服務,不管是NFS的服務端仍是客戶端。
      NFS和RPC的關係:能夠理解爲NFS是一個網絡文件系統(比喻爲租房的房主),而RPC是負責信息的傳輸(中介),客戶端(至關於租房的租客)html

image

查看當前系統環境信息

[root@Appserver~]# cat /etc/issue       ##查看系統版本信息 
Red Hat Enterprise Linux Server release 6.6 (Santiago) 
[root@Appserver~]# uname -r                  ##查看內核信息 
2.6.32-754.3.5.el6.x86_64
[root@Appserver~]# uname -m                  ##查看系統是32位仍是64位的 
x86_64

image

說明:java

服務器端:  RHEL6.6    [192.168.2.131/24]web

客 戶 端:  RHEL6.6    [192.168.2.130/24]vim

man nfs 能夠查看mount的信息緩存

rpc端口111安全

nfs主端口2049服務器

服務端配置[192.168.2.131]

    說明:網絡

    1. 在啓動NFS服務以前,首先要啓動RPC服務(CentOS5是portmap服務,CentOS6.6之後的版本是rpcbind服務),不然NFS服務器沒法向RPC服務註冊。負載均衡

    2. RPC服務若是重啓,原來以及有的NFS端口就會丟失,所以,只要RPC服務重啓,NFS服務就要重啓向RPC從新註冊新的隨機端口號。運維

須要:中止nfs->中止rpcbind服務後重啓rpcbind->重啓nfs服務

   3. 通常修改NFS配置文件後,不須要重啓服務,直接平滑重啓便可

       命令:/etc/init.d/nfs reload或者exportfs -rv就能夠修改/etc/exports生效。

      /etc/init.d/nfs reload的做用是:讓已經到達服務器的請求給他處理完畢,可是沒有到達服務器的請求,就把它斷掉。

1. 查看NFS的軟件包[nfs和rpc默認是沒有安裝的,須要yum安裝]

[root@westos ~]# rpm -qa nfs-utils rpcbind

image

2. 使用yum  install  nfs-utils rpcbind -y命令來安裝NFS軟件[安裝後能夠檢查一下]

[root@westos]# yum install nfs-utils rpcbind
[root@westos]# rpm -qa nfs-utils rpcbind      

image

3. 啓動NFS服務

第一步:先啓動rpc服務

[root@westos ~]# /etc/init.d/rpcbind start   #啓動rpc服務 
[root@westos ~]# /etc/init.d/rpcbind status  #查看rpc服務狀態

image

第二步:啓動NFS服務

[root@westos ~]# /etc/init.d/nfs start     #啓動nfs服務 
[root@westos ~]# /etc/init.d/nfs status    #查看nfs服務狀

image

[root@westos ~]# ps -ef|grep nfs | grep -v 'grep nfs'    # [可選],查看NFS服務

image

注意:  必需要先啓動rpc服務,而後再啓動NFS服務(RPC會有端口的映射),若是先啓動NFS服務,啓動服務時會失敗

image

4. 查看NFS和RPC端口信息[可選]

rpc端口111

nfs主端口2049

第一步:服務器端口檢查本身的rpc服務:

rpcinfo -p localhost               # 查看NFS服務向rpc註冊的端口信息,主端口號是:111

image

[root@Appserver ~]# netstat -lntup|grep 111      # 查看111端口信息
 root@Appserver ~]# lsof -i 4:111                # 查看111端口信息

image

第二步:查看NFS

[root@Appserver ~]# netstat -lntup|grep 2049 
[root@Appserver ~]# ps -ef|grep nfs

image

第三步:檢查本機的nfs服務

 showmount -e localhost

image

5. 服務開機自啓

第一步:chkconfig開啓服務

chkconfig --level 35 nfs on
chkconfig --level 35 rpcbind on 
chkconfig --list | egrep "nfs|rpcbind"

image

第二步:寫入rc.local

vim /etc/rc.local
    /etc/init.d/rpcbind start 
    /etc/init.d/nfs  start

image

說明:運維規範將服務的啓動命令放到/etc/rc.local裏面

6. 配置NFS服務端

第一步: 建立共享目錄(注意權限)

mkdir /NFS -m777
chown -R nfsnobody:nfsnobody /data # nfsnobody爲nfs默認建立的用戶

image

第二步:配置服務器文件

NFS默認文件: /etc/exports

# /etc/exports配置文件的格式是:
# NFS共享的目錄    NFS客戶端地址(參數1,參數2)
vim /etc/exports
    /data 192.168.2.130/24(rw,sync)    #一條配置搞定NFS配置文件

#其中:/data : NFS服務器端要共享的實際目錄,注意共享目錄的本地權限,須要讀寫權限,必定要讓本地目錄能夠被NFS客戶端的用戶讀寫
#192.168.2.130/24: NFS服務器端受權的可訪問的共享目錄的NFS客戶端地址(可爲單獨的ip地址或者主機名,域名,整個網段的地址)
#(rw,sync) ,其中rw表明擁有讀寫的權限,sync表明數據同步寫入NFS服務器端的硬盤中。也能夠用async,async是大數據時使用,是先寫到緩存區,再寫到磁盤裏。

image

可選:NFS服務器參數

rw:讀寫
ro:只讀
sync:客戶端給服務器端寫入數據,待寫入成功後服務端後給客戶端一個寫入成功的標記,這個時候數據寫入成功。
        可是數據安全,可是性能差
async:異步寫入
    數據寫入內存後顯示寫入成功,高性能,可是一旦斷電後數據丟失,
    電商秒殺是異步的。大型網站都是異步,會短期數據不一致。
no_root_squash:
    訪問的NFS Server的共享目錄的用戶是root的話,它對該共享目錄具備root權限
root_squash:
    訪問的NFS Server的共享目錄的用戶是root的話,它對該共享目錄的權限壓縮爲匿名用戶
all_squash:  -->推薦使用
    無論訪問的NFS Server的共享目錄權限是什麼,它對該共享目錄的權限壓縮均爲匿名用戶

第三步:重啓nfs服務

/etc/init.d/nfs reload 

第四步:服務端測試(服務器端口檢查本身的nfs服務)

 showmount -e localhost
 #showmount -e 192.168.2.130   客戶端成功後查看

image

第五步:測試本機(服務器端自身)掛載

mount -t nfs 192.168.2.131:/data /mnt

image

說明:查看默認配置

cat /var/lib/nfs/etab

image

其餘:卸載網絡掛載

# 強制卸載  
umount -lf  /mnt     #  l(lazy)  f(force)

客戶端配置[192.168.2.130]

1. 客戶端和服務端同樣,也要安裝nfs和rpm的安裝包。(配置見服務器端)
2. 客戶端須要啓動rpc服務,加入開機自啓動。不須要啓動nfs服務。(配置見服務器端)
3. 客戶端配置:

第一步:測試服務器/客戶端IP是否在同一網段

 ping 192.168.2.130  # 客戶端IP

image

第二步:查看服務器的111端口是否OK

telnet 192.168.2.131 11

image

第三步: showmount服務端

showmount -e 192.168.2.131

image

第四步:掛載服務器到本地,實現文件共享

 mount -t  nfs 192.168.2.131:/data/ /mnt
 df –h  
       ==> cat /proc/mounts  # 效果同

image

#  cat /proc/mounts        # 效果同

image

第五步:寫入rc.local

vim /etc/rc.local
    /etc/init.d/rpcbind start
    mount -t  nfs 192.168.2.131:/data/ /mnt

image

其餘: 卸載網絡掛載

# 強制卸載  
umount -lf  /mnt     #  l(lazy)  f(force)

測試掛載

imageimage

相關文章
相關標籤/搜索