概述
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是負責負責信息的傳輸。
安裝與使用
NFS服務依賴與於PRC(Remote Process Call,遠程過程調用)機制,以完成遠程到本地的映射過程
安裝
安裝軟件包(nfs-utils、rpcbind)
[root@NFS ~]# yum -y install nfs-utils rpcbind
使用
1.設置共享目錄
NFS的配置文件為/etc/exports,文件內容默認為空(無任何共享)。在exports文件中設置共享資源時,記錄格式為"目錄位置 客戶機地址(權限選項)";
例如:將文件夾/www 共享到192.168.10.0/24網段使用,允許讀寫操作,
[root@NFS ~]# mkdir /www [root@NFS ~]# vim /etc/exports /www 192.168.10.0/24(rw,sync,no_root_squash)
客戶機地址:主機名、IP地址、網段地址、或者"*、?"通配符;
權限選項:rw表示允許讀寫(ro為只讀)
sync表示同步寫
no_root_squash表示當前客戶機以root身份訪問時,賦予本地root權限(默認是root_squash,將作為nfsnobody用戶降權對待)
給多個地址授權:
[root@NFS ~]# mkdir /www [root@NFS ~]# vim /etc/exports /www 192.168.10.1(rw) 192.168.1.10(ro)
2.啟動NFS服務
先啟動RPC再啟動NFS
[root@NFS ~]# service rpcbind start [root@NFS ~]# service nfs start [root@NFS ~]# netstat -napt | grep rpcbind tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1775/rpcbind tcp 0 0 :::111 :::* LISTEN 1775/rpcbind
3.查看本機發布的NFS共享目錄
[root@NFS ~]# showmount -e Export list for localhost: /www 1.0.0.0/8
4.客戶機
1)需要安裝rpcbind(使用showmount工具),最好一並把nfs-utils安裝上
客戶機查看NFS服務器發布的共享目錄
[root@NFSClient ~]# showmount -e 1.1.1.1 Export list for 1.1.1.1: /www 1.0.0.0/8
2)手動掛載NFS共享目錄
[root@NFSClient ~]# mount 1.1.1.1:/www /var/www/html
3)修改fstab文件,自動掛載
[root@NFSClient ~]# vim /etc/fstab ...... //部分內容省略 1.1.1.1:/www /var/www/html nfs defaults,_netdev 0 0