NFS-mount 如何進行跨伺服器檔案掛載

柘一發表於2018-01-19

NFS-mount 跨伺服器檔案掛載

一、什麼是NFS?

NFS:network file system,網路檔案系統,允許伺服器之間通過TCP/IP協議進行資源共享。NFS客戶端可以透明的讀寫NFS伺服器上的檔案,就像操作本地檔案一樣。

二、為什麼要用NFS?NFS什麼好處?

  1. 節省空間:客戶端磁碟空間較少,可以掛載到另外的伺服器上,以節省本地儲存空間。
  2. 網路受限:有些公司內部伺服器無法訪問外網,但是一些操作需要用到外網許可權,就可以將公司伺服器掛載到可以訪問外網的伺服器上,在另外的伺服器上進行操作。

三、怎麼掛載呢?

場景:伺服器A的/mnt目錄 掛載到 伺服器B上的/test目錄上

配置伺服器A

  1. 需要檢查是否具有nfs服務
$ ls -al /etc/init.d/nfs-kernel-server // 檢視是否存在nfs服務
複製程式碼

如果沒有 需要手動安裝 nfs-kernel-server 服務

$ sudo apt-get install nfs-kernel-server
複製程式碼
  1. 修改 /etc/exports檔案(需要root許可權),增加要掛載的目錄 /mnt *(rw,sync)

其中/mnt是要被掛在的目錄,*表示任何伺服器,也可以寫客戶端的IP地址,(rw,sync)表示掛載檔案系統時的策略,rw表示讀寫,sync表示同步進行IO操作,還有其他的一些選項async(非同步進行IO操作)。

3、重啟nfs服務

$ sudo /etc/init.d/nfs-kernel-server restart 
複製程式碼

配置伺服器B

以root許可權執行下面命令進行掛載

$ sudo mount -t nfs 10.24.21.143:/mnt /test
複製程式碼

-t nfs 表示掛載型別是nfs,10.24.21.143:/mnt表示伺服器A的IP及需要被掛載的目錄,/test表示掛載到伺服器B的目錄。

執行下列命令檢視是否已經掛載成功

$ mount | grep nfs // 如果成功,能夠看到掛載的資訊
複製程式碼

四、配置過程中遇到的坑

其中在伺服器B進行掛載時遇到報錯如下:

mount: wrong fs type, bad option, bad superblock on 10.24.21.143:/mnt,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
複製程式碼

錯誤資訊中提到

you might need a /sbin/mount.<type> helper program
複製程式碼

指在mount過程中用到了 /sbin/mount.nfs程式,而/sbin/mount.nfsnfs-common提供的,需要手動執行下面的命令安裝一下就好了。

$ sudo apt-get install nfs-common
複製程式碼

相關文章