云服務器下搭建 NFS 網絡文件系統
1.云服務器簡介
云服務器(Elastic Compute Service, ECS)是一種簡單高效、安全可靠、處理能力可彈性伸縮的計算服務。其管理方式比物理服務器更簡單高效。用戶無需提前購買硬件,即可迅速創建或釋放任意多臺云服務器。
云服務器的業內名稱其實叫做計算單元。所謂計算單元,就是說這個服務器只能算是一個人的大腦,相當于普通電腦的CPU,里面的資源都是有限的。你要獲得更好的性能,解決辦法一是升級云服務器,二是將其它耗費計算單元資源的軟件部署在對應的云服務上。例如數據庫有專門的云數據庫服務、靜態網頁和圖片有專門的文件存儲服務。
騰訊云云服務器 (Cloud Virtual Machine, CVM) 是在云中提供可擴展的計算服務, 避免了使用傳統服務器時需要預估資源用量及前期投入的情況。 通過使用騰訊云 CVM , 您可以在短時間內快速啟動任意數量的云服務器并即時部署應用程序。 騰訊云 CVM 支持用戶自定義一切資源: CPU、 內存、 硬盤、 網絡、 安全等等, 并可在訪問量和負載等需求發生變化時輕松地調整它們。
騰訊云服務器免費體驗:https://cloud.tencent.com/act/pro/cvmweekly?from=18074
![pYYBAGMOHTmAcc27AAQz9GbW5Bc794.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHTmAcc27AAQz9GbW5Bc794.png#pic_center)
2.購買服務器,登錄服務器
2.1 配置云服務器環境
服務器配置Linux環境可參考官方產品文檔:https://cloud.tencent.com/document/product/213/2936
![poYBAGMOHTqAH9PyAAM1eLeR2pk771.png#pic_center](https://file.elecfans.com//web2/M00/66/0F/poYBAGMOHTqAH9PyAAM1eLeR2pk771.png#pic_center)
2.2 服務器登錄
![pYYBAGMOHTuAd-vZAAR6hskNfWI122.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHTuAd-vZAAR6hskNfWI122.png#pic_center)
![pYYBAGMOHTyAVHcfAAHSeTaHI3s241.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHTyAVHcfAAHSeTaHI3s241.png#pic_center)
![poYBAGMOHTyALlR9AAKpCc9dwEc827.png#pic_center](https://file.elecfans.com//web2/M00/66/0F/poYBAGMOHTyALlR9AAKpCc9dwEc827.png#pic_center)
登錄成功
![pYYBAGMOHTyAVphRAAH8Pqvie5s049.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHTyAVphRAAH8Pqvie5s049.png#pic_center)
2.3 ssh遠程登錄服務器
SSH 為 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,后來又迅速擴展到其他操作平臺。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用于多種平臺。幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺,都可運行SSH。
SSH是由客戶端和服務端的軟件組成的,有兩個不兼容的版本分別是:1.x和2.x。 用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。
服務端是一個守護進程(daemon),他在后臺運行并響應來自客戶端的連接請求。服務端一般是sshd進程,提供了對遠程連接的處理,一般包括公共密鑰認證、密鑰交換、對稱密鑰加密和非安全連接。
客戶端包含ssh程序以及像scp(遠程拷貝)、slogin(遠程登陸)、sftp(安全文件傳輸)等其他的應用程序。
2.3.1 ubuntu下安裝ssh服務
[wbyq@wbyq home]$ sudo apt-get install openssh-server #安裝ssh服務器
[wbyq@wbyq home]$ sudo /etc/init.d/ssh restart #啟動SSH服務
[wbyq@wbyq ~]$ sudo ufw disable #關閉防護墻
2.3.2 SecureCRT遠程登錄
??1.windows 下安裝 SecureCRT。 此軟件自 行下載, 這里就不做說明。
??2.運行 SecureCRT 軟件, 添加連接信息。
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/66/0F/poYBAGMOHT2AKvfdAAMbQIApMeQ868.png#pic_center)
3.新建會話
![pYYBAGMOHT6AHp81AAJcm81wM8g842.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHT6AHp81AAJcm81wM8g842.png#pic_center)
![poYBAGMOHT6ARftNAAIc_r0rpGc378.png#pic_center](https://file.elecfans.com//web2/M00/66/0F/poYBAGMOHT6ARftNAAIc_r0rpGc378.png#pic_center)
![pYYBAGMOHT6ARPQ6AAHDnbyI2VE451.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHT6ARPQ6AAHDnbyI2VE451.png#pic_center)
![poYBAGMOHT-AMIAOAAE9A471dgc482.png#pic_center](https://file.elecfans.com//web2/M00/66/0F/poYBAGMOHT-AMIAOAAE9A471dgc482.png#pic_center)
![pYYBAGMOHT-AEZfdAAEBun9vQaE710.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHT-AEZfdAAEBun9vQaE710.png#pic_center)
![poYBAGMOHT-AK_GjAAVCun9P8aA665.png#pic_center](https://file.elecfans.com//web2/M00/66/0F/poYBAGMOHT-AK_GjAAVCun9P8aA665.png#pic_center)
??4. 軟件相關設置
![pYYBAGMOHUCACD7qAAUt0J1s6HU290.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHUCACD7qAAUt0J1s6HU290.png#pic_center)
![poYBAGMOHUGAG4ozAAIe9CVDrkE166.png#pic_center](https://file.elecfans.com//web2/M00/66/0F/poYBAGMOHUGAG4ozAAIe9CVDrkE166.png#pic_center)
![pYYBAGMOHUGAS708AAKd5p0dW2I764.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHUGAS708AAKd5p0dW2I764.png#pic_center)
3.搭建NFS服務器
3.1 NFS簡介
網絡文件系統,英文Network File System(NFS),是由SUN公司研制的UNIX表示層協議(presentation layer protocol),能使使用者訪問網絡上別處的文件就像在使用自己的計算機一樣。
NFS是基于UDP/IP協議的應用,其實現主要是采用遠程過程調用RPC機制,RPC提供了一組與機器、操作系統以及低層傳送協議無關的存取遠程文件的操作。RPC采用了XDR的支持。XDR是一種與機器無關的數據描述編碼的協議,他以獨立與任意機器體系結構的格式對網上傳送的數據進行編碼和解碼,支持在異構系統之間數據的傳送。
網絡文件系統(NFS)是文件系統之上的一個網絡抽象,來允許遠程客戶端以與本地文件系統類似的方式,來通過網絡進行訪問。雖然 NFS 不是第一個此類系統,但是它已經發展并演變成 UNIX系統中最強大最廣泛使用的網絡文件系統。NFS 允許在多個用戶之間共享公共文件系統,并提供數據集中的優勢,來最小化所需的存儲空間。
![poYBAGMOHUKABod7AASc28UXOBI448.png#pic_center](https://file.elecfans.com//web2/M00/66/0F/poYBAGMOHUKABod7AASc28UXOBI448.png#pic_center)
?當我們在 NFS 服務器設置好一個共享目錄/home/public 后,其他有權訪問 NFS 服務器的 NFS 客戶端就可以將這個目錄掛載到自己文件系統的某個掛載點,這個掛載點可以自己定義,并且掛載好后我們在本地能夠看到服務端/home/public 的所有數據。如果服務器端配置的客戶端只讀,那么客戶端就只能夠只讀。如果配置讀寫,客戶端就能夠進行讀寫。
3.2 Ubuntu下安裝 NFS 服務器
ubuntu@VM-0-14-ubuntu:~$ sudo apt-get install nfs-kernel-server
3.3 配置共享文件夾
NFS 服務配置文件/etc/exports, 若在/etc 下沒有則手動創建一個, 在該文件夾下添加配置內容。
例:/NFS_Share_work *(rw,sync,no_root_squash,no_subtree_check,insecure)
NFS 服務器共享文件夾為:/NFS_Share_work, 給所有 NFS 客戶端訪問, 權限為讀寫。
3.4指定 NFS 客戶端地址配置說明
客戶端地址 | 具體地址 | 說明 |
授權單一客戶端訪問NFS | 192.168.1.20 | 一般情況, 生產環境中此配置不多 |
授權整個網段訪問NFS | 10.0.0.0/24 | 其中24等同于255.255.255.0,指定網段為生產環境中最常見的配置。配置簡單,維護方便 |
授權整 網段訪問 NFS | 10.0.0.0* | 指定網段另外寫法(不推薦使用) |
授權所有網段 | * | 一般在個人訪問用的比較多 |
3.5 NFS配置參數說明
參數 | 說明 |
rw | 可讀寫 |
ro | 只讀 |
no_root_squash | 登錄NFS主機,使用該共享目錄時相當于該目錄的擁有者,如果是root的話,那么對于這個共享的目錄來說,他就具有 root 權限(這個參數權限比較開放, 在生產環境中不建議使用 ) |
root_squash | 登錄 NFS 主機,使用該共享目錄相當用該目錄的擁有者。但如果以 root用戶使用這個共享目 錄時, 那么這個使用者(root)的權限將被壓縮成匿名使用者,即通常它的UID與GID都會變成nobody那個身份 |
no_subtree_check | 即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率 |
subtree_check | 默認屬性,若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限。 |
sync | 資料同步到磁盤 |
async | 資料暫存在內存中 |
insecure | 允許客戶端從大于1024的tcp/ip端口連接服務器 |
3.6 NFS 服務器配置文件常見案例
常見格式 | 要共享的目錄客戶端IP地址或IP段權限設置示例 |
示例 1 | /work 10.0.0.0/24(ro,sync)說明:客戶端只讀,數據同步到磁盤,授權整個網段(注:24 和’(’之間不能有空格) |
示例2 |
/work *(insecure,rw,no_root_squash,sync)說明: 允許客戶端的非授權訪問,允許所有客戶端讀寫, 并且數據同步到磁盤,正常情況下 mount 客戶端請求服務器源端口必須小于 1024 (然而在使用 NAT 網絡地址轉換時端口一般總是大于 1024 的) , 默認情況下是開啟這個選項的, 如果要禁止這個選項, 則使用 insecure 標識, 如果不禁止該選項, 客戶端在掛載服務器時會出現錯誤。 |
示例3 | /work *(,rw,no_root_squash,sync) 說明: 允許所有客戶端讀寫,并且數據同步寫到服務器揣的磁盤里,共享文件的訪問權限和登錄者身份一致 |
??注意:若掛載時報錯mount.nfs: access denied by server while mounting,則需要在服務端NFS配置文件中加上insecure。
4.服務器下搭建 NFS 實例
4.1 編寫NFS配置文件
??NFS配置文件為/etc/export文件,沒有則手動創建一個。
ubuntu@VM-12-3-ubuntu:~$ vim /etc/export
/nfs_shared *(rw,sync,no_root_squash,no_subtree_check,insecure)
- 開放所有監聽端口
![pYYBAGMOHUOAJudzAAKJt6f-KJw117.png#pic_center](https://file.elecfans.com//web2/M00/66/A9/pYYBAGMOHUOAJudzAAKJt6f-KJw117.png#pic_center)
- 設置兩個NFS共享目錄。
![poYBAGMOHUOABcJnAADEiP_SaJI370.png#pic_center](https://file.elecfans.com//web2/M00/66/0F/poYBAGMOHUOABcJnAADEiP_SaJI370.png#pic_center)
4.2 編寫腳本文件啟動NFS服務器,關閉防火墻
ubuntu@VM-12-3-ubuntu:~$ touch nfs_start.sh
ubuntu@VM-12-3-ubuntu:~$ vim /nfs_start.sh
#啟動 NFS 服務器
/etc/init.d/nfs-kernel-server start
#關閉防火墻
ufw disable
5.NFS服務器相關命令使用
5.1 exprotfs命令
??在NFS服務器端,當修改了/etc/exportfs 文件后,使用 exportfs 執行即可,不需要重新啟動NFS 服務器。
- exprotfs命令說明
exportfs [-aruv]
選項與參數:
-a : 全部掛載(或卸除) /etc/exports文件內的設定。
-r : 重新掛載 /etc/exports 里 面的設定,同步內容配置內容。
-u : 卸除某一目錄。
-v : 將分享的目錄顯示到屏幕上。
??例 1:重新掛載一次/etc/exports文件設定的內容
[xsw@xsw ~]$ sudo exportfs -arv
exporting *:/home/xsw/share_work
??例 2:將已經分享的 NFS 資源全部卸除
[wbyq@wbyq ~]$ sudo exportfs -auv
# 這時如果你再使用 showmount -e localhost 就會看不到任何資源了!
5.2 showmount 命令
- Showmount 命令參數
[root@www ~]# showmount [-ae] [hostname| IP]
選項與參數:
-a : 顯示目前主機與客戶端的NFS聯機分享的狀態;
-e : 顯示某部主機的/etc/exports 所分享的目錄數據。
??在 NFS 服務器設置好后, 可以使用 showmount 命令在服務端測試共享目錄是否啟動成功。
[xsw@xsw ~]$ sudo showmount -e localhost
??在客戶端查詢某部主機NFS分享的目錄
[xsw@xsw ~]$ showmount -e 42.192.3.192
Export list for 42.192.3.192:
/nfs_share_work *
5.3 客戶端掛載和卸載NFS服務器
??客戶端訪問服務器前,需要知道服務器IP,然后可以通過showmount命令查看服務器NFS共享目錄,如果是局域網訪問,那么需要保證客戶端與服務器在同一網段下,如果是公網訪問,需要保證客戶端這個能過正常連接外網網絡。
- 客戶端掛載NFS服務器
[xsw@xsw ~]$ showmount -e 42.192.3.192 #查看服務器共享NFS目錄
Export list for 42.192.3.192:
/nfs_share_work *
[xsw@xsw ~]$ sudo mount -t nfs 42.192.3.192:/nfs_share_work ./mnt/ #將共享目錄掛載到本地mnt目錄下
??如果掛載服務器時,提示 mount 命令卡住了,或者報錯提示無法加鎖等提示時,需要在掛載命令上加一個-onolock 參數。
[xsw@xsw ~] $ sudo mount -t nfs -o nolock 42. 192. 3. 192: /nfs_share_work . /mnt/
- 卸載掛載目錄
[xsw@xsw ~] $ sudo umount /home/xsw/mnt/
-
文件系統
+關注
關注
0文章
287瀏覽量
19990 -
NFS
+關注
關注
1文章
53瀏覽量
26176 -
云服務器
+關注
關注
0文章
738瀏覽量
13432
發布評論請先 登錄
相關推薦
飛凌嵌入式ElfBoard ELF 1板卡-常見網絡服務搭建之NFS服務搭建
【AWorks試用體驗】+NFS服務器搭建
ubuntu下搭建NFS服務器
【米爾王牌產品MYD-Y6ULX-V2開發板試用體驗】掛載NFS網絡文件系統
Ubuntu搭建NFS,在Smart210掛載
嵌入式linux實現mount掛載nfs服務器拷貝文件
![嵌入式linux實現mount掛載<b class='flag-5'>nfs</b><b class='flag-5'>服務器</b>拷貝<b class='flag-5'>文件</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
嵌入式Linux | 掛載網絡文件系統
![嵌入式Linux | 掛載<b class='flag-5'>網絡</b><b class='flag-5'>文件系統</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論