相關內容:
NFS:即為網絡文件系統。
主要功能:通過網絡(局域網)讓不同的主機系統之間可以共享文件或目錄。
主要用途:NFS網絡文件系統一般被用來存儲共享視頻,圖片,附件等靜態資源文件。
關於端口使用說明:
1.通過網絡來進行數據傳輸,因此會使用一些端口來傳輸數據。
2.NFS在傳輸數據的時候使用的端口會隨機選擇。
問:nfs客戶端如何知道nfs服務器端使用哪個端口?
答:通過RPC(遠程過程調用)協議/服務來實現。
rpc工作原理:1.啟動RPC服務
2.nfs啟動時隨機取用若干端口,並主動向rpc服務注冊取用相關信息
3.客戶端請求nfs服務向rpc
4.rpc返回端口給客戶端
5.拿着地址與端口向nfs服務器請求傳輸數據
所以綜上所述:nfs服務必須在rpc服務啟動之后啟動,客戶端無需啟動nfs服務,但需要啟動rpc服務。
nfs部署:
需要安裝的軟件包:
nfs-utils:nfs服務主程序
rpcbind:rpc主程序
yum install -y nfs-utils rpcbind
啟動nfs相關服務:
1.啟動rpcbind
systemctl status rpcbind
systemctl start rpcbind
systemctl enable rpcbind
rpcinfo -p localhost //查看nfs服務向rpc服務注冊的端口信息。此時nfs服務還沒有啟動因此沒有太多注冊的端口映射信息。
lsof -i : 111
netstat -lntup | grep rpcbind
2.啟動nfs服務:
systemctl start nfs
systemctl enable nfs
systemctl status nfs
rpcinfo -p localhost //查看注冊信息
[root@localhost ~]# ps -ef | egrep "rpc|nfs" root 378 2 0 02:39 ? 00:00:00 [rpciod] rpc 4873 1 0 04:08 ? 00:00:00 /sbin/rpcbind -w rpcuser 5055 1 0 04:18 ? 00:00:00 /usr/sbin/rpc.statd --no-notify //檢查文件一致性 root 5056 1 0 04:18 ? 00:00:00 /usr/sbin/rpc.idmapd root 5057 1 0 04:18 ? 00:00:00 /usr/sbin/rpc.mountd //權限管理驗證 root 5062 2 0 04:18 ? 00:00:00 [nfsd4_callbacks] root 5068 2 0 04:18 ? 00:00:00 [nfsd] root 5069 2 0 04:18 ? 00:00:00 [nfsd] root 5070 2 0 04:18 ? 00:00:00 [nfsd] root 5071 2 0 04:18 ? 00:00:00 [nfsd] root 5072 2 0 04:18 ? 00:00:00 [nfsd] root 5073 2 0 04:18 ? 00:00:00 [nfsd] root 5074 2 0 04:18 ? 00:00:00 [nfsd] root 5075 2 0 04:18 ? 00:00:00 [nfsd] root 5189 3406 0 04:27 pts/0 00:00:00 grep -E --color=auto rpc|nfs
NFS服務器啟動的時候至少需要兩個不同的進程,一個是管理nfs客戶端是否可以登陸rpc。nfsd主進程,一個是管理nfs客戶端是否能夠登入的rpc.mountd進程。
如果需要管理磁盤配額,則還需要加載rpc.rquotad進程
nfs服務端說明:
配置nfs啟動文件:
默認存放地點:/etc/exports //存在但是沒有內容,默認為空
exports配置文件格式:
nfs共享目錄 nfs客戶端地址1(參1,參2.....) 客戶端地址2(參1,參2...)
說明:
nfs共享目錄:為nfs服務器要共享的實際目錄,絕對目錄。注意權限問題。
nfs客戶端地址:為nfs服務器授權可以訪問的客戶端的地址,可以是單獨的ip地址或主機名,域名。也可以是整個網段。
授權整個網段:eg:10.0.0.0/24
文件配置實例說明:
1. /data 10.10.10.0/24(rw,sync) //允許客戶端讀寫,並且數據同步寫到服務器端磁盤 注意:24與(之間不能有空格
2./data 10.10.10.0/24(rw,sync,all_squash,anonuid=2000,anongid=2000)//允許讀寫,並且數據同步到客戶端磁盤,並且指定客戶端的用戶uid和pid
3./data 10.10.10.0/24(ro) //只讀共享
rw讀寫權限
sync請求或寫入數據時,數據同步寫入到nfs server 的硬盤后才返回。
ro 只讀權限
all_squash 不管是什么身份訪問共享目錄,權限都將被壓縮成匿名用戶。
1)確保所有客戶端服務器對nfs共享目錄具備相同的用戶訪問權限。
2)就是anonuid,anongid指定的uid和gid的用戶。
nfs 服務端配置:
mkdir -p /data //創建數據目錄
touch /data/ffy.txt //創建測試文檔
chown -R nfsnobody.nfsnobody /data
//更改屬組,nfsnobody.nfsnobody ls -ld /data vim /etc/exports //編輯配置文件。
/data 192.168.232.0/24(rw,sync)
exportfs -rv //加載配置文件
showmount -e localhost //nfs服務器本地查看掛載情況。 mount -t nfs 192.168.232.140:/data /mnt //本地掛載配置
df -h
nfs 客戶端 配置:
yum install rpcbind nfs-utils -y //安裝rpcbind與nfs
systemctl start rpcbind //啟動rpcbind,不啟動nfs 為了使用showmount等功能。但客戶端不用nfs功能
showmount -e 192.168.232.140 //查看本地
mount -t nfs 192.168.232.140:/data /mnt //執行掛載命令掛載到本機的/mnt目錄下。 前面的ip地址是客戶端的ip地址
df -h //查看掛載,如果有,則掛載成功。
至此所有的安裝成功。
