NFS - MIPS架构下构建NFS共享目录服务
文章目錄
- 概
- Lin 和 Win 共享文件
- 需求
- 原理
- 環境信息
- 檢查依賴
- 如何找mips的rpm包
- NFS服務端
- 上傳RPM安裝包
- 安裝RPCBIND和NFSSERVER
- 創建共享目錄
- 配置文件/etc/exports
- 配置項
- 加載配置文件
- 開機啟動
- 啟動服務
- 客戶端安裝
- 上傳RPM安裝包
- 安裝RPCBIND和NFSSERVER
- 創建共享目錄
- 開機啟動
- 啟動服務
- 客戶端掛載
- 查看nfs信息
- 測試
- NFS開機掛載
- AutoFs自動掛載服務
概
常見的文件服共享方式比如FTP , FTP協議的本質是傳輸文件,而非共享文件。
Lin 和 Win 共享文件
1987年,微軟公司和英特爾公司共同制定了SMB(Server Messages Block,服務器消息塊)協議,旨在解決局域網內的文件或打印機等資源的共享問題。
Samba服務程序現在已經成為在Linux系統與Windows系統之間共享文件的最佳選擇。 Samba服務程序還可以實現Linux系統之間的文件共享 。
如果覺得Samba服務程序的配置太麻煩,而且恰巧需要共享文件的主機都是Linux系統,推薦在客戶端部署NFS服務來共享文件 。
NFS-Network FileSystem的縮寫,NFS是由Sun開發并發展起來的一項用于在不同機器,不同操作系統之間通過網絡互相分享各自的文件。
NFS server也可以看作是一個FILE SERVER,它可以讓你的PC通過網絡將遠端得NFS SERVER共享出來的檔案MOUNT到自己的系統中,在CLIENT看來使用NFS的遠端文件就象是在使用本地文件一樣。
NFS協議從誕生到現在為止,已經有多個版本,如NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010)。
NFS(網絡文件系統)服務可以將遠程Linux系統上的文件共享資源掛載到本地主機的目錄上,從而使得本地主機(Linux客戶端)基于TCP/IP協議,像使用本地主機上的資源那樣讀寫遠程Linux系統上的共享文件。
需求
集群環境下,三臺機器A、B、C,沒有文件服務器,但是還要訪問同一個目錄,目錄中都是文件,傳統的做法是把這些圖片分別放到A、B、C。
所以需要搭建一個NFS服務,將NFS只需要放到A上,然后A共享給B和C,訪問的時候,B和C是通過RPC的方式去訪問A資源。
原理
網上找的圖,大佬們湊合看看吧,實在是不想畫了。。。。
環境信息
| 172.168.17.12 | 服務端 |
| 172.168.17.11 | 客戶端 |
檢查依賴
測試環境 , 建議關閉防火墻 ,因為nfs要通過rpc遠程端口訪問。
[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# systemctl disable firewalld.service如何找mips的rpm包
奈何,這幾臺server都是內網的,并不能使用yum 直接訪問 Internet, 而且也沒有光盤,沒辦法通過修改yum源的配置從本地加載,自己找找吧。
如果使用rpm安裝,一堆依賴,那工作量…
rpm從哪里下? 下哪些?
想了想,還是找找系統自帶的yum配置文件吧
baseurl=http://download.cs2c.com.cn/neokylin/server/updates/7.0/ls_64/
從哪里下載搞定了 , 下什么。。。。。
我有x86的,我也比對著下唄
方式一: 參考 x86的
[root@localhost rpm]# yum -y install nfs-utils --downloadonly --downloaddir /root/rpm
然后下載 mips的依賴包
你要是這么懶, 地址拿去 。。。
中標龍芯-MIPS- NFS rpm包
X86-NFS rpm包
NFS服務端
下面的操作均在 服務端端 IP 172.168.17.12上進行
上傳RPM安裝包
[root@localhost ~]# pwd
/root
[root@localhost ~]# mkdir rpm
安裝RPCBIND和NFSSERVER
[root@localhost rpm]# rpm -ivh *.rpm --force --nodeps創建共享目錄
[root@localhost rpm]# mkdir -p /home/zf/share配置文件/etc/exports
編輯/etc 目錄下的共享目錄配置文件exports,指定共享目錄及權限等
[root@localhost rpm]# vim /etc/exports# (格式:FS共享的目錄 NFS客戶端地址1(參數1,參數2,...) 客戶端地址2(參數1,參數2,...))/home/zf/share 172.168.17.11(rw,insecure,no_root_squash,no_all_squash,sync)其中的ip為客戶端的IP
添加的內容表示:允許ip 地址范圍在172.168.17.11 (當然了也可以配置比如ip地址范圍172.168.17.* )的計算機以rw,insecure,no_root_squash,no_all_squash,sync的權限來訪問 /home/zf/share 目錄
如果設置為 /home/zf/share *(rw,insecure,no_root_squash,no_all_squash,sync) 則對所以的IP都有效
配置項
【常用選項】
- ro:客戶端掛載后,其權限為只讀,默認選項;
- rw:讀寫權限;
- sync:同時將數據寫入到內存與硬盤中;
- async:異步,優先將數據保存到內存,然后再寫入硬盤;
- Secure:要求請求源的端口小于1024
【用戶映射】
- root_squash:當NFS客戶端使用root用戶訪問時,映射到NFS服務器的匿名用戶;
- no_root_squash:當NFS客戶端使用root用戶訪問時,映射到NFS服務器的root用戶;
- all_squash:全部用戶都映射為服務器端的匿名用戶;
- anonuid=UID:將客戶端登錄用戶映射為此處指定的用戶uid;
- anongid=GID:將客戶端登錄用戶映射為此處指定的用戶gid
加載配置文件
[root@localhost rpm]# exportfs -arv開機啟動
[root@localhost rpm]# systemctl enable rpcbind.service [root@localhost rpm]# [root@localhost rpm]# systemctl enable nfs-server.service Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.啟動服務
[root@localhost rpm]# systemctl start rpcbind.service [root@localhost rpm]# systemctl start nfs-server.service至此 ,nfs server端配置完畢 。接下來進行客戶端部分的操作,在IP 172.168.17.11上進行
客戶端安裝
下面的操作均在 客戶端 IP 172.168.17.11上進行
上傳RPM安裝包
[root@localhost ~]# pwd /root [root@localhost ~]# mkdir rpm[root@localhost rpm]# ll 總用量 1480 -rw-r--r-- 1 root root 99664 11月 24 21:34 gssproxy-0.7.0-4.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 55024 11月 24 21:34 keyutils-1.5.8-3.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 24536 11月 24 21:34 libbasicobjects-0.1.1-27.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 38380 11月 24 21:34 libcollection-0.6.2-27.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 196096 11月 24 21:34 libevent-2.0.21-4.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 58000 11月 24 21:34 libini_config-1.3.0-27.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 47176 11月 24 21:34 libnfsidmap-0.25-17.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 27208 11月 24 21:34 libpath_utils-0.2.1-27.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 25924 11月 24 21:34 libref_array-0.1.5-27.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 80552 11月 24 21:34 libtirpc-0.2.4-0.10.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 8284 11月 24 21:34 libverto-libevent-0.2.5-4.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 412084 11月 24 21:34 nfs-utils-1.3.0-0.48.ns7_4.1.01.mips64el.rpm -rw-r--r-- 1 root root 179316 11月 24 21:34 quota-4.01-14.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 91280 11月 24 21:34 quota-nls-4.01-14.ns7_4.noarch.rpm -rw-r--r-- 1 root root 59680 11月 24 21:34 rpcbind-0.2.0-42.ns7_4.mips64el.rpm -rw-r--r-- 1 root root 80880 11月 24 21:34 tcp_wrappers-7.6-77.ns7_4.mips64el.rpm [root@localhost rpm]#安裝RPCBIND和NFSSERVER
[root@localhost rpm]# rpm -ivh *.rpm --force --nodeps 警告:gssproxy-0.7.0-4.ns7_4.mips64el.rpm: 頭V3 RSA/SHA1 Signature, 密鑰 ID 7a486d9f: NOKEY 準備中... ################################# [100%] 正在升級/安裝...1:libtirpc-0.2.4-0.10.ns7_4 ################################# [ 6%]2:rpcbind-0.2.0-42.ns7_4 ################################# [ 13%]3:libref_array-0.1.5-27.ns7_4 ################################# [ 19%]4:libevent-2.0.21-4.ns7_4 ################################# [ 25%]5:libcollection-0.6.2-27.ns7_4 ################################# [ 31%]6:libbasicobjects-0.1.1-27.ns7_4 ################################# [ 38%]7:libverto-libevent-0.2.5-4.ns7_4 ################################# [ 44%]8:tcp_wrappers-7.6-77.ns7_4 ################################# [ 50%]9:quota-nls-1:4.01-14.ns7_4 ################################# [ 56%]10:quota-1:4.01-14.ns7_4 ################################# [ 63%]11:libpath_utils-0.2.1-27.ns7_4 ################################# [ 69%]12:libini_config-1.3.0-27.ns7_4 ################################# [ 75%]13:gssproxy-0.7.0-4.ns7_4 ################################# [ 81%]14:libnfsidmap-0.25-17.ns7_4 ################################# [ 88%]15:keyutils-1.5.8-3.ns7_4 ################################# [ 94%]16:nfs-utils-1:1.3.0-0.48.ns7_4.1.01################################# [100%] [root@localhost rpm]#創建共享目錄
[root@localhost rpm]# mkdir -p /home/zf/share開機啟動
[root@localhost rpm]# systemctl enable rpcbind.service [root@localhost rpm]# systemctl enable nfs-server.service Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.啟動服務
[root@localhost rpm]# [root@localhost rpm]# systemctl start rpcbind.service [root@localhost rpm]# systemctl start nfs-server.service[root@localhost rpm]#客戶端掛載
[root@localhost rpm]# mount -t nfs -o nolock,nfsvers=3,vers=3 -o proto=tcp 172.168.17.12:/home/zf/share /home/zf/share172.168.17.12 為nfs server的IP
查看nfs信息
# 查看nfs服務端信息 $ nfsstat -s# 查看nfs客戶端信息 $ nfsstat -c測試
11 上創建文件/目錄,去12訪問
12上創建文件/目錄,去11訪問
權限和你的配置有關系哈 (/etc/exports)
測試木問題呀
NFS開機掛載
無論是Samba服務還是NFS服務,都要把掛載信息寫入到/etc/fstab中,這樣遠程共享資源就會自動隨服務器開機而進行掛載,如果你不嫌麻煩的話,可以在每次使用之前執行mount命令進行手動掛載
如果希望NFS文件共享服務能一直有效,則需要將其寫入到fstab文件中:
172.168.17.12:/home/zf/share /home/zf/share nfs defaults 0 0AutoFs自動掛載服務
如果開啟了自動掛載NFS , 如果掛載的遠程資源太多,則會給網絡帶寬和服務器的硬件資源帶來很大負載。如果在資源掛載后長期不使用,也會造成服務器硬件資源的浪費。
autofs自動掛載服務可以幫我們解決這一問題。與mount命令不同,autofs服務程序是一種Linux系統守護進程,當檢測到用戶試圖訪問一個尚未掛載的文件系統時,將自動掛載該文件系統。換句話說,我們將掛載信息填入/etc/fstab文件后,系統在每次開機時都自動將其掛載,而autofs服務程序則是在用戶需要使用該文件系統時才去動態掛載,從而節約了網絡資源和服務器的硬件資源。
[root@localhost ~]# yum install autofs....... Complete! [root@localhost ~]#如何使用可以Google一篇入門,這里就不研究了,暫時不需要。
行了 就到這兒吧
總結
以上是生活随笔為你收集整理的NFS - MIPS架构下构建NFS共享目录服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小工匠聊架构 - 分布式缓存技术
- 下一篇: Apache ZooKeeper - 使