NFS文件系統介紹及相關實驗

NFS:Network File System 網絡文件系統,基于內核的文件系統。Sun公司開發,通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統上的文件,基于RPC(Remote Procedure Call Protocol遠程過程調用)實現

本節索引:

一、NFS網絡文件系統介紹

二、NFS服務配置

三、NFS掛載及autofs自動掛載

四、實驗:實現NFS服務

五、實驗:實現NFS偽根(RHCE)

六、實驗:實現家目錄NFS自動絕對路徑、相對路徑掛載

 

一、NFS網絡文件系統介紹

NFS:Network File System 網絡文件系統,基于內核的文件系統。Sun公司開發,通過使用NFS,用

戶和程序可以像訪問本地文件一樣訪問遠端系統上的文件,基于RPC(Remote Procedure Call Protocol遠

程過程調用)實現

 

RPC采用C/S模式??蛻魴C請求程序調用進程發送一個有進程參數的調用信息到服務進程,然后等待應答

信息。在服務器端,進程保持睡眠狀態直到調用信息到達為止。當一個調用信息到達,服務器獲得進程參

數,計算結果,發送答復信息,然后等待下一個調用信息,最后,客戶端調用進程接收答復信息,獲得進

程結果,然后調用執行繼續進行。

 

NFS優勢:

1.節省本地存儲空間,將常用的數據如:home目錄,存放在一臺NFS服務器上且可以通過網絡訪問,那么本

地終端將可以減少自身存儲空間的使用,適合在局域網使用

2.用戶不需要在網絡中的每個機器上都建有Home目錄,Home目錄可以放在NFS服務器上且可以在網絡上

被訪問使用。

3.一些存儲設備如軟驅、CDROM和Zip(一種高儲存密度的磁盤驅動器與磁盤)等都可以在網絡上被別的

機器使用。這可以減少整個網絡上可移動介質設備的數量。

 

NFS常見應用場景:

1.多個機器共享一臺CDROM或者其他設備。這對于在多臺機器中安裝軟件來說

更加便宜跟方便。

2.在大型網絡中,配置一臺中心NFS服務器用來放置所有用戶的home目錄可能會

帶來便利。這些目錄能被輸出到網絡以便用戶不管在哪臺工作站上登錄,總能得

到相同的home目錄。

3.不同客戶端可在NFS上觀看影視文件,節省本地空間。

4.在客戶端完成的工作數據,可以備份保存到NFS服務器上用戶自己的路徑下。

 

 

二、NFS服務介紹

軟件包:nfs-utils(系統自帶)

Kernel支持:nfs.ko

端口:2049(nfsd), 其它端口由rpcbind(111)分配

配置文件:/etc/exports,/etc/exports.d/*.exports

CentOS 7不支持同一目錄同時用nfs和samba共享,因為使用鎖機制不同

相關軟件包:rpcbind(必須),tcp_wrappers

CentOS 6開始portmap進程由rpcbind代替

NFS服務主要進程:

rpc.nfsd 最主要的NFS進程,管理客戶端是否可登錄

??? rpc.mountd 掛載和卸載NFS文件系統,包括權限管理

??? rpc.lockd 非必要,管理文件鎖,避免同時寫出錯

??? rpc.statd 非必要,檢查文件一致性,可修復文件

日志:/var/lib/nfs/

 

配置防火墻,開放NFS服務

配置NFS使用固定端口

vim /etc/sysconfig/nfs

RQUOTAD_PORT=875

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

STATD_PORT=662

STATD_OUTGOING_PORT=2020

防火墻除開放上述端口,還需開放TCP和UDP的111和2049共4個端口

 

導出的文件系統的格式:

/dir ? 主機1(opt1,opt2) 主機2(opt1,opt2)…

#開始為注釋

主機格式:

單個主機:ipv4,ipv6,FQDN

IP networks:兩種掩碼格式均支持

172.18.0.0/255.255.0.0

172.18.0.0/16

wildcards:主機名通配,例如*.magedu.com,IP不可以

netgroups:NIS域的主機組,@group_name

anonymous:表示使用*通配所有客戶端

 

每個條目指定目錄導出到的哪些主機,及相關的權限和選項

默認選項:(ro,sync,root_squash,no_all_squash)

選項

 

示例:/etc/exports文件中定義導出目錄

/myshare server.example.com

/myshare *.example.com

/myshare server?.example.com

/myshare server[0-20].example.com

/myshare 172.25.11.10

/myshare 172.25.0.0/16

/myshare 2000:472:18:b51:c32:a21

/myshare 2000:472:18:b51::/64

/myshare *.example.com 172.25.0.0/16

/myshare desktop.example.com(ro)

/myshare desktop.example.com(ro) server[0-20].example.com(rw)

/myshare diskless.example.com(rw,no_root_squash)

 

NFS工具:

rpcinfo

rpcinfo -p hostname

rpcinfo -s hostname 查看RPC注冊程序

 

exportfs

-v 查看本機所有NFS共享

-r 重讀配置文件,并共享目錄

-a 輸出本機所有共享

-au 停止本機所有共享

查看指定NFS服務器提供的共享目錄文件

 

showmount -e NfsServerIP

 

mount.nfs 掛載工具

NFSv4支持通過掛載NFS服務器的共享“根”,從而瀏覽NFS服務器上的共享

目錄列表

mount nfsserver:/ /mnt/nfs

 

三、NFS掛載及autofs自動掛載

客戶端NFS掛載:

基于安全考慮,建議使用nosuid,nodev,noexec掛載選項

NFS相關的掛載選項:

fg(默認)前臺掛載,bg后臺掛載

hard(默認)持續請求,soft 非持續請求

intrhard配合,請求可中斷

rsizewsize 一次讀和寫數據最大字節數,rsize=32768

_netdev 無網絡不掛載

示例:

默認NFS v4版本掛載

mount -o rw,nosuid,fg,hard,intr 172.16.0.1:/testdir /mnt/nfs/

也可指定以其他NFS版本掛載

mount -o vers=3 192.168.30.10:/data/nfsdir2 /mnt/nfs2

開機掛載:/etc/fstab

172.16.0.1:/public /mnt/nfs nfs defaults 0 0

 

 

autofs自動掛載:

可使用autofs按需要掛載NFS共享,在空閑時自動卸載

由autofs包提供

系統管理器指定由/etc/auto.master自動掛載器守護進程控制的掛載點

自動掛載監視器訪問這些目錄并按要求掛載文件系統

文件系統在失活的指定間隔5分鐘后會自動卸載

為所有導出到網絡中的NFS啟用特殊匹配 -host 至“browse”

參看幫助:man 5 autofs

支持含通配符的目錄名

* server:/export/&

 

 

 

四、實驗:實現NFS服務

前期準備:

虛擬機兩臺

NFS服務器:CentOS 7.4 ? ? ?IP:192.168.30.10

客戶端:CentOS 7.5 ? ? IP:192.168.30.17

NFS服務器端:

systemctl start nfs-server

mkdir /data/nfsdir{1,2,3}

vim /etc/exports

/data/nfsdir1 *

/data/nfsdir2 *(rw)

/data/nfsdir3 *(rw,no_root_squash)

#####################################################

也可基于IP控制NFS訪問(安全性不高,可被冒充)

/data/nfsdir2 192.168.30.17(rw)??

/data/nfsdir2 192.168.30.17(rw) 192.168.30.0/24(ro)

#####################################################

重啟NFS服務

exportfs –r

查看本機已生效的NFS共享文件

exportfs -v

1

 

 

客戶端:

查看NFS服務器提供的文件

showmount -e 192.168.30.10

2

創建掛載NFS的目錄

mkdir /mnt/nfs{1,2,3}

掛載nfsdir1,默認NFS v4版本掛載

mount 192.168.30.10:/data/nfsdir1 /mnt/nfs1

也可指定以其他NFS版本掛載

mount -o vers=3 192.168.30.10:/data/nfsdir2 /mnt/nfs2

NFS也是一種文件系統,可用mount命令查看已掛載的NFS文件系統

3

寫入/etc/fstab文件中實現永久掛載

4

nfs1目錄只讀掛載,無法創建文件

nfs2目錄可創建文件,文件所有者,所屬組映射為nfsnobody

nfs3目錄因為加了no_root_squash,root創建文件不影響到nfsnobody

5

 

五、實驗:實現NFS偽根(RHCE)

前期準備:

虛擬機兩臺

NFS服務器:CentOS 7.4 ? ? ?IP:192.168.30.10

客戶端:CentOS 7.5 ? ? IP:192.168.30.17

 

NFS服務器端:

mkdir /app/nfsdir1

mkdir /data/nfsdir2

mkdir /nfsroot/dir{1,2} -pv

掛載目錄

vim /etc/fstab

/app/nfsdir1? /nfsroot/dir1? none? bind?? 0?? 0

/data/nfsdir2? /nfsroot/dir2? none? bind?? 0?? 0

mount -a

1

NFS配置文件

vim /etc/exports.d/nfsroot.exports

/nfsroot?????? *(fsid=0,rw,crossmnt)

/nfsroot/dir1? *(rw)

/nfsroot/dir2? *(ro)

重啟NFS服務

exportfs –r

查看本機生效的NFS文件

exportfs –v

 

 

客戶端:

查看NFS服務器提供的文件

showmount -e 192.168.30.10

掛載偽根目錄

mount 192.168.30.10:/nfsroot /mnt

2

 

 

六、實驗:實現家目錄NFS自動絕對路徑、相對路徑掛載

前期準備:

虛擬機三臺

NFS服務器:CentOS 6.9?? IP:192.168.30.11

客戶端1:CentOS 7.4? IP:192.168.30.10

客戶端2:CentOS 7.5? IP:192.168.30.17

實驗預期:

客戶端1實現相對路徑掛載,客戶端2實現絕對路基掛載

 

NFS服務器:

開啟nfs服務

service rpcbind start

service nfs start?

建立用戶nfs1,nfs2

useradd -d /data/nfs/nfs1 -u 2001 nfs1

useradd -d /data/nfs/nfs2 -u 2002 nfs2

編寫測試文件

touch /data/nfs/nfs1/test1

touch /data/nfs/nfs2/test2

編寫nfs共享配置

vim /etc/exports

/data/? *(rw)

 

相對路徑掛載:

切換到客戶端1:

showmount -e 192.168.30.11

1

建立兩個用戶nfsuser1,nfsuser2

useradd -u 2001 nfsuser1

useradd -u 2002 nfsuser2

配置相對路徑自動掛載

vim /etc/auto.master

/home? /etc/home.autofs

2

vim /etc/home.autofs

nfsuser1? -fstype=nfs,vers=3 192.168.30.11:/data/nfs/nfs1

nfsuser2? -fstype=nfs,vers=3 192.168.30.11:/data/nfs/nfs2

3

重啟autofs服務

systemctl restart autofs

測試

su -nfsuser1

4

 

絕對路徑掛載:

切換到客戶端2:

useradd -u 2001 nfsuser1

useradd -u 2002 nfsuser2

配置絕對路徑自動掛載

vim /etc/auto.master

/- /etc/home.autofs

5

vim /etc/home.autofs

/home/nfsuser1? -fstype=nfs,vers=3 192.168.30.11:/data/nfs/nfs1

/home/nfsuser2? -fstype=nfs,vers=3 192.168.30.11:/data/nfs/nfs2

6

測試:

7

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/101894

(1)
wangxczwangxcz
上一篇 2018-06-28
下一篇 2018-06-28

相關推薦

  • inode 表

    cp和inode :                    

    Linux筆記 2018-04-01
  • Nginx介紹及Web服務相關配置

    Nginx 是一個高性能的Web和反向代理服務器, 它具有有很多非常優越的特性:作為 Web 服務器:相比Apache,Nginx 使用更少的資源,支持更多的并發連接,體現更高的效率,這點使 Nginx尤其受到虛擬主機提供商的歡迎。

    2018-07-10
  • 用戶管理練習

    用戶管理練習: 1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who | cut -d’ ‘ -f1 | sort -u liulian root 2、取出最后登錄到當前系統的用戶的相關信息。 [root@localhost ~]# last | h…

    2018-05-28
  • 軟件包的管理課程

    軟件運行和編譯 ? ABI:Application Binary Interface Windows與Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 庫級別的虛擬化: Linux: WINE Windows: Cygwin ? API:Application Progr…

    2018-04-29
  • 初識——Linux文件管理

    一:文件系統結構 文件目錄 Linux文件目錄結構是一個倒樹狀結構,從根(/)開始依次往下,根文件系統為rootfs:root filesystem; 文件名稱區分大小寫是由文件系統決定的,CentOS6.x默認文件系統為ext4,CentOS7.x上默認文件系統是xfs; 以點(.)開頭的文件為隱藏文件,文件路徑以(/)分割; 文件有倆類數據:元數據和數據…

    2018-03-31
  • 馬哥教育– 第一周作業

    一、描述計算機的組成及其功能。 計算機由運算器,控制器,存儲器,輸入設備和輸出設備五大部分組成。 運算器的功能是用于完成算術運算、邏輯運算。負責計算機執行的所有數學與邏輯功能。 控制器的功能是主要負責對程序所執行的指令進行分析,并協調計算機各部件進行工作計算機的所有其他部件。 存儲器的功能是用于儲存信息的設備,通常是將信息數字化后再利用電、磁、光學等方式的媒…

    2018-05-12
欧美性久久久久