天天看點

NFS - MIPS架構下建構NFS共享目錄服務

文章目錄

  • Lin 和 Win 共享檔案
  • 需求
  • 原理
  • 環境資訊
  • 檢查依賴
  • 如何找mips的rpm包
  • NFS服務端
    • 配置項
    • 上傳RPM安裝包
    • 安裝RPCBIND和NFSSERVER
    • 建立共享目錄
    • 配置檔案/etc/exports
    • 加載配置檔案
    • 開機啟動
    • 啟動服務
  • 用戶端安裝
    • 用戶端挂載
  • 檢視nfs資訊
  • 測試
  • NFS開機挂載
  • AutoFs自動挂載服務
NFS - MIPS架構下建構NFS共享目錄服務

常見的檔案服共享方式比如FTP , FTP協定的本質是傳輸檔案,而非共享檔案。

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資源。

NFS - MIPS架構下建構NFS共享目錄服務

網上找的圖,大佬們湊合看看吧,實在是不想畫了。。。。

Server Comments
172.168.17.12 服務端
172.168.17.11 用戶端

測試環境 , 建議關閉防火牆 ,因為nfs要通過rpc遠端端口通路。

[root@localhost ~]# systemctl stop firewalld.service[root@localhost ~]# systemctl disable firewalld.service      

奈何,這幾台server都是内網的,并不能使用yum 直接通路 Internet, 而且也沒有CD光牒,沒辦法通過修改yum源的配置從本地加載,自己找找吧。

NFS - MIPS架構下建構NFS共享目錄服務

如果使用rpm安裝,一堆依賴,那工作量…

rpm從哪裡下? 下哪些?

NFS - MIPS架構下建構NFS共享目錄服務

想了想,還是找找系統自帶的yum配置檔案吧

NFS - MIPS架構下建構NFS共享目錄服務
[ns7-mips64el-os]name=NeoKylin Linux Advanced Server 7 - Os
baseurl=http://download.cs2c.com.cn/neokylin/server/releases/7.0/ls_64/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=1[ns7-mips64el-extras]name=NeoKylin Linux Advanced Server 7 - Addons
baseurl=http://download.cs2c.com.cn/neokylin/server/everything/7.0/ls_64/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=0[ns7-mips64el-updates]name=NeoKylin Linux Advanced Server 7 - Updates
baseurl=http://download.cs2c.com.cn/neokylin/server/updates/7.0/ls_64/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=0      
NFS - MIPS架構下建構NFS共享目錄服務

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的依賴包

NFS - MIPS架構下建構NFS共享目錄服務
NFS - MIPS架構下建構NFS共享目錄服務
NFS - MIPS架構下建構NFS共享目錄服務

你要是這麼懶, 位址拿去 。。。

中标龍芯-MIPS- NFS rpm包

X86-NFS rpm包

下面的操作均在 服務端端 IP 172.168.17.12上進行

[root@localhost ~]# pwd

/root

[root@localhost ~]# mkdir rpm

[root@localhost rpm]# rpm -ivh *.rpm --force --nodeps      
NFS - MIPS架構下建構NFS共享目錄服務

[root@localhost rpm]# mkdir -p /home/zf/share      

編輯/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.serviceCreated 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上進行

[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]#      

[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.serviceCreated 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/share      

172.168.17.12 為nfs server的IP

NFS - MIPS架構下建構NFS共享目錄服務
# 檢視nfs服務端資訊$ nfsstat -s# 檢視nfs用戶端資訊$ nfsstat -c      

11 上建立檔案/目錄,去12通路

12上建立檔案/目錄,去11通路

NFS - MIPS架構下建構NFS共享目錄服務
NFS - MIPS架構下建構NFS共享目錄服務

權限和你的配置有關系哈 (/etc/exports)

測試木問題呀

無論是Samba服務還是NFS服務,都要把挂載資訊寫入到/etc/fstab中,這樣遠端共享資源就會自動随伺服器開機而進行挂載,如果你不嫌麻煩的話,可以在每次使用之前執行mount指令進行手動挂載

如果希望NFS檔案共享服務能一直有效,則需要将其寫入到fstab檔案中:

172.168.17.12:/home/zf/share  /home/zf/share  nfs defaults 0 0      

如果開啟了自動挂載NFS , 如果挂載的遠端資源太多,則會給網絡帶寬和伺服器的硬體資源帶來很大負載。如果在資源挂載後長期不使用,也會造成伺服器硬體資源的浪費。

autofs自動挂載服務可以幫我們解決這一問題。與mount指令不同,autofs服務程式是一種Linux系統守護程序,當檢測到使用者試圖通路一個尚未挂載的檔案系統時,将自動挂載該檔案系統。換句話說,我們将挂載資訊填入/etc/fstab檔案後,系統在每次開機時都自動将其挂載,而autofs服務程式則是在使用者需要使用該檔案系統時才去動态挂載,進而節約了網絡資源和伺服器的硬體資源。

[root@localhost ~]# yum install autofs.......
Complete![root@localhost ~]#      

繼續閱讀