ubuntu18.04搭建NFS服務器


系統環境:

NFS服務器操作系統: ubuntu18.04 server lts

NFS服務器IP:  192.168.1.164

注: NFS服務器 指的是 待安裝 NFS服務 的機器(物理機或者虛擬機)

步驟如下:

1. 先更新

sudo apt update

2. 安裝 NFS服務 (此時該服務已設置開機自啟動)

sudo apt install nfs-server

3.修改配置文件, 添加nfs-server上用於共享的目錄,並設置允許訪問該目錄的客戶機IP,及其讀寫權限.我這里為了配置簡單使用的是 【3.1】的方式

3.1 在NFS服務器上 創建根目錄 /nfsroot 用於共享 , 該目錄的讀寫權限 共享給所有連接到該服務器的 NFS客戶端

cd /
sudo mkdir nfs-server
sudo chmod +rw -R nfs-server
echo "/nfsroot *(rw,sync,no_root_squash)">>/etc/exports

3.2 在NFS服務器上 創建 根目錄 /nfsdata/client1  用於共享, 該目錄的讀寫權限共享給客戶端 192.168.1.164 (該客戶端主要用來寫業務日志或者服務運行狀態日志等)

sudo mkdir /nfsdata
sudo mkdir /nfsdata/www_logs
sudo chmod +rw -R /nfsdata/www_logs
echo "/nfsdata/www_logs 192.168.1.164(rw,sync,no_root_squash)">>/etc/exports

3.3 NFS服務器上的目錄 /nfsdata/www_logs 讀權限共享給客戶端 192.168.1.201 (該客戶端用來做日志分析, 異常校驗,服務崩潰日志查詢等)

echo "/nfsdata/www_logs 192.168.1.201(ro,sync,no_root_squash)">>/etc/exports

4. 重啟NFS服務

sudo service nfs-server restart

5. 至此 NFS 服務端搭建完畢.

6. NFS客戶端(這里和Server操作系統一致)安裝

sudo apt-get install nfs-common

7. NFS客戶端掛載測試。(將NFS服務器的目錄 /nfsroot 掛載到 客戶端目錄 /mnt/nfsroot, 此時服務端 /nfsroot目錄和 該客戶端 /mnt/nfsroot 目錄同步

mount -t nfs 192.168.1.164:/nfsroot /mnt/nfsroot

 

附:

(1)關於【步驟3】中的配置說明, 以  /nfsroot *(rw,sync,no_root_squash)  為例

第一項:/nfsroot

  指在NFS服務器上被用來共享的目錄, 該目錄會和客戶端的某個目錄同步

第二項: *

  這個 * 和【3.2】后面的 192.168.1.164 指的是要綁定到 該目錄(第一項中指定的)的客戶端 IP。若設置為 * 則表示允許任何NFS客戶端綁定到該目錄; 設置為192.168.1.164 表示僅允許IP 為 192.168.1.164的客戶端綁定該目錄

  

特定ip地址的主機:192.168.1.164
特定子網中的所有主機:192.168.1.0/24192.168.1.0/255.255.255.0
特定域名的主機:nfs.rurjs.com
特定域中的所有主機:*.rurjs.com
所有主機:*

 

第三項: rw

  這里表示客戶端對該共享目錄的權限,

ro:共享目錄只讀;
rw:共享目錄可讀可寫;

 

第四項: sync

sync:將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性;
async:將數據先保存在內存緩沖區中,必要時才寫入磁盤;

 

第五項: no_root_squash

all_squash:所有訪問用戶都映射為匿名用戶或用戶組;
no_all_squash(默認):訪問用戶先與本機用戶匹配,匹配失敗后再映射為匿名用戶或用戶組;
root_squash(默認):將來訪的root用戶映射為匿名用戶或用戶組;
no_root_squash:來訪的root用戶保持root帳號權限;
subtree_check(默認) :若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限;
no_subtree_check :即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;

其他可用項:

anonuid=<UID>:指定匿名訪問用戶的本地用戶UID,默認為nfsnobody(65534);
anongid=<GID>:指定匿名訪問用戶的本地用戶組GID,默認為nfsnobody(65534);
secure(默認):限制客戶端只能從小於1024的tcp/ip端口連接服務器;
insecure:允許客戶端從大於1024的tcp/ip端口連接服務器;
wdelay(默認):檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率;
no_wdelay:若有寫操作則立即執行,應與sync配合使用;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM