介紹:
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 |
-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 192.168.1.2:/home/ftp
等同
umount mnt/ftp