系統學習-----NFS協議

NFS簡介

  • 網絡文件系統,採用CS架構的
  • 分佈式計算系統中的一部分組成,可以在不同網絡上共享和裝配遠程文件系統
  • 提供一種Unix操作系統上共享文件的方法
  • 結合遠程網絡啓動實現
    • 無盤工作站:PXE啓動系統,所有數據均在服務器磁盤陣列上
    • 瘦客戶工作站:本地啓動系統,本地磁盤存儲了常用的系統工作,而所有的/home目錄的用戶數據都被會存放在NFS服務器上並在網絡中處處可用

NFS協議模型

  • NFS客戶端和服務端
  • RPC遠程調用
  • 基於TCP/IP網絡進行傳輸
    在這裏插入圖片描述

RPC協議

  • NFS協議本身不具備網絡傳輸功能 ,而是基於RCP協議實現的
  • 提供一個面向過程的遠程服務的接口
  • 可以通過網絡從遠程主機程序上請求服務,而不需要了解底層網絡技術協議 - 工作在OIS模型的會話層,可以遵循RPC應用層協議提供服務端口註冊等功能
  • RPC使用網絡端口111監聽客戶端請求

在這裏插入圖片描述
在這裏插入圖片描述

NFS相關包和工具

  • nfs-utils: NFS的主要組件,包含有:rpc.nfsd已經rpc.mountd這兩個核心守護進程組件
  • rpcbind:提供RPC的端口映射的守護進程及相關文件、執行文件等
  • exportfs: 在NFS服務端,維護NFS共享資源的命令
  • showmount:在NFS客戶端,查看服務器共享的資源
  • nfsstat:顯示NFS的狀態統計信息
  • rpcinfo:顯示由RPC維護的端口映射,顯示已經註冊的RPC服務列表

NFS服務概覽

  • 安裝:
yum install nfs-utils rpcbind 
- 軟件包:nfs-utils -> 依賴rpcbind軟件包
- 服務類型:由systemd啓動的守護進程
- 配置單元: /usr/lib/systemd/system/nfs.service
- 守護進程: rpc.nfsd / rpc.mountd等
- 端口: 111 2049 20048
- 配置文件:/etc/exportfs 
  • 啓動相關服務:
 [root@test ~]# systemctl start rpcbind 
 [root@test ~]# systemctl start nfs-server
     
     	ss -tanl | grep -E "111|2049|20048"

儘量先啓動rpcbind,如果順序顛倒可能之前啓動的服務端口沒有註冊上去。

NFS服務端配置

  • 主配置文件:/etc/exportfs

  • 格式:
    共享文件 [主機表1[參數項…]] [主機表2[參數項…]]

    參數項:控制共享目錄的訪問權限,用戶映射等等
    ro:只讀
    rw:讀寫
    root_squash: nfs客戶端以root用戶訪問時被映射爲匿名用戶
    no_root_squash
    all_squash:所有用戶
    sync: 同時將數據寫入到內存和磁盤中,保證不丟失數據
    async:優先將數據寫入到內存中,然後再寫入到硬盤中,提高效率,但是可能會丟失書數據

  • exportfs命令:用戶維護NFS共享目錄列表

  • 當配置了/etc/exportfs文件後,可以使用exportfs命令直接使其生效

  • 參數選項:
    -a: 全部掛載或卸載/etc/exportfs文件中的設置
    -r: 重新掛載
    -u: 卸載共享目錄
    -v: 顯示輸出列表的同時,顯示設定參數

NFS客戶端

  • showmount命令:
    常用參數:
    -e: 顯示NFS服務端上共享的文件列表
    -a: 顯示本地掛載的文件資源的情況
    -v:version
    -d: 查看哪些共享目錄已經被客戶端掛載

關於NFS文件系統的和卸載:
mount -t nfs [-o 參數] NFS服務端地址:/共享目錄 /本地掛載點
umount /本地掛載點

開機啓動時自動掛載:/etc/fstab文件
NFS服務端地址:/共享目錄 /本地掛載點 nfs default 0 0

NFS實驗部署

[root@node1 ~]# yum install nfs‐utils rpcbind ‐y  
[root@node1 ~]# mkdir /nfsfile  
[root@node1 ~]# chmod ‐Rf 777 /nfsfile/  
[root@node1 ~]# cat /etc/exports  
/nfsfile    192.168.10.0/24(rw,sync,no_root_squash)  
[root@node1 ~]# systemctl restart rpcbind  
[root@node1 ~]# systemctl restart nfs‐server  
Export list for node1:  /nfsfile 192.168.10.0/24  
[root@node1 ~]# mount ‐t nfs 192.168.10.10:/nfsfile /mnt/nfsfile

[root@node1 data]# mount
192.168.10.130:/nfsfile on /data type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.10.10,local_lock=none,addr=192.168.10.130)

開機自動掛載 /etc/fstab配置文件中加入:
192.168.10.10:/nfsfile /mnt/nfsfile nfs defaults 0 0

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