linux下安裝與配置nfs服務器


NFS

什么是NFS?(NAS)

NFS(網絡文件系統):它的主要功能是通過網絡讓不同的機器系統之間可以彼此共享文件和目錄。NFS服務器可以允許NFS客戶端將遠端NFS服務器端的共享目錄掛載到本地的NFS客戶端中。在本地的NFS客戶端的機器看來,NFS服務器端共享的目錄就好像自己的磁盤分區和目錄一樣。一般客戶端掛載到本地目錄的名字可以隨便,但為方便管理,我們要和服務器端一樣比較好。

這個再往簡單點,就相當於windows里面共享文件,然后其他主機把這個共享文件映射成了本地盤使用一樣。接下來我們會學習兩部分:NFS原理(共享原理)、服務端如何搭建NFS(怎么共享)、客戶端怎么掛載(怎么映射網盤)

NFS簡介

NFS是(Network File System)的縮寫,既網絡文件系統。一種使用於分散式文件系統的協議,由SUN公司開發,於1984年向外公布。NFS允許一個系統在網絡上與他人共享文件和目錄,通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統上的文件。多用於類Unix操作系統上。

工作原理

服務器端和客戶端通信過程:

 

 

1)首先服務器端啟動RPC遠程過程調用(remote procedure call服務,並開啟111端口

2)啟動NFS服務,並向RPC注冊端口信息

3)客戶端啟動RPCportmap服務),向服務端的RPC(portmap)服務請求服務端的NFS端口

4)服務端的RPC(portmap)服務反饋NFS端口信息給客戶端。

5)客戶端通過獲取的NFS端口來建立和服務端的NFS連接並進行數據的傳輸。

 

 

NFS有很多功能,不同的功能需要使用不同的端口。因此NFS無法固定端口。而RPC會記錄NFS端口的信息,這樣我們就能夠通過RPC實現服務端和客戶端的RPC來溝通端口信息。

RPC和NFS之間又是如何之間相互通訊的?

首先當NFS啟動后,就會隨機的使用一些端口,然后NFS就會向RPC去注冊這些端口。RPC就會記錄下這些端口。並且RPC會開111端口,等待客戶端RPC的請求,如果客戶端有請求,那服務端的RPC就會將記錄的NFS端口信息告知客戶端

 

兩台機器能夠ping通

軟件包的安裝:

默認情況下,LINUX當中已經安裝了NFS相關的軟件包。只要確保本地上安裝了NFS文件系統的支持即可! nfs-utils 。

服務的啟動:

# systemctl  enable  nfs-server

# systemctl  start  nfs-server

NFS配置文件/etc/exports解析:

語法:

本機需要輸入的文件夾       輸出給誰(輸出的約定,多個用“,”分隔)

規則:

 一行一個輸出項目。一行寫不下,自動換行即可。

 本機需要輸入的文件夾       輸出給誰兩個參數之間使用一個或多個空格分隔。

 輸出給誰(輸出的約定,多個用“,”分隔)兩個參數之間不能有空格。

 (輸出的約定,多個用“,”分隔)里面不能有空格,多條預定中間使用“,”分隔。

范例:

/etc   172.25.250.0/255.255.255.0(rw,async)

/tmp/dir1   *(ro)    192.168.100.1(rw)

/test1       *.lab.exmaple.com(ro)

 服務器端重新加載配置文件而不中斷連接

# exportfs -rv

#setenforce   0  //設置selinux為關閉狀態

服務器端的掛載參數

參數

含義

secure

這個選項是缺省選項,它使用了 1024 以下的 TCP/IP 端口實現 NFS 的連接。指定 insecure 可以禁用這個選項。

 

rw

這個選項允許 NFS 客戶機進行讀/寫訪問。缺省選項是只讀的ro。

async

這個選項可以改進性能,但是如果沒有完全關閉 NFS 守護進程就重新啟動了 NFS 服務器,這也可能會造成數據丟失。缺省設置為 sync。

no_wdelay

這個選項關閉寫延時。如果設置了 async,那么 NFS 就會忽略這個選項。

nohide

如果將一個目錄掛載到另外一個目錄之上,那么原來的目錄通常就被隱藏起來或看起來像空的一樣。要禁用這種行為,需啟用 hide 選項。

no_subtree_check

這個選項關閉子樹檢查,子樹檢查會執行一些不想忽略的安全性檢查。缺省選項是啟用子樹檢查。

 

no_auth_nlm

這個選項也可以作為 insecure_locks 指定,它告訴 NFS 守護進程不要對加鎖請求進行認證。如果關心安全性問題,就要避免使用這個選項。缺省選項是 auth_nlm 或 secure_locks。

mp(mountpoint=path)

通過顯式地聲明這個選項,NFS 要求掛載所導出的目錄。

fsid=num

這個選項通常都在 NFS 故障恢復的情況中使用。如果希望實現 NFS 的故障恢復,請參考 NFS 文檔。

用戶映射的選項包括:

 

root_squash

這個選項不允許 root 用戶訪問掛載上來的 NFS 卷

no_root_squash

這個選項允許 root 用戶訪問掛載上來的 NFS 卷。

all_squash

這個選省設置是 no_all_squash。

項對於公共訪問的 NFS 卷來說非常有用,它會限制所有的 UID 和 GID,只使用匿名用戶。缺

 

anonuid

這兩個選項將匿名 UID 和 GID 修改成特定用戶和組帳號

 

NFS客戶端:

1、查看監測服務器端的輸出的項目

# showmount  -e   服務器IP地址

2、客戶端單次掛載:

# mount  -t  nfs      服務器的ip地址:/輸出的文件夾      本地掛載點

3、永久掛載:/etc/fstab

服務器的ip地址:/輸出的文件夾   本地掛載點   nfs   defaults  0  0

 

基於kerberos加密保護的NFS

NFS在以前只適合在局域網中使用,但由於NFSV4開始使用TCP協議進行傳輸,所以希望在工作當中在互聯網中使用NFS!!!

服務器端:

1、服務器端下載服務器端的kerberos的密鑰,放到/etc/krb5.keytab

2、在輸出項目的掛載參數中加入(, sec=krb5p

3、編輯NFS的系統配置文件:/etc/sysconfig/nfs  修改

   RPCNFSDARGS=""    改為

   RPCNFSDARGS="-V 4.2"

4、啟動服務器

   # systemctl  restart  nfs-server          //enable

   # systemctl  restart  nfs-secure-server   //enable

客戶端:

1、下載客戶端的kerberos的密鑰,放到/etc/krb5.keytab

2、# system  restart  nfs-secure   //enable

3、寫/etc/fstab

服務器的ip地址:/輸出的文件夾   本地掛載點   nfs   defaults,sec=krb5p,v4.2  0  0

 

10、配置 NFS 服務

一共有system1和system2 兩台機器

System1

# yum  install  nfs-utils -y   //安裝軟件包

# mkdir /securenfs     //創建共享文件

# chmod 777  /securenfs

 

# vim /etc/exports

/securenfs   *(rw)      //添加共享目錄

 

#exportfs  -rv   //加載/etc/exports文件

# systemctl  restart nfs-server

# systemctl  enable nfs-server

#firewall-cmd  --permanent  --add-service=nfs

#firewall-cmd   --reload

 

11、掛載一個 NFS 共享

System2

# mkdir  /mnt/secureshare

# vim /etc/fstab

system1:/securenfs       /mnt/secureshare   nfs  defaults  0  0

# mount  -a  

# touch /mnt/nfssecure/secret

 

System1

1、創建一個包含hello world”的新文件

#echo  hello  world > /securenfs/testfile.txt

System2上在 /mnt/secureshare就可以看到system1上創建的新文件

 


免責聲明!

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



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