NFS-mount 跨伺服器檔案掛載
一、什麼是NFS?
NFS
:network file system
,網路檔案系統,允許伺服器之間通過TCP/IP協議進行資源共享。NFS客戶端可以透明的讀寫NFS伺服器上的檔案,就像操作本地檔案一樣。
二、為什麼要用NFS?NFS什麼好處?
- 節省空間:客戶端磁碟空間較少,可以掛載到另外的伺服器上,以節省本地儲存空間。
- 網路受限:有些公司內部伺服器無法訪問外網,但是一些操作需要用到外網許可權,就可以將公司伺服器掛載到可以訪問外網的伺服器上,在另外的伺服器上進行操作。
三、怎麼掛載呢?
場景:伺服器A的/mnt
目錄 掛載到 伺服器B上的/test
目錄上
配置伺服器A
- 需要檢查是否具有nfs服務
$ ls -al /etc/init.d/nfs-kernel-server // 檢視是否存在nfs服務
複製程式碼
如果沒有 需要手動安裝 nfs-kernel-server 服務
$ sudo apt-get install nfs-kernel-server
複製程式碼
- 修改
/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.nfs
是nfs-common
提供的,需要手動執行下面的命令安裝一下就好了。
$ sudo apt-get install nfs-common
複製程式碼