NFS网络文件系统服务
1、NFS網絡文件系統簡介
????1)NFS概念描述:
????什么是nfs?nfs是Network File system的縮寫,它的主要功能是通過網絡讓不同的主機系統之間可以彼此共享文件或目錄。NFS客戶端(一般為應用服務器,如web)可以通過掛載(mount)的方式將NFS服務器端共享的數據文件目錄掛載到NFS客戶端本地系統中(就是某一個掛載點)。從NFS客戶端查看本地的掛載目錄,就是訪問NFS服務器端的共享目錄。
????NFS網絡文件系統的使用很像Windows系統的網絡共享、安全功能、網絡驅動器映射,這也和Linux的Samba服務類似。
????2)NFS在企業中的應用場景:
????在企業集群架構的工作場景中,NFS網絡文件系統一般被用來存儲共享視頻、圖片、附件等靜態資源文件(一般把網站用戶上傳的文件都放在NFS共享里),NFS是當前互聯網系統架構中最常用的數據存儲服務之一,特別是中小型網站公司應用頻率很高。大公司或門戶除了使用NFS外,還可能會使用MFS、GFS、FASTFS、TFS等分布式文件系統。
????3)網絡文件系統類型:
????NFS:適用于中小企業;
????MFS:用于存放圖片文件,分布式文件系統;
????GFS:一般用于云計算,做后端存儲的大文件。
2、NFS服務器端環境
[root@localhost?/]#?cat?/etc/redhat-release? Red?Hat?Enterprise?Linux?Server?release?7.1?(Maipo)?????#RedHat7.1操作系統 [root@localhost?/]#?uname?-r 3.10.0-229.el7.x86_64.debug [root@localhost?/]#?ifconfig|sed?-n?'2,2p'|awk?'{print?$2}' 192.168.26.11????????????????????????????#服務器IP地址3、安裝NFS服務
????1)yum安裝nfs服務軟件包
????① rpcbind:這個軟件包是rpc的主程序,客戶端和服務端都需要安裝;
????② nfs-utils:這個軟件包是NFS服務的主程序,客戶端和服務端都需要安裝。
[root@localhost?/]#?rpm?-qa?nfs-utils?rpcbind???#檢查軟件包是否安裝 [root@localhost?/]#?yum?-y?×××tall?nfs-utils?rpcbind????#安裝軟件包 [root@localhost?/]#?rpm?-qa?rpcbind?nfs-utils?????#檢查軟件包是否安裝 rpcbind-0.2.0-26.el7.x86_64 nfs-utils-1.3.0-0.8.el7.x86_64????2)安裝軟件包時報錯以及解決方法
????① 安裝rpcbind報錯信息
[root@nfs-client /]# yum -y ×××tall rpcbind
Failed to set locale, defaulting to C
Loaded plug×××: fastestmirror
Loading mirror speeds from cached hostfile
?* base: mirrors.163.com
?* extras: mirrors.163.com
?* updates: mirrors.163.com
***********************省略部分內容***************
error: %pre(rpcbind-0.2.0-44.el7.x86_64) scriptlet failed, exit status 6
Error in PREIN scriptlet in rpm package rpcbind-0.2.0-44.el7.x86_64
? Verifying? : rpcbind-0.2.0-44.el7.x86_64???????????????????????????????????????? 1/1
?
Failed:
? rpcbind.x86_64 0:0.2.0-44.el7???????????????????????????????????????????????????????
?
Complete!
????② 解決方法
錯誤提示安裝軟件的時候執行什么腳本出現了錯誤,經百度之后知道在安裝rpm軟件包的時候,會先執行rpm包中的預處理腳本,應該是執行這個腳本的時候出現了錯誤,所以我嘗試查看這個腳本都執行了什么內容;
那么如何獲取到這個腳本呢?
取對應的rpm包
yum ×××tall xxxxpackage? --downloadonly --downloaddir=/root
取得rpm對應的安裝預處理腳本
rpm --scripts -qp xxxxpackage? > x-scripts.log
發現該腳本中有用到useradd/userdel命令來添加rpc的用戶,由此想起之前使用chattr +i /etc/passwd對passwd文件做了加鎖處理,所以會造成useradd/userdel命令不能正常執行,這應該就是造成預處理腳本不能正常執行的原因了吧,使用chattr -i /etc/passwd解鎖之后軟件可以正常安裝。
4、啟動NFS服務(服務器端)
????1)啟動rpcbind服務
????2)啟動nfs服務
????3)查看rpc進程
????4)查看rpc狀態
????5)查看rpc有沒有注冊端口(111是rpc的默認端口)
5、NFS客戶端啟動(只啟動rpc服務即可)
????1)nfs客戶端環境
????2)安裝rpcbind????
????3)啟動rpcbind服務
????4)查看rpc有沒有注冊端口
6、配置及測試
????1)服務端配置
????① 創建一個你要共享的目錄
[root@localhost?/]#?ifconfig|sed?-n?'2,2p'|awk?'{print?$2}' 192.168.26.11 [root@localhost?/]#?mkdir?/data????② 配置NFS配置文件(默認配置文件是空的)
[root@localhost?/]#?vim?/etc/exports############### /data?192.168.26.0/24(rw,sync)?????????#/data是共享目錄;192.168.26.0/24是允許網絡訪問地址段;(rw,sync)是權限????③ 重新加載nfs服務(盡量不要重啟服務)
[root@localhost?/]#?systemctl?reload?nfs????④ 檢查nfs共享配置是否成功
[root@localhost?/]#?showmount?-e?localhost Export?list?for?localhost: /data?192.168.26.0/24????⑤ 向第一步創建的共享目錄里面存放或創建文件數據,等下與客戶端對比是否一樣
[root@localhost?/]#?cd?/data/ [root@localhost?data]#?touch?aa{1..3} [root@localhost?data]#?touch?oldboy-{5..8} [root@localhost?data]#?ls aa1??aa2??aa3??oldboy-5??oldboy-6??oldboy-7??oldboy-8????⑥ 把共享目錄的屬主和屬組設置為NFS用戶
[root@localhost?data]#?chown?-R?nfsnobody:nfsnobody?/data/ [root@localhost?data]#?ls?-ld?/data drwxr-xr-x.?2?nfsnobody?nfsnobody?96?6月??14?16:24?/data????2)客戶端配置及測試
????① 檢查服務端NFS是否OK
[root@vms002?/]#?ifconfig|sed?-n?'2,2p'|awk?'{print?$2}' 192.168.26.102 [root@vms002?/]#?showmount?-e?192.168.26.11 Export?list?for?192.168.26.11: /data?192.168.26.0/24????② 客戶端上創建一個掛載目錄nfs-data,掛載nfs
[root@vms002?/]#?mkdir?/nfs-data?????#創建掛載目錄 [root@vms002?/]#?mount?-t?nfs?192.168.26.11:/data?/nfs-data/?????#掛載nfs共享目錄 [root@vms002?/]#?df?-hT?????#查看已掛載的nfs共享目錄 文件系統????????????類型??????容量??已用??可用?已用%?掛載點 /dev/sda1???????????xfs????????40G??3.2G???37G????8%?/ 192.168.26.11:/data?nfs4???????18G??4.1G???14G???24%?/nfs-data?????????#nfs共享目錄????③ 查看nfs-data目錄是否是NFS服務端共享的數據,并創建文件,看nfs的寫權限是否成功。
[root@vms002?/]#?cd?/nfs-data/ [root@vms002?nfs-data]#?ls aa1??aa2??aa3??oldboy-5??oldboy-6??oldboy-7??oldboy-8 [root@vms002?nfs-data]#?touch?www{1..5} [root@vms002?nfs-data]#?ls aa1??aa3???????oldboy-6??oldboy-8??www2??www4 aa2??oldboy-5??oldboy-7??www1??????www3??www5????④ 設置開機自動掛載
[root@vms002?/]#?vim?/etc/fstab? 192.168.26.11:/data??/nfs-data??nfs??defaults??0?0 [root@vms002?/]#?umount?/nfs-data/ [root@vms002?/]#?df?-hT 文件系統???????類型??????容量??已用??可用?已用%?掛載點 /dev/sda1??????xfs????????40G??3.2G???37G????8%?/ devtmpfs???????devtmpfs??2.0G?????0??2.0G????0%?/dev tmpfs??????????tmpfs?????2.0G??148K??2.0G????1%?/dev/shm tmpfs??????????tmpfs?????2.0G???17M??2.0G????1%?/run tmpfs??????????tmpfs?????2.0G?????0??2.0G????0%?/sys/fs/cgroup /dev/sr0???????iso9660???3.7G??3.7G?????0??100%?/run/media/jerry/RHEL-7.1?Server.x86_64 [root@vms002?/]#?mount?-a [root@vms002?/]#?df?-hT 文件系統????????????類型??????容量??已用??可用?已用%?掛載點 /dev/sda1???????????xfs????????40G??3.2G???37G????8%?/ devtmpfs????????????devtmpfs??2.0G?????0??2.0G????0%?/dev tmpfs???????????????tmpfs?????2.0G??148K??2.0G????1%?/dev/shm tmpfs???????????????tmpfs?????2.0G???17M??2.0G????1%?/run tmpfs???????????????tmpfs?????2.0G?????0??2.0G????0%?/sys/fs/cgroup /dev/sr0????????????iso9660???3.7G??3.7G?????0??100%?/run/media/jerry/RHEL-7.1?Server.x86_64 192.168.26.11:/data?nfs4???????18G??4.1G???14G???24%?/nfs-data? ??3)客戶端報錯案例:
????① 檢測服務端的NFS服務失敗,報錯信息
[root@vms002?/]#?showmount?-e?192.168.26.11 clnt_create:?RPC:?Port?mapper?failure?-?Unable?to?receive:?errno?113?(No?route?to?host)????② 解決方法:
????#根據上面的報錯信息,nfs server服務器端可能被firewalld(防火墻)攔截了,關閉NFS服務端的防火墻或允許通過
????#nfs client客戶端再次檢查是否可以連接到nfs服務端
7、總結
????1)NFS服務端
????① 檢查并安裝nfs服務
[root@localhost?/]#?rpm?-qa?rpcbind?nfs-utils [root@localhost?/]#?yum?-y?×××tall?rpcbind?nfs-utils????② 啟動rpc和nfs服務以及設置開機自啟動并檢查
[root@localhost?/]#?systemctl?start?rpcbind [root@localhost?/]#?systemctl?enable?rpcbind [root@localhost?/]#?systemctl?start?nfs-server [root@localhost?/]#?systemctl?enable?nfs-server [root@localhost?/]#?systemctl?is-active?rpcbind active [root@localhost?/]#?systemctl?is-enabled?rpcbind enabled [root@localhost?/]#?systemctl?is-active?nfs-server active [root@localhost?/]#?systemctl?is-enabled?nfs-server enabled????③ 配置共享/data目錄
[root@localhost?/]#?vim?/etc/exports ###############注釋################ /data?192.168.26.0/24(rw,sync)????④ 重新加載NFS服務(盡量不要重啟)
[root@localhost?/]#?systemctl?reload?nfs????⑤ 檢查nfs服務配置是否成功
[root@localhost?/]#?showmount?-e?localhost Export?list?for?localhost: /data?192.168.26.0/24????⑥ 設置共享目錄的權限(把共享目錄的屬主和屬組設置為nfs用戶)
[root@localhost?data]#?chown?-R?nfsnobody:nfsnobody?/data/ [root@localhost?data]#?ls?-ld?/data drwxr-xr-x.?2?nfsnobody?nfsnobody?96?6月??14?16:24?/data????2)客戶端(客戶端只啟動rpc服務即可)
????① 安裝nfs和rpc軟件
[root@localhost?/]#?rpm?-qa?rpcbind?nfs-utils [root@localhost?/]#?yum?-y?×××tall?rpcbind?nfs-utils????② 啟動rpc服務以及設置開機自啟動,并檢查
[root@vms002?/]#?systemctl?start?rpcbind [root@vms002?/]#?systemctl?enable?rpcbind [root@vms002?/]#?systemctl?is-active?rpcbind active [root@vms002?/]#?systemctl?is-enabled?rpcbind enabled????③ 檢查服務端NFS是否OK
[root@vms002?/]#?showmount?-e?192.168.26.11 Export?list?for?192.168.26.11: /data?192.168.26.0/24????④ 掛載并測試
[root@vms002?/]#?mount?-t?nfs?192.168.26.11:/data?/nfs-data/ [root@vms002?/]#?cd?/nfs-data/ [root@vms002?nfs-data]#?ls aa1??aa2??aa3??oldboy-5??oldboy-6??oldboy-7??oldboy-8 [root@vms002?nfs-data]#?touch?www{1..5} [root@vms002?nfs-data]#?ls aa1??aa3???????oldboy-6??oldboy-8??www2??www4 aa2??oldboy-5??oldboy-7??www1??????www3??www5????⑤ 設置開機自動掛載
[root@vms002?/]#?vim?/etc/fstab? 192.168.26.11:/data??/nfs-data??nfs??defaults??0?0轉載于:https://blog.51cto.com/13716812/2409230
總結
以上是生活随笔為你收集整理的NFS网络文件系统服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Elasticsearch聚合初探——m
- 下一篇: java信息管理系统总结_java实现科