紅帽7 NFS(網絡文件系統)
NFS(網絡文件系統)服務可以將遠程 Linux 系統上的文件共享資源掛載到本地主機的目錄上,從而使得本地主機(Linux 客戶端)基於 TCP/IP 協議,像使用本地主機上的資源那樣讀寫遠程 Linux 系統上的共享文件, RHEL 7 系統中默認已經安裝了 NFS 服務。
第一步:為了檢驗 NFS 服務配置的效果,我們需要使用兩臺 Linux 主機(一臺充當 NFS服務器,一臺充當 NFS 客戶端)
兩臺 Linux 主機所使用的操作系統以及 IP 地址
主機名稱 | 操作系統 | IP地址 |
NFS 服務器 | RHEL 7 | 192.168.10.10 |
NFS 客戶端 | RHEL 7 | 192.168.10.20 |
清空 NFS 服務器上面 iptables 防火墻的默認策略,以免默認的防火墻策略禁止正常的 NFS 共享服務。
[root@localhost ~]# iptables -F [root@localhost ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
第二步:在 NFS 服務器上建立用於 NFS 文件共享的目錄,並設置足夠的權限確保其他人也有寫入權限。
[root@localhost ~]# mkdir /database [root@localhost~]# echo "hello world" > /database/readme.txt [root@localhost ~]# chmod -Rf 777 /database/readme.txt
第三步:NFS 服務程序的配置文件為/etc/exports,默認情況下裏面沒有任何內容。我們可以按照“共享目錄的路徑 允許訪問的 NFS 客戶端(共享權限參數)”的格式,定義要共享的目錄與相應的權限。
例如,如果想要把 /database 目錄共享給 192.168.10.0/24 網段內的所有主機,讓這些主機都擁有讀寫權限,在將數據寫入到 NFS 服務器的硬盤中後才會結束操作,最大限度保證數據不丟失,以及把來訪客戶端 root 管理員映射為本地的匿名用戶等
用於配置 NFS 服務程序配置文件的參數
參數 | 作用 |
ro | 只讀 |
rw | 讀寫 |
root_squash | 當NFS客戶端以root管理員訪問時,映射為NFS服務器的匿名用戶 |
no_root_squash | 當NFS客戶端以root管理員訪問時,映射為NFS服務器的root管理員 |
all_squash | 無論NFS客戶端使用什麽賬戶訪問,均映射為NFS服務器的匿名用戶 |
sync | 同時將數據寫入到內存與硬盤中,保證不丟失數據 |
async | 優先將數據保存到內存,然後再寫入硬盤;這樣效率更高,但可能會丟失數據 |
[root@localhost ~]# vim /etc/exports
/database 192.168.10.*(rw,sync,root_squash)
第四步:啟動和啟用 NFS 服務程序。紅帽5或6裏面需要使用 RPC(Remote Procedure Call,遠程過程調用)服務將 NFS 服務器的 IP 地址和端口號等信息發送給客戶端。因此,在啟動 NFS 服務之前,還需要順帶重啟並啟用 rpcbind 服務程序,紅帽7不需要。
[root@localhost ~]# systemctl restart nfs-server [root@localhost ~]# systemctl enable nfs-server ln -s ‘/usr/lib/systemd/system/nfs-server.service‘ ‘/etc/systemd/system/nfs.target.wants/nfs-server.service‘
NFS 客戶端的配置,先使用 showmount 命令查詢 NFS 服務器的遠程共享信息,其輸出格式為“共享的目錄名稱 允許使用客戶端地址”。
showmount 命令中可用的參數以及作用
參數 | 作用 |
-e | 顯示NFS服務器的共享列表 |
-a | 顯示本機掛載的文件資源的情況NFS資源的情況 |
-v | 顯示版本號 |
[root@localhost Desktop]# showmount -e 192.168.10.10 Export list for 192.168.10.10: /database 192.168.10.*
然後在 NFS 客戶端創建一個掛載目錄。
[root@localhost Desktop]# mkdir /database
[root@localhost Desktop]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Tue Oct 2 18:32:33 2018 # # Accessible filesystems, by reference, are maintained under ‘/dev/disk‘ # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/rhel-root / xfs defaults 1 1 UUID=e4edf9ea-99aa-4c91-8c9b-c13549216c84 /boot xfs defaults 1 2 /dev/mapper/rhel-swap swap swap defaults 0 0 192.168.10.10:/database /database nfs defaults 0 0
[root@localhost Desktop]# mount -a
[root@localhost Desktop]# cd /database/
[root@localhost database]# ls
readme.txt
紅帽7 NFS(網絡文件系統)