NFS部署教程

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

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. 配置說明
  • 訪問權限選項vim

    設置輸出目錄只讀:robash

    設置輸出目錄讀寫:rw服務器

  • 用戶映射選項網絡

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

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

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

    no_root_squash:與rootsquash取反;ui

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

    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
相關文章
相關標籤/搜索