溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

搭建NFS服務器

發布時間:2020-07-25 02:10:21 來源:網絡 閱讀:505 作者:rickzhu 欄目:建站服務器
  1. 簡介

  NFS 是Network File System的縮寫,即網絡文件系統。一種使用于分散式文件系統的協定。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據讓應用程序在客戶端通過網絡訪問位于服務器磁盤中的數據,是在類Unix系統間實現磁盤文件共享的一種方法。NFS 的基本原則是“容許不同的客戶端及服務端通過一組RPC分享相同的文件系統”,它是獨立于操作系統,容許不同硬件及操作系統的系統共同進行文件的分享。NFS在文件傳送或信息傳送過程中依賴于RPC協議。RPC,遠程過程調用(Remote Procedure Call) 是能使客戶端執行其他系統中程序的一種機制。NFS本身是沒有提供信息傳輸的協議和功能的,但NFS卻能讓我們通過網絡進行資料的分享,這是因為NFS使用了一些其它的傳輸協議。而這些傳輸協議用到這個RPC功能的??梢哉fNFS本身就是使用RPC的一個程序?;蛘哒fNFS也是一個RPC SERVER。所以只要用到NFS的地方都要啟動RPC服務,不論是NFSSERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實現PROGRAM PORT的對應??梢赃@么理解RPC和NFS的關系:NFS是一個文件系統,而RPC是負責信息的傳輸。

2.部署

2.1部署環境

操作系統:CentOS Linux release 7.3.1611 (Core)

服務端:10.0.1.16

客戶端:10.0.1.1 10.0.1.2

2.2安裝服務器端
2.2.1在服務器端使用yum安裝nfs-utils服務

命令如下:

#yum list |grep nfs-utils #查看是否有nfs-utils的rpm包

#yum install nfs-utils.x86_64 -y  #安裝nfs-utils

2.2.2創建相關用戶并指定用戶id和用戶組id,然后設置目錄的屬主和用戶組

#groupadd -g 1005 rick

#useradd -g 1005 -u 1005-M rick

#mkdir -p /share/data

#chown -R rick:rick /share/data

注:1005是用戶id和用戶組id,這個實驗我使用自定義的;也可以使用默認的,使用

cat /etc/passwd |grep rick 命令行查看,例如

rick:x:1001:1001::/home/rick:/bin/bash

以冒號為分隔符,第一個字段是用戶名稱;第二個字段是密碼,是隱藏的;第三個字段是用戶id;第四個字段是用戶組id;第五個字段是描述;第六個字段是用戶的主目錄;第七個字段是用戶可用的shell。

2.2.3配置共享目錄并且設置權限,編輯nfs配置文件/etc/exports

命令:vim /etc/exports

添加  /share/data    *(rw,sync,all_squash,anonuid=1005,anongid=1005

      共享目錄  權限設置,*代表允許所有ip訪問,其他權限參考2.4節

注:這里為了方便使用*來設置可訪問共享目錄的ip,為了安全起見,部署的時候建議指定可訪問的單個ip或者一個網段,

例如

/share/data   10.0.1.1(rw,sync,all_squash,anonuid=1005,anongid=1005

#指定單個ip可訪問共享文件目錄

/share/data   10.0.1.0/24(rw,sync,all_squash,anonuid=1005,anongid=1005

#指定某個網段可以訪問共享文件目錄

或者

/share/data   10.0.1.1(rw,sync,all_squash,anonuid=1005,anongid=1005

10.0.1.2(rw,sync,all_squash,anonuid=1005,anongid=1005

#上面兩行是連接起來的哦,ip()空格ip(),多個ip使用空格分隔

#指定多ip可訪問共享文件目錄

2.2.4 啟動rpc(可能系統已經啟動)和nfs服務

systemctl start rpcbind.service

systemctl start nfs-server.service

2.2.5 防火墻開放111(rpc端口)和2049(nfs端口)

#firewall-cmd --permanent --add-port=111/tcp

#firewall-cmd --permanent --add-port=2049/tcp

#firewall-cmd --reload

 

2.3 安裝客戶端
2.3.1 需要安裝nfs服務,然后掛載nfs服務器端的共享目錄

yum install nfs-utils.x86_64 -y

mount -t nfs 10.0.1.16:/share/data /opt

注:/opt目錄是自定義的,如果本地沒有此目錄會自動創建

2.3.2開機自動掛載

vim /etc/fstab

添加10.0.1.16:/share/data /opt nfs defaults 0 0

2.4 權限參數設置參考表


參數值

內容說明

rw
 ro

該目錄分享的權限是可讀寫 (read-write) 或唯讀 (read-only),但最終能不能讀寫,還是與檔案系統的 rwx 及身份有關。

sync
 async

sync 代表資料會同步寫入到記憶體與硬碟中,async 則代表資料會先暫存於記憶體當中,而非直接寫入硬碟!

no_root_squash
 root_squash

用戶端使用 NFS 檔案系統的帳號若為 root 時,系統該如何判斷這個帳號的身份?預設的情況下,用戶端 root 的身份會由 root_squash 的設定壓縮成 nfsnobody, 如此對伺服器的系統會較有保障。但如果你想要開放用戶端使用 root 身份來操作伺服器的檔案系統,那麼這裡就得要開  no_root_squash 才行!

all_squash

不論登入 NFS 的使用者身份為何, 他的身份都會被壓縮成為匿名使用者,通常也就是 nobody(nfsnobody) 啦!

anonuid
 anongid

anon 意指 anonymous (匿名者) 前面關於 *_squash 提到的匿名使用者的 UID 設定值,通常為 nobody(nfsnobody),但是你可以自行設定這個 UID 的值!當然,這個 UID 必需要存在於你的 /etc/passwd 當中! anonuid 指的是 UID 而  anongid 則是群組的 GID 囉。


本文是參考鳥哥的私房菜-服務器而進行的實驗,且本文沒有鳥哥寫的那么詳細。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女