nfs(network file system),它允許網路中的計算機之間通過 tcp/ip 網路共享資源。在 nfs 的應用中,本地 nfs 的客戶端應用可以透明地讀寫位於遠端 nfs 伺服器上的檔案,就像訪問本地檔案一樣
nfs 最早是由 sun 公司發展出來的,後被逐漸完整以及整合至 linux 核心
功能:它就是是可以透過網路,讓不同的主機、不同的作業系統可以共享儲存
優點:節省本地儲存空間,將常用的資料存放在一台 nfs 伺服器上且可以通過網路訪問,那麼本地終端將可以減少自身儲存空間的使用
使用者不需要在網路中的每個機器上都建有 home 目錄,home 目錄可以放在nfs 伺服器上且可以在網路上被訪問使用
一些儲存裝置 cdrom 等都可以在網路上被別的機器使用。這可以減少整個網路上可移動介質裝置的數量
原理:nfs 在檔案傳送或資訊傳送過程中依賴於 rpc 協議。
遠端過程呼叫 ( remote procedure call ) 是能使客戶端執行其他系統中程式的一種機制
nfs 檔案系統
遠端過程呼叫:跨主機利用其他的一些程序獲取資料
本地過程呼叫
rpc可以理解為序號產生器構,nfs服務在rpc上註冊後有了相關資訊,客戶到rpc上詢問nfs服務的資訊,nfs伺服器傳送自己的資訊到rpc服務,再**給nfs客戶端,客戶端得到了nfs伺服器的資訊後,通過位址直接連線nfs伺服器。
工作模式:
主要程序:
nfsd:最主要的 nfs 服務提供程式,這個 daemon 主要的功能就是管理客戶端是否能夠使用伺服器檔案系統掛載資訊,其中還包含判斷這個登入使用者的 id
rpc.mountd:這個 daemon 主要功能則是管理 nfs 的檔案系統。當 client 端順利通過 rpc.nfsd 登入主機後,在它可以使用 nfs 伺服器提供規定檔案之前,還會經過檔案使用許可權的認證程式。它會去讀取 nfs 的配置檔案/etc/exports 來對比客戶端的許可權,當通過這一關之後,client 端也就取得使用 nfs 檔案的許可權
rpc.lockd ( 非必要 ):這個 daemon 用於管理檔案的鎖定方面,當多個客戶端同時嘗試寫入某個檔案時就可以對該檔案造成一些問題。rpc.lockd 則可以用來克服這此問題。但 rpc.lockd 必須要同時在客戶端和伺服器端都開啟才行
rpc.statd ( 非必要 ):這個 daemon 可以用來檢查檔案的一致性,若發生因為客戶端同時使用同乙個檔案造成檔案損壞時,rpc.statd 可以用來檢測並嘗試恢復該檔案
埠介紹:
rpc 通訊:111
nfs server 通訊:2049
資料通訊:隨機埠
mountd 埠:「32768–65535」 udp/tcp
nlockmgr 埠:「32768–65535」 udp/tcp
開放的埠太多,安全性較低,可以修改配置檔案限制埠的範圍
vim /etc/sysconfig/nfs
rquotad_port=30001
lockd_tcpport=30002
lockd_u***ort=30002
mountd_port=30003
statd_port=30004
nfs 構建
nfs-utils: 這個是 nfs 服務主程式( 包含 rpc.nfsd、rpc.mountd、daemons )
rpcbind: 這個是 centos6.x 的 rpc 主程式( centos5.x 的為 portmap )
rpcbind:遠端過程呼叫
server 端安裝並開啟服務:
yum –y install rpcbind nfs-utils
/etc/init.d/rpcbind status
/etc/exports 是nfs程式的配置檔案
/etc/exports檔案的配置格式為:
nfs共享目錄 nfs客戶端位址1(引數1,引數2,引數3…) 客戶端位址2(引數1,引數2,引數3…)
nfs共享目錄 nfs客戶端位址(引數1,引數2,引數3…)
showmount -e ip #檢視掛載情況
mount -t nfs ip:/file /file1
常用rw:read-write,可讀寫,注意,僅僅這裡設定成讀寫客戶端還是不能正常寫入,還要正確地設定共享目錄的許可權
ro:read-only,唯讀;
sync:檔案同時寫入硬碟和記憶體; (速度較慢,安全性較高)
async:檔案暫存於記憶體,而不是直接寫入記憶體; (速度更快,安全性較低)
no_root_squash:nfs客戶端連線服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,也擁有root許可權。顯然開啟這項是不安全的。
root_squash:nfs 客戶端連線服務端時如果使用的是 root 的話,那麼對服務端分享的目錄來說,擁有匿名使用者許可權,通常他將使用 nobody 或 nfsnobody 身份
all_squash:不論 nfs 客戶端連線服務端時使用什麼使用者,對服務端分享的目錄來說都是擁有匿名使用者許可權;
anonuid:匿名使用者的 uid 值,通常是 nobody 或 nfsnobody,可以在此處自行設定
anongid:匿名使用者的gid值
NFS 檔案的儲存
1.nfs net file system nfs utils 網路檔案系統 nfs 是 unix 系統和網路附加儲存檔案管理器常用的網路檔案系統 允許多個客戶端通過網路共享檔案訪問。它可用於提供對共享二進位制目錄的訪問 也可用於允許使用者在同一工作組中從不同客戶端訪問其檔案 2.nfs的啟用 yu...
3 8基於檔案的儲存NFS
網路檔案共享系統通過kerberos加密認證,使客戶端訪問共享目錄。linux之間共享。單使用者認證 客戶端本地只能使用乙個使用者得到nfs kerberos認證憑據,雙向認證。ca是單向認證,只認證server是否正確。serverx lab storageshares setup 加入kerbe...
NFS共享儲存
yum install rpcbind rpc服務監聽111埠 yum install nfs utils nfs服務包 1 修改配置檔案 etc exports vim etc exports 修改配置檔案 data 192.168.10.0 24 rw,sync,no root squash 以...