Linux(10):期中架構(2)--- NFS存儲服務
阿新 • • 發佈:2019-05-05
fsd ini nfs服務 訪問控制 touch llb src 一次 註意
1. 共享存儲服務概念:
# NFS是Network File System的縮寫,中文意思是網絡文件系統, # 它的主要功能是通過網絡(一般是局域網)讓不同的主機系統之間可以共享文件或目錄。
2. NFS共享存儲服務的應用:
# 將數據存儲到一臺服務器上,實現數據統一一致,共享訪問 # NFS存儲服務器中主要存儲哪些信息:用戶上傳的圖片 音頻 視頻 附件等信息 # NFS服務是分為服務端和客戶端 # 存儲服務器:NFS服務端 網站web服務器:NFS客戶端 # 實現共享存儲好處: 01. 實現數據統一一致 02. 節省網站磁盤資源 03. 節省網站訪問帶寬
3. NFS共享存儲服務的原理:
①. nfs服務端創建共享存儲目錄
②. nfs客戶端創建遠程掛載點目錄
③. nfs客戶端進行遠程掛載
④. 實現客戶端數據信息統一一致
4. NFS服務重要概念說明:
4.1 NFS共享文件系統RPC服務介紹
4.2 NFS共享文件系統RPC服務由來:
# NFS服務啟動進程和端口過程,需要由rpc服務統一管理
5. NFS服務部署實踐過程
5.1 NFS服務端部署流程:
# 第一步:檢查服務軟件是否安裝 [[email protected] ~]# rpm -qa|egrep "nfs-utils|rpcbind" # 檢查 nfs 和 rpc 服務是否已經安裝# 第二步:進行軟件服務安裝 [[email protected] ~]# yum install -y nfs-utils rpcbind ... [[email protected] ~]# rpm -qa|egrep "nfs-utils|rpcbind" nfs-utils-lib-1.1.5-13.el6.x86_64 rpcbind-0.2.0-16.el6.x86_64 nfs-utils-1.2.3-78.el6_10.1.x86_64 [[email protected] ~]# # 補充說明:nfs-utils 和 rpcbind兩個軟件大禮包rpm -ql nfs-utils # 查看軟件包內容 的命令 /etc/rc.d/init.d/nfs <-- nfs服務啟動腳本文件 /usr/sbin/showmount <-- 檢查nfs服務共享目錄信息 rpm -ql rpcbind /etc/rc.d/init.d/rpcbind <-- rpcbind服務啟動腳本文件 /usr/sbin/rpcbind <-- 檢查nfs服務向rpc服務註冊信息 # 第三步:編寫nfs服務配置文件 [[email protected] ~]# ll /etc/exports -rw-r--r--. 1 root root 0 Jan 12 2010 /etc/exports [[email protected] ~]# vim /etc/exports # 編寫服務配置文件; /etc/exports ---> 系統默認的配置共享存儲的文件,NFS服務會識別這個文件實現共享存儲 [[email protected] ~]# cat /etc/exports /data 172.16.1.0/24(rw,sync) # /data 表示數據存儲的目錄; 172.16.1.0/24 表示允許哪個網段的主機可以掛載到我這臺共享服務器上; (rw,rsync) ---> rw 表示共享目錄是可讀可寫的,rsync 是一個同步參數; 172.16.1.0/24 和 (rw,sync) 之間不能有空格 [[email protected] ~]# # 說明:配置文件信息 指定共享目錄 指定共享目錄訪問控制網段或主機信息(共享目錄參數信息) # 第四步:創建nfs服務共享目錄,並且進行授權 [[email protected] ~]# mkdir /data [[email protected] ~]# chown -R nfsnobody.nfsnobody /data/ [ro[email protected] ~]# # 第五步:啟動nfs和rpc服務 [[email protected] ~]# /etc/init.d/rpcbind start # 要先啟動 rpc 這個“中介”服務 Starting rpcbind: [ OK ] [[email protected] ~]# /etc/init.d/nfs start # 再啟動 nfs 服務 Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ] [[email protected] ~]# # 第六步:進行服務配置檢查 # 檢查 nfs 是否向 rpc 服務註冊 [[email protected] ~]# rpcinfo -p 172.16.1.31 # 檢查本地主機(172.16.1.31,也可用10.0.0.31)是否已經向 rpc 註冊 ... # 檢查是否存在可用的共享目錄 [[email protected] ~]# showmount -e 10.0.0.31 # showmount -e 服務端的地址 ---> 檢查是否有可用的共享目錄 Export list for 10.0.0.31: /data 172.16.1.0/24 [[email protected] ~]#
5.2 NFS客戶端部署流程:
# 第一步:檢查服務軟件是否安裝 [[email protected] ~]# rpm -qa|egrep "nfs-utils|rpcbind" [[email protected] ~]# # 第二步:進行軟件服務安裝 # 第三步:進行共享目錄掛載 [[email protected] ~]# mount -t nfs 172.16.1.31:/data /mnt # -t nfs 表示掛載 nfs 文件系統類型 ; 172.16.1.31:/data ---> 這個服務器上的 /data 目錄; /mnt 表示掛載到 /mnt 目錄 [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 8.8G 1.5G 6.9G 18% / tmpfs 238M 0 238M 0% /dev/shm /dev/sda1 190M 40M 141M 22% /boot 172.16.1.31:/data 8.8G 1.5G 6.9G 18% /mnt # 共享目錄掛載到了 /mnt [[email protected] ~]# # 第四步:進行共享存儲測試 # 網站服務器01上的操作 [[email protected] ~]# cd /mnt/ [[email protected] mnt]# ll total 0 [[email protected] mnt]# touch test.txt [[email protected] mnt]# ll total 0 -rw-r--r-- 1 nfsnobody nfsnobody 0 May 3 16:58 test.txt [[email protected] mnt]# # 存儲服務器上的操作 [[email protected] ~]# ll /data/ total 0 -rw-r--r-- 1 nfsnobody nfsnobody 0 May 3 16:58 test.txt # 存儲在 網站服務器的 /mnt 目錄下的內容 就相當於 存儲在了 存儲服務器的 /data目錄下 [[email protected] ~]# # 網站web服務器02 上的操作 [[email protected] ~]# ll /mnt/ total 0 -rw-r--r-- 1 nfsnobody nfsnobody 0 May 3 16:58 test.txt # 在 web02 上也能看到 web01 上的數據 [[email protected] ~]# # 說明:在web01的mnt目錄中創建的數據,在nfs和web02服務器上都可以看到,即已經實現數據共享存儲 客戶端上不需要啟動NFS服務 # 共享文件系統的工作原理(服務端3步 客戶端3步) # 服務端做了三件事: 1. 啟動rpcbind服務,創建中介 2. 啟動nfs服務,創建“房源”信息 3. 將“房源”信息向中介進行註冊,在nfs服務穩定運行過程中,“房源”信息只註冊一次 # 客戶端做了三件事: 1. 啟動rpcbind服務(可選) 2. 確保客戶端和服務端網絡連接建立成功 3. 執行mount命令進行網絡存儲掛載
6. NFS服務部署進程信息詳述
[[email protected] ~]# ps -ef|egrep "rpc|nfs" rpc 1564 1 0 09:32 ? 00:00:00 rpcbind rpc 1065 1 0 09:32 ? 00:00:00 rpc statd # <- 檢查數據存儲一致性 root 4736 2 0 21:31 ? 00:00:00 [rpciod/0] root 5363 1 0 21:47 ? 00:00:00 rpc.rquotad # <- 磁盤配額進程(remote quote server) root 5368 1 0 21:47 ? 00:00:00 rpc.mountd # <- 權限管理驗證等(NFS mount daemon) root 5375 2 0 21:47 ? 00:00:00 [nfsd4] root 5376 2 0 21:47 ? 00:00:00 [nfsd4_callbacks] root 5377 2 0 21:47 ? 00:00:00 [nfsd] # <- NFS主進程 root 5378 2 0 21:47 ? 00:00:00 [nfsd] # <- NFS主進程 root 5379 2 0 21:47 ? 00:00:00 [nfsd] # <- NFS主進程,管理登入,ID身份判別等。 root 5380 2 0 21:47 ? 00:00:00 [nfsd] root 5381 2 0 21:47 ? 00:00:00 [nfsd] root 5382 2 0 21:47 ? 00:00:00 [nfsd] root 5383 2 0 21:47 ? 00:00:00 [nfsd] root 5384 2 0 21:47 ? 00:00:00 [nfsd] # <- NFS主進程 root 5415 1 0 21:47 ? 00:00:00 rpc.idmapd # <- name mapping daemon # 用戶壓縮/用戶映射(記錄) root 5512 4670 0 22:02 pts/0 00:00:00 egrep rpc|nfs
7. NFS共享存儲服務配置說明
7.1 NFS共享文件系統配置文件格式說明:
# NFS共享目錄: 為NFS服務器端要共享的實際目錄,要用絕對路徑,如(/data)。 註意共享目錄的本地權限,如果需要讀寫共享,一定要讓本地目錄可以被NFS客戶端的用戶(nfsnobody)讀寫。 # NFS客戶端地址: 為NFS服務器端授權的可訪問共享目錄的NFS客戶端地址,可以為單獨的IP地址或主機名、域名等,也可以為整個網段地址。 還可以用“*”來匹配所有客戶端服務器,這裏所謂的客戶端一般來說是前端的業務的業務服務器,例如:web服務。具體說明見表10-3 權限參數集 對授權的NFS客戶端的訪問權限設置。參數具體說明見後文。 nfs權限(共享目錄【借給你手機】) nfs配置的/etc/exports /data 172.16.1.0/24(rw) 本地文件系統權限(【手機密碼不告訴你】) 掛載目錄的權限rwxr-xr-x root root /data
NFS共享配置文件語法格式:
同步和異步(sync 和 async):
NFS客戶端地址配置說明:
Linux(10):期中架構(2)--- NFS存儲服務