NFS(Network File System)即網絡文件系統,是由Sun公司開發的一種經過網絡方式共享系統的通用共享解決方案。目前NFS有3個版本,分別爲NFSv2、NFSv3、NFSv4。NFSv2是一個古老的版本,但卻被衆多的操做系統所支持,這樣它的兼容性會更好;NFSv3擁有更多的特定,包括更快的速度、更大的單個文件大小、更多便於排錯的錯誤及成功信息、對TCP協議的支持等;NFSv4提供了有狀態的鏈接,更容易追蹤鏈接狀態,加強了安全特性。Centos6.3版本默認使用版本NFSv4提供NFS網絡文件系統共享服務,NFS監聽在TCP 2049端口。linux
RPC(Remote Procedure Call)是遠程過程調用協議,RPC協議爲遠程通訊程序管理通訊雙方所需的基本信息,這樣NFS服務就能夠專一於如何共享數據,至於通訊的鏈接以及鏈接的基本信息,則全權委託給RPC管理,Centos6.3系統由rpcbind服務提供RPC協議的支持,目前NFSv4雖然再也不須要與rpcbind直接交互,但rpc.mountd依然是NFSv4所必須的服務。因此,若是在Centos6.3平臺上實現NFS共享,須要同時啓動NFS與rpcbind服務。vim
NFS服務器經過讀取/etc/exports配置文件設定客戶端能夠訪問哪些NFS共享文件系統。該文件的書寫規則以下。安全
1. 空白行將被忽略服務器
2. 以#符號開頭的內容爲註釋網絡
3. 配置文件中能夠經過\符號轉義換行異步
4. 每一個共享的文件系統須要獨立一行條目async
5. 每一個客戶端主機列表須要使用空格隔開ide
6. 配置文件支持通配符性能
一條完整的共享條目語法結構以下,其中,客戶端主機能夠是一個網段、單臺主機或主機名。優化
/共享路徑客戶端主機(選項)
也能夠爲多個客戶主機設置不一樣的訪問選項,語法結構以下:
/共享路徑客戶端主機1(選項)客戶端主機2(選項)
不指定選項,默認屬性爲ro、sync、wdelay、root_squash。具體的NFS屬性及其對應的含義見表4-1,查看exports的幫助文檔能夠找到不少服務器配置模版。
表4-1
NFS選項 |
功能描述 |
NFS選項 |
功能描述 |
ro |
只讀共享 |
rw |
可讀可寫共享 |
sync |
同步寫操做 |
async |
異步寫操做 |
wdelay |
延時寫操做 |
root_squash |
屏蔽遠程root權限 |
no_root_squash |
不屏蔽遠程root權限 |
all_squash |
屏蔽全部的遠程用戶權限 |
計算機對數據進行修改時會先將修改的內容寫入快速的內存,隨後纔會慢慢寫入硬盤,async選項容許NFS服務器在沒有徹底把數據寫入硬盤前就返回成功消息給客戶端,而此時數據實際還存放在內存中,但客戶端則顯示數據已經寫入成功。注意,該選項僅影響操做消息的返回時間,並不決定如何進行寫操做。sync選項將確保在數據真正寫入硬盤後纔會返回成功的消息。
wdelay爲延遲寫入選項,也就是說,它決定了先將數據寫入內存,在寫入硬盤,而後將多個寫入請求合併後寫入硬盤,這樣能夠減小對硬盤I/O的次數,從而優化性能,但有可能致使非正常關閉NFS時數據丟失狀況的發生。與此相反的選項是no_wdelay,但該選項與async選項一塊兒使用時將不會生效,由於async是基於wdelay實現對客戶端的一種響應功能。
客戶端使用普通用戶鏈接服務器時,默認狀況下,若是客戶端使用的帳戶UID在服務器上也有相同的帳戶UID,則服務器將使用服務器本機上該UID帳戶進行讀寫操做,若是客戶端訪問服務器所使用的帳戶UID不在服務器上,則服務器自動將帳戶轉換爲nobody帳戶。此外,若是服務器端對共享屬性配置了all_squash選項,則服務器會根據anonuid選項的值,將全部的帳戶自動轉換爲匿名帳戶。
NFS 網絡文件系統 共享之後能夠講遠程的文件目錄共享到本地磁盤,能夠複製、寫入、刪除,跟本地的文件是沒什麼區別的。
# 將本機的目錄共享出來。其餘主機能夠掛載到本地、、
下面咱們來用實驗實現NFS服務。
1.首先搭建yum源。
2.yum -y install nfs*
3.vim/etc/exports 4. 編輯想把本地哪一個目錄共享出去。 /free * (表明任何網段) 或者192.168.1.0/24.(rw,sync)#權限,和同步
5.mkdir /free cd /free touch hujianli.txt
6.service rpcbind restart 必須重啓rpcbind服務
7.而後再啓動nfs服務 service nfs restart
8.查看是否共享成功:showmount -e localhost(或者本機ip)
9.service iptables stop setenforce 0 必須關閉防火牆和selinux
10.保證兩臺主機之間可以ping通
11.客戶機也必須配置nfs客戶端 yum list 進行查看 沒有的話就要先進行安裝 mkdir /free2 mount -t nfs 192.168.1.10:/free /free2
df -Th 能夠查看是否成功掛載