Monday, July 10, 2006

NFS服务器与客户端设置

在公司的电脑硬盘不够用,所以就使用了一台Linux服务器来运行NFS服务扩充硬盘。
首先在服务器(Server)上需要安装 portmap 和 nfs 软件包,先来看看Vbird上关于NFS的讲解

NFS為 Network FileSystem 的簡稱,最早之前是由 Sun 這家公司所發展出來的,他的目的就是想讓不同的機器、不同的作業系統可以彼此分享個別的檔案啦!目前在 Unix Like 當中用來做為 file server 是相當不錯的一個方案喔!基本上, Unix Like 主機連接到另一部 Unix Like 主機來分享彼此的檔案時,使用 NFS 要比 SAMBA 快速且方便的多了!此外, NFS 的設定真的很簡單,幾乎只要記得啟動 Remote Procedure Call (RPC)這個咚咚 ( 就是 portmap 這個套件啦! ) 就一定可以架設的起來!真是不錯啊!不過,如果要達成 Windows 與 Linux 之間的溝通,那麼還是以 SAMBA 比較容易啊!無論如何, NFS 還是可以做為小公司或學校單位內部 Unix Like 機器共享 file 的一個 Server 喔!


然后就是在 /etc/exports 对NFS服务作设定,我的是这样的:
/home/web/fred 192.168.0.119(rw,all_squash,anonuid=512,anongid=512)

接下来启动服务
# /etc/rc.d/init.d/portmap start
# /etc/rc.d/init.d/nfs start


检查是否正确启动
# tail /var/log/messages
Nov 16 15:04:45 test portmap: portmap startup succeeded
Nov 16 15:04:53 test nfs: Starting NFS services: succeeded
Nov 16 15:04:54 test nfs: rpc.rquotad startup succeeded
Nov 16 15:04:54 test nfs: rpc.mountd startup succeeded
Nov 16 15:04:54 test nfs: rpc.nfsd startup succeeded


从客户端查看一个NFS服务器有哪些挂载的NFS目录
# showmount -e test.linux.org
Export list for localhost:
/tmp *
/home/linux *.linux.org
/home/public (everyone)
/home/test 192.168.0.100


在客户端挂载NFS目录
# mkdir -p /home/nfs/public
# mount -t nfs test.linux.org:/home/public /home/nfs/public
掛載的格式:
# mount -t nfs hostname(orIP):/directory /mount/point
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda1 1904920 1235380 572776 69% /
/dev/hdb1 976344 115212 810736 13% /backup
lab:/home/public 1904920 1235376 572776 69% /home/nfs/public


在客户端卸載NFS目录
# umount /home/nfs/public

如果想要在启动时就挂载NFS目录,则需要在 /etc/fstab 中加入
lab:/home/web/fred /home/fred/nfs nfs rw 00

最后如果遇到问题,注意Vbird讲的注意重点:

  1. Network FileSystem (NFS) 可以讓主機之間透過網路分享彼此的檔案與目錄;


  2. NFS 主要是透過 RPC 來進行 file share 的目的,所以 Server 與 Client 的 RPC 一定要啟動才行!


  3. NFS 主機可以控制連線的 Client 端的登入與權限;


  4. NFS 的設定檔就是 /etc/exports 這個檔案;


  5. NFS 的重要登錄檔可以參考 /var/lib/nfs/xtab 這個檔案,還包含相當多有用的資訊在其中!


  6. NFS 主機要關機之前,請務必先關閉 portmap 與 nfs server ,否則關機無法順利成功;


  7. NFS 主機在更動 /etc/exports 這個檔案之後,可以透過 exportfs 這個指令來重新掛載分享的目錄!


  8. 可以使用 rpcinfo 來觀察 RPC program 之間的關係!!!


  9. NFS 主機在設定之初,就必須要考慮到 client 端登入的權限問題,很多時候無法寫入或者無法進行分享,主要是 Linux 實體檔案的權限設定問題所致!


  10. NFS 的防火牆設定可以透過控制 RPC 的主要 port ,亦即是 111 這個 port 來管理!此外,亦可透過 TCP_Wrappers 來管理!


  11. NFS 用戶端只要成功 mount NFS 主機分享的目錄之後,使用上面就好像自己的 partition 一般;


  12. NFS 用戶端可以透過使用 showmount, mount 與 umount 來使用 NFS 主機提供的分享的目錄!

No comments:

Post a Comment