網路檔案共享-nfs服務
阿新 • • 發佈:2018-11-01
NFS服務簡介:
NFS:Network File System 網路檔案系統 軟體包:nfs-utils Kernel支援:nfs.ko 使用updatedb來更新locate資料庫 [[email protected]:45:56upload]#locate nfs.ko /usr/lib/modules/3.10.0-862.el7.x86_64/kernel/drivers/xen/xenfs/xenfs.ko.xz /usr/lib/modules/3.10.0-862.el7.x86_64/kernel/fs/nfs/nfs.ko.xz NFS優勢: 節省本地儲存空間 將常用的資料,如home目錄 存放在NFS伺服器上且可以通過網路訪問 本地終端將可減少自身儲存空間的使用 NFS服務主要程序: rpc.nfsd 最主要的NFS程序,管理客戶端是否可登入 rpc.mountd 掛載和解除安裝NFS檔案系統,包括許可權管理 rpc.lockd 非必要,管理檔案鎖,避免同時寫出錯 rpc.statd 非必要,檢查檔案一致性,可修復檔案 啟動服務: centos7:systemctl start nfs.server centos6:service nfs start
實現方式:
安裝軟體包: yum install -y nfs-utils 配置檔案: /etc/exports --初始為空 /etc/exports.d/*.exports 日誌: /var/lib/nfs/ 監聽埠: 2049(nfsd) ---tcp協議 檢視埠號命令:檢視和nfs命令相關的埠號 rpcinfo -p [[email protected]:29:14~]#rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 其它埠由portmap(111)分配--依賴於這個服務! rpcbind服務 :埠監聽111 當nfs重啟時,會把變動埠註冊到rpcbind服務中! centos7中當rpcbind服務關閉時, 啟動nfs服務,rpcbind一樣會被啟動! centos6中不會主動啟用! 配置防火牆,開放NFS服務 配置NFS使用固定埠 vim /etc/sysconfig/nfs RQUOTAD_PORT=875 LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 STATD_PORT=662 STATD_OUTGOING_PORT=2020 防火牆除開放上述埠,還需開放TCP和UDP的111和2049共4個埠 CentOS6開始portmap程序由rpcbind代替
簡單實現:
共享檔案/data/nfs1目錄: vim /etc/exports /data/nfs1 * *:所有主機! 並且在/data/nfs1中建立測試檔案 生效方式: systemctl restart nfs-server exportfs -r exportfs -v --檢視服務掛載資訊 預設的共享選項: /data/nfs1 <world>(ro,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash) 檢視主機nfs共享資源: showmount -e 主機IP 具體使用: showmount -e 172.20.23.32 掛載方式:在非nfs伺服器主機上 要建立一個目錄! mount 172.20.23.32:/data/nfs1 /mnt/test/ 共享選項: 預設選項:(ro,sync,root_squash,no_all_squash) ro,rw 只讀和讀寫 具體應用: 需要對檔案或目錄更改授權,讓nfsnobody使用者對其有寫許可權! async 非同步,資料變化後不立即寫磁碟,效能高 sync(1.0.0後為預設)同步,資料在請求時立即寫入共享 no_all_squash(預設)保留共享檔案的UID和GID --所有的使用者不壓榨,只要伺服器中有和客戶端使用者相同id的使用者,客戶端訪問時,就會擁有和伺服器端使用者相同的權利 all_squash 所有遠端使用者(包括root)都變成nfsnobody ---有這一項就全部壓榨!no_root_squash就失效了! root_squash(預設)遠端root對映為nfsnobody,UID為65534早期版本 是4294967294(nfsnobody) no_root_squash 遠端root對映成root使用者 具體用法: /data/nfs2 172.20.23.50(rw,no_root_squash) anonuid和anongid 指明匿名使用者對映為特定使用者UID和組GID 而非 nfsnobody,可配合all_squash使用 具體用法: anonuid=2000 anongid=2000 共享案例2: /data/nfs2 172.20.23.50(rw,no_root_squash) 設定共享主機和讀寫掛載及遠端主機不壓榨 支援針對不同主機設定許可權: 具體應用:多個主機網段之間用空格隔開 /data/nfs2 172.20.0.0/16(rw,no_root_squash) 172.20.23.20(ro) 地址格式: IP networks:兩種掩碼格式均支援 172.18.0.0/255.255.0.0 172.18.0.0/16
其它相關工具:
rpcinfo:rpc監聽111埠[tcp/udp]
rpcinfo -p hostname
rpcinfo –s hostname 檢視RPC註冊程式
[[email protected]:39:35data]#rpcinfo -s 172.20.23.32
program version(s) netid(s) service owner
100000 2,3,4 local,udp,tcp,udp6,tcp6 portmapper superuser
100024 1 tcp6,udp6,tcp,udp status 29
100005 3,2,1 tcp6,udp6,tcp,udp mountd superuser
100003 4,3 udp6,tcp6,udp,tcp nfs superuser
100227 3 udp6,tcp6,udp,tcp nfs_acl superuser
100021 4,3,1 tcp6,udp6,tcp,udp nlockmgr superuser
exportfs
–v 檢視本機所有NFS共享
–r 重讀配置檔案,並共享目錄
–a 輸出本機所有共享
–au 停止本機所有共享
-u 停止本機指定共享
NFS相關的掛載選項:
fg(預設)前臺掛載
bg後臺掛載
hard(預設)持續請求,soft 非持續請求
intr和hard配合,請求可中斷
rsize和wsize 一次讀和寫資料最大位元組數,rsize=32768
_netdev 無網路不掛
基於安全考慮,建議使用nosuid,nodev,noexec掛載選項
自動掛載的實現:
自動掛載:
可使用autofs按需要掛載NFS共享,在空閒時自動解除安裝
由autofs包提供
系統管理器指定由/etc/auto.master自動掛載器守護程序控制的掛載點
自動掛載監視器訪問這些目錄並按要求掛載檔案系統
檔案系統在失活的指定間隔5分鐘後會自動解除安裝
為所有匯出到網路中的NFS啟用特殊匹配 -host 至“browse
支援含萬用字元的目錄名
* server:/export/&
相對路徑寫法:
主配置檔案:
/etc/auto.master
定義dirname
具體用法:
/mydata /etc/auto.fs
/etc/auto.fs
定義basename
具體用法:
data -fstype=nfs,rw,nosuid,nodev 172.20.23.32:/data/nfs1
絕對路徑法:
vim /etc/auto.master
/- /etc/data.fs
vim /etc/data.fs
/home/yl -fstype=nfs,rw,nosuid,nodev 172.20.23.32:/data/nfs1
nfs預設掛載版本時4.1如果要掛載成3版本需要新增選項
例如:
mount -o vers=3 172.20.23.33:/data/ /mnt