nfs:
Network File System
RPC:Remote Procedure Call
NFS: sun公司研發, 協議;
NFSv1,沒有走出實驗室
NFSv2(不安全), NFSv3,
NIS:Network Information Service
nfsd:2049/tcp 由nfs-utils 提供監聽功能
安裝nfs
用戶端服務端都要安裝
yum install nfs-utils
輔助類的服務:rpc (portmap)
rpc.mountd:認證;
rpc.lockd:加鎖
rpc.statd:狀態
nfs server:
安裝:核心模組nfsd
使用者空間的工具程式:nfs-utils
Unit File:
/usr/lib/systemd/system/nfs.service
設定檔:
/etc/exports, /etc/exports.d/*
管理共用的nfs檔案系統:設定檔每一行定義一個共用檔案系統
Each line contains an export point and a whitespace-separated list of clients allowed to mount the file system at that point.
man 5 exports 查看配置格式
匯出格式
/PATH/TO/SOME_DIR CLIENTS_1(export_options,…) CLIENTS_2(export_options,…)
CLIENTS:
single host(單一主機配置): IPv4, IPv6, FQDN
IP networks(網路地址):network/netmask,支援兩種格式的掩碼;
wildcards:在主機名稱字串中使用萬用字元支援?和 , .magedu.com,
anonymous:*,表示所有的用戶端主機;
General Options 選項
ro:唯讀;
rw:讀寫;
sync:同步
async:非同步
User ID Mapping 使用者映射選項:
root_squash:壓縮root使用者的許可權, 預設行為 ;nfsnobody
no_root_squash:不壓縮root使用者的許可權;
all_squash:壓縮所有使用者的許可權; 映射使用者預設為nobody
anonuid and anongid:將壓縮的使用者映射為此處指定的使用者
NFS Client:用戶端掛載選項
mount -t nfs NFS_SERVER:/PATH/TO/EXPORTED_DIR /MOUNT_POINT[-rvVwfnsh] [-o OPTIONS]
一般配置參考
1、改設定檔
預設使用者映射許可權為壓縮root使用者,這裡不用改
2、掛載測試
3、id映射測試
–
–
showmount 用戶端列出指定的nfs server 的共用資訊
show mount information for an NFS server
-a :全部 在nfs伺服器端顯示所有的掛載會話
-d :檔案 在伺服器端執行,顯示那個匯出的檔案系統被那些用戶端掛載過
-e :共用,在用戶端執行,探查某主機所匯出的nfs檔案系統,使用格式為 showmount -e Server_IP
exportfs 服務端nfs管理命令
-a:操作所有檔案系統
-ra:重新匯出所有檔案系統
-ua:取消匯出的所有檔案系統
-v:顯示詳細資料
開機自動掛載:/etc/fstab檔案中寫入
nfs的輔助進程mountd等監聽在固定連接埠上,可以通過在編輯/etc/sysconfig/nfs等參數來實現
練習:
(1) 建立一個共用mydata,路徑為/mysql/data,用戶端1掛載至/mydata;而後用戶端1主機安裝mysql或mariadb,將資料目錄設定為/mydata,要確保mysql服務能正常 運行,但資料目錄位於samba server上;
(2) 用戶端2主機使用類似用戶端1主機的方式掛載mydata共用至本地的/mydata目錄,而後,直接安裝mysql或mariadb server,設定其資料目錄為/mydata;測試
(a) 用戶端1 mysql服務運行時,用戶端2的mysql服務能否啟動?
(b) 用戶端1 mysql服務停止時,用戶端2的mysql服務能否啟動?
練習:(1) samba sever共用/data/application/web,在目錄中提供wordpress;
(2) 部署兩台amp伺服器,均掛載此共用作為某主機的文檔映射路徑;
(3) 驗正兩台主機上的wordpress是否可被同時訪問;
(a) 發一個檔案,驗正圖片上傳等功能;
(b) 在任一用戶端上訪問此應用,多次重新整理,確認下所有資源訪問是否正常 ;