NFS

簡介:

nfs是工作在內核中,以底層文件系統的方式進行功能實現,以模塊的方式加入內核。
這裏寫圖片描述


NFS原理:

這裏寫圖片描述

VFS

linux中的虛擬文件系統,應用程序進行本地文件系統訪問時訪問的是,虛擬文件系統.而虛擬文件系統在進行真正文件系統的訪問
當需要訪問某些文件系統獨有的特性時,當vfs不支持時,可以訪問文件系統提供的開發接口

NFS

NFS使用的文件系統,基於rpc的文件系統
rpc:遠程過程調用
RPC採用C/S模式。客戶機請求程序調用進程發送一個有進程參數的調用信息到服務進程,然後等待應答信息。在服務器端,進程保持睡眠狀態直到調用信息到達爲止。當一個調用信息到達,服務器獲得進程參數,計算結果,發送答覆信息,然後等待下一個調用信息,最後,客戶端調用進程接收答覆信息,獲得進程結果,然後調用執行繼續進行。

資源訪問過程

客戶端進行資源訪問
VFS尋找NFS
NFS進行基於網絡的RPC遠程過程調用

portmapper

這裏寫圖片描述

客戶端:

這裏寫圖片描述
客戶端實現訪問遠程的nfs服務器需要自身帶有nfs的文件系統驅動。即nfs.ko 模塊
rpm -qf /usr/lib/modules/3.10.0-514.el7.x86_64/kernel/fs/nfs/nfs.ko
kernel-3.10.0-514.el7.x86_64

nfs-utils
nfs的補充包。服務端與客戶端共同使用,其中包含服務端的配置文件。以及客戶端的功能實現,客戶端訪問網絡NFS服務時,客戶端必須安裝nfs-utils
showmount
showmount -e <遠程nef server的地址>      查看遠程主機共享的目錄
客戶端掛載:
windows掛載:

windows 掛載NFS
windows需安裝NFS文件系統服務,以支持linux 的NFS文件系統
mount 192.168.8.107:/app/nfsdir/dir1

linux掛載:

linux mount掛載
格式:mount [-o 掛載選項,[掛載選項]] 目標網絡地址:目標的文件系統地址 掛載至本地的文件系統地址。

掛載選項:
vers=<數字>
指定掛載的級別
mount 192.168.0.2:/app/nfsdir/dir1 /mnt/nfs1 -o vers=3
fg(默認)前臺掛載
bg後臺掛載
以後臺的方式進行掛載
mount -o bg 192.168.0.2:/app/nfsdir/dir1 /mnt/nfs1
hard(默認)持續請求, soft 非持續請求
intr 和hard配合,請求可中斷
rsize和wsize 讀和寫block大小, rsize=32768
_netdev 無網絡不掛載

fstab配置文件掛載
72.16.0.1:/public /mnt/nfs nfs defaults 0 0

服務端:

這裏寫圖片描述
配置文件:
主配置文件 /etc/exports
附加配置文件 /etc/exports.d/*.exports
導出文件配置格式:
格式:
文件路徑 主機(共享特性1,共享特性2) 主機(共享特性1,共享特性2)

主機表示:
單個主機
IP , FQDN
網段:
172.16.0.0/255.255.0.0
172.16.0.0/16
主機名通配 *.jinbus.com
* 統配符 所有主機

特性
默認選項: (ro,sync,root_squash)
ro,rw 只讀和讀寫
root_squash
權限壓縮,即對於root登錄時 在nfsserver上被映射爲另外一個權限相對小的用戶(nfsnobody)對於非root用戶,不進行壓縮
no_root_squash
不對root進行權限壓縮,
anonuid= anongid=
壓縮爲特定的用戶,即將要進行壓縮的用戶壓縮爲指定的UID用戶與GID組
async 異步,數據變化後不立即寫磁盤,性能高
sync(1.0.0後爲默認)同步,數據在請求時立即寫入共享
no_all_squash (默認)保留共享文件的UID和GID
all_squash 所有遠程用戶(包括root)都變成nfsnobody
root_squash (默認)遠程root映射爲nfsnobody,UID爲65534, CentOS5之前是4294967294 (nfsnobody)
no_root_squash 遠程root映射成root用戶
anonuid和anongid 指明匿名用戶映射爲特定用戶和組,而非nfsnobody,可配合all_squash使用

僞根設置
格式:
文件路徑 主機(fsid=0,srossmnt) #設置僞根的/
僞根絕對路徑/子文件夾 主機(特性)
例:
vim /etc/fstab
/data/read /export/read none bind 0 0
/data/write /export/write none bind 0 0

vim /etc/exports
/export *(fsid=0,srossmnt)
/export/read 192.168.0.0/24(ro)
/export/write 192.168.0.0/24(rw)

端口配置
/etc/sysconfig/nfs

導出文件的操作命令
exportfs -r
重載配置文件
exportfs -v
查看導出的文件系統
exporfs–a
輸出本機所有共享
exportfs–au
停止本機所有共享

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章