1. 程式人生 > >NFS安裝與使用

NFS安裝與使用

NFS網路檔案系統

什麼是NFS

NFS是Network File System的縮寫,中文意思是網路檔案系統,他的主要功能是通過網路(一般是區域網)讓不同的主機系統之間可以共享檔案或目錄

NFS服務只能應用在linux系統上,FTP、Samba服務均都支援linux和Windows

NFS服務的應用

  • 實現資料資訊的共享
  • 實現資料資訊的一致

共享儲存的方式

硬體實現共享儲存

  • IBM、Oracle、EMC
    軟體實現共享儲存

  • NFS、Samba、FTP

NFS共享系統原理

  • 在NFS服務端建立共享目錄
  • 通過mount網路掛載,將NFS客戶端本地目錄掛載到NFS服務端共享目錄上
  • NFS客戶端掛載目錄上建立、刪除、檢視資料操作,等價於在服務端進行的建立 刪除 檢視操作

RPC

什麼是RPC

RPC(Remote Procedure Call Protocol)——遠端過程呼叫協議,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通訊程式之間攜帶資訊資料。

NFS服務部署過程

服務端

  • 檢查NFS RPC服務軟體有沒有安裝
rpm -qa|grep nfs
rpm -qa|grep rpc

預設Centos系統沒有安裝nfs和rpc服務

  • 進行yum安裝nfs與rpc服務軟體
yum install -y nfs-utils rpcbind
rpm -ql nfs-utils      -ql 引數表示檢視安裝好的軟體,都安裝了哪些資訊
  • 進行NFS配置檔案編寫
vim /etc/exports 
/data 172.16.1.0/24(rw,sync)
  • 建立共享目錄
mkdir -p /data
chown -R nfsnobody.nfsnobody /data

說明:nfsnobody使用者是在進行nfs軟體yum安裝時,自動建立的

*啟動服務

/etc/init.d/rpcbind start
/usr/sbin/rpcinfo          -- 檢視NFS服務註冊資訊的
  • rpcinfo -p localhost
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
  • /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
  • rpcinfo -p localhost
   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
    100011    1   udp    875  rquotad
    100011    2   udp    875  rquotad
    100011    1   tcp    875  rquotad
    100011    2   tcp    875  rquotad
    100005    1   udp  25565  mountd
    100005    1   tcp  41264  mountd
    100005    2   udp   9511  mountd
    100005    2   tcp   6586  mountd
    100005    3   udp   7479  mountd
    100005    3   tcp  62974  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  10753  nlockmgr
    100021    3   udp  10753  nlockmgr
    100021    4   udp  10753  nlockmgr
    100021    1   tcp  27628  nlockmgr
    100021    3   tcp  27628  nlockmgr
    100021    4   tcp  27628  nlockmgr
  • 設定開機自啟動
chkconfig rpcbind on
chkconfig nfs on
  • 檢查NFS服務配置,以及本地測試掛載
    showmount -e localhost
Export list for localhost:
/data 172.16.1.0/24

mount -t nfs 172.16.1.31:/data /mnt
df -h

Filesystem         Size  Used Avail Use% Mounted on
/dev/sda3          8.8G  1.7G  6.7G  21% /
tmpfs              238M     0  238M   0% /dev/shm
/dev/sda1          190M   40M  141M  22% /boot
172.16.1.31:/data  8.8G  1.7G  6.7G  21% /mnt
[[email protected] ~]# cd /mnt
[[email protected] mnt]# echo "momoda" >test.txt
[[email protected] mnt]# ll
-rw-r--r-- 1 nfsnobody nfsnobody      7 Aug 31 10:56 test.txt
[[email protected] mnt]# cd /data
[[email protected] data]# cat test.txt 
momoda

客戶端

  • 檢查NFS RPC服務軟體有沒有安裝
rpm -qa|grep nfs
rpm -qa|grep rpc

*安裝nfs與rpc服務軟體

yum install -y nfs-utils rpcbind
  • 檢測是否存在共享目錄,進行共享目錄掛載
showmount -e 172.16.1.31
mount -t nfs 172.16.1.31:/data /mnt
df -h

說明:進行檔案建立或刪除測試

NFS拓展

指定NFS客戶端地址的配置詳細說明

客戶端地址 具體地址 說明
授權單一客戶端訪問NFS 10.0.0.30 一般情況,生產環境中國此配置不多
授權整個網段訪問NFS 10.0.0.0/24 期中的/24等同於255.255.255.0,指定網段為生產環境中最常見的配置,配置簡單,維護方便
授權整個網段課訪問NFS 10.0.0.* 指定網段的另外寫法(不推薦)
授權某個域名客戶端訪問 nfs.lcx.com 此方法生產環境一般情況不常用
授權整個域名客戶端訪問 *.lcx.com 此方法生產環境不常用

企業生產場景NFS配置例項

常用格式說明 要共享的目錄,客戶端的ip或ip段
配置一 /data 10.0.0.0/24(rw,sync)說明:允許客戶端讀寫,並且資料同步寫入到服務端的硬碟中
配置二 /data 10.0.0.0/24(rw,sync,all_squash,anonuld=2000,anongid=2000)允許客戶端讀寫,並且資料同步寫到服務端的磁盤裡,並且指定客戶端的使用者UID和GID。早起生產環境的一種配置,適合多客戶端共享一個NFS服務單目錄,如果所有伺服器的nfsnobody賬戶UID都是65534,則本例沒什麼必要。早起(centos5.5)的系統預設情況下nfsnobody的UID不一定是65534,此時如果這些伺服器共享一個NFS目錄,就會出現訪問許可權問題
配置三 /home/lcx 10.0.0.0/24(ro)只讀共享:例如生產環境中,開發人員有檢視生產伺服器日誌的需求,但又不希望給開發人員其他許可權,那麼就可以給開發提供從某個測試伺服器NFS客戶端上檢視某個生產伺服器的日誌目錄的許可權,當然這不是唯一的方法,例如可以吧程式記錄的日誌傳送到測試伺服器供開發檢視或者通過收集日誌等其他方式呈現