NFS部署教程


NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件一樣。簡單的來說:它就是是可以透過網絡,讓不同的主機、不同的操作系統可以共享存儲。NFS在文件傳送或信息傳送過程中依賴於RPC協議。

nfs服務端配置

服務端機器IP為:10.122.149.224 

1. 安裝nfs服務端

apt-get install nfs-common nfs-kernel-server

2. 配置共享目錄

a. 首先創建目錄/mnt/nfs,然后修改配置文件/etc/exports,如下:
vim /etc/exports
b. 增加如下內容:
/mnt/nfs *(rw,all_squash,anonuid=6561,anongid=1002,no_subtree_check)
c. 配置說明
  • 訪問權限選項

    設置輸出目錄只讀:ro

    設置輸出目錄讀寫:rw

  • 用戶映射選項

    all_squash:將遠程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody);

    no_all_squash:與all_squash取反(默認設置);

    root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(默認設置);

    no_root_squash:與rootsquash取反;

    anonuid=xxx:將遠程訪問的所有用戶都映射為匿名用戶,並指定該用戶為本地用戶(UID=xxx);

    anongid=xxx:將遠程訪問的所有用戶組都映射為匿名用戶組賬戶,並指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx);

  • 其它選項

    secure:限制客戶端只能從小於1024的tcp/ip端口連接nfs服務器(默認設置);

    insecure:允許客戶端從大於1024的tcp/ip端口連接服務器;

    sync:將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性;

    async:將數據先保存在內存緩沖區中,必要時才寫入磁盤;

    wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(默認設置);

    no_wdelay:若有寫操作則立即執行,應與sync配合使用;

    subtree:若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限(默認設置);

    no_subtree:即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;

3. 啟動nfs服務端

sudo /etc/init.d/nfs-kernel-server restart

nfs客戶端配置

因為上面服務端配置的時候指定了任意IP都可以進行nfs目錄掛載,所以此處無需考慮ip的問題了。 

1. 安裝nfs客戶端

apt-get install nfs-common

2. 查詢掛載目錄

執行如下命令可查詢服務器里哪些目錄可掛載。
root@hzabj-mind204:~# showmount -e 10.122.149.224 Export list for 10.122.149.224: /mnt/nfs *

3. 掛載nfs目錄

方法一:本地創建一個目錄/data/nfs,然后將目錄掛載至nfs服務器的指定掛載點即可。掛載命令為:
mount -t nfs -onoexec,nosuid,nodev,noatime 10.122.149.224:/mnt/fns /data/nfs
方法二:本地創建一個目錄/data/nfs,在/etc/fstab文件中添加掛載命令為:
10.122.149.224:/mnt/nfs /data/nfs  nfs  nfsvers=3,proto=tcp,rsize=8192,wsize=8192,hard,intr  0 3
a. 掛載失敗原因分析
  1. 查看cat /var/log/messages | grep mount,如果出現illegal port 1689,則表示使用了大於1024的端口,修改服務端的/etc/exports,增加insecure選項后重啟nfs
  2. 查看客戶端掛載的目錄是否具備讀寫權限
b. 通過df查看掛載狀態,多了一行磁盤信息,如下表示本地/data/nfs掛載到10.122.149.224:/mnt/nfs
Filesystem              1K-blocks    Used Available Use% Mounted on 10.122.149.224:/mnt/nfs  61926400 2108416  56673280   4% /data/nfs

4. 取消nfs掛載

a. 通過umount+本地nfs目錄即可
umount /data/nfs
b. 報錯: umount.nfs: /data/nfs: device is busy
root@hzabj-mind204:/data/nfs# fuser -m -v /data/nfs USER PID ACCESS COMMAND /data/nfs:           root     kernel mount /data/nfs root 43022 ..c.. bash mm 45004 ..c.. bash
如上所示,有兩個進程占用了,將其kill掉,再重新取消掛載。
kill -9 43022
kill -9 45004

5. 測試

在/data/nfs中新建1.txt,並隨便輸入內容,然后查看10.122.149.224:/mnt/fns 也同步了一份1.txt


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM