Unfs3 (NFS 的 User-space 版)

 

介紹:

 

NFS 是 Linux 與 Linux 之間最普遍的 file server,

不過, 在 OpenVZ 的 VE 內不能直接使用它.

因為 nfs 是 kernel mode 的東西來 @@",

所以, 我們要找 user-space 的 nfs 來替代,

unfs3 就是最佳的選擇來 ~~~

 

題外話:

由於 NFS 建立之初並沒有安全方面的考慮,

所以 Client 說自己是誰, Server 就認為他是誰 !!

因此, 強烈建議只應用它在安全的內網 ~

如 OpenVZ 上 VE 與 VE 之間的檔案分享

因為這協定較少 Overhead, 尤如 ftp

 

安裝:

 

安裝工具包:

apt-get install nfs-common

工具包括:

/sbin/showmount         // 顯示client,分享等資料
/sbin/mount.nfs          // 掛載工具(能力)
/sbin/umount.nfs

安裝Daemon:

apt-get install unfs3

主要包含 /usr/sbin/unfsd, 它的 defaut port 是 UDP/TCP 2049

 

相關檔案:

 

/etc/default/unfs3, 它是 unfs 的基本設定檔來,
它會影響 unfs 的基本屬性, 如不用 udp, port 等
不過, 它不包含有關分享的目錄設定

/etc/init.d/unfs3, 它會 include /etc/default/unfs3 去啟動 unfs3

/etc/exports, 它是用來設定分享什麼目錄出來

 

有關指令:

/usr/sbin/unfsd
主服務程式來

/sbin/showmount
查看有什麼分享出來, 及什麼人連入了

 

分享目錄設定(/etc/exports):

 

正如前面介紹, unfs3 的分享設定在 /etc/exports 內

在它裡面係一行一目錄的設定, 與 NFS 相用,

不過 unfs3 比真正的 nfs 少了很多設定

它支援的設定有

  •  ro, rw,
  •  root_squash, all_squash, no_root_squash, no_all_squash.
  •  password=<password>
  •  anonuid/anongid

以下是我的設定:

"/home/ftp"     192.168.0.0/255.255.0.0(ro,anonuid=2001,anongid=2001)
"/home/ftp/tmp" 192.168.0.0/255.255.0.0(rw,anonuid=2001,anongid=2001)

當修改了 /etc/exports 後, 要用以下指使它生效

kill -SIGHUP <pid of unfsd>
           又或者用
/etc/init.d/unfs3 restart

不過, 如果不想 /etc/exports 內有什麼差錯,

那建議用 -T 去檢查  /etc/exports 再 reload 它

unfsd -T

以下是我的設定

 

查看:

 

showmount

顯示什麼 client 連上 Server

Hosts on myserver:
192.168.123.254

 

showmount -e [Server IP]

顯示有什麼分享出來

Export list for myserver:
/home/ftp 192.168.0.0/255.255.0.0

 

showmount -a [host]

以 client host:dir 形式顯示當前情況

All mount points on myserver:
192.168.123.254:/home/ftp
 

掛載:
 
mount.nfs
mount nfs 的動作只有 root 才有能力使用
uage: mount.nfs remotetarget dir [options]
-r              Mount file system readonly
-w              Mount file system read-write
-f              Fake mount, do not actually mount
例子:
mount.nfs  192.168.1.2:/home/ftp mnt/ftp -r
                               等同:
mount -t nfs 192.168.1.2:/home/ftp mnt/ftp
 
umount.nfs
例子:
umount.nfs 192.168.1.2:/home/ftp
         等同
umount mnt/ftp