架設 NFS 最方便之處莫過對一般人提供多台主機登入後,仍共用同樣的家目錄,所以,這次 NFS service 著重在家目錄的設定。

首先,先介紹一下 OSX Server 的環境,共有兩顆硬碟分別都是 750GB 的容量,目前切割為系統槽、490GB、750GB 共三份,故規劃把家目錄擺在 750GB 中,並備份到 490GB位置上(備份到另一顆硬碟)。另外一提的,要留意 OSX 預設檔案系統是 case insensitive (不分大小寫),若要給 Linux client 等的還是先格式化為 case sensitive 吧

工作方向:

  1. 處理 /User 移位
  2. 啟動 NFS server 設定
  3. 讓其他主機掛載進來
  4. 處理 uid/gid 不對應問題

將 /User 目錄移動到 750GB 中:

原先家目錄是在第一顆硬碟中,為了以後方便備份,所以嘗試用 rsync 搬移它到另一顆硬碟

$ sudo ln -s /Volumes/750GB /data
$ sudo mkdir /data/SYSTEM
$ sudo rsync -a /Users/ /data/SYSTEM/Users
$ sudo mv /Users /Users-Bak
$ sudo ln -s /data/SYSTEM/Users /Users
$ sudo chown root:admin /Volumes/750GB/SYSTEM/

設定 NFS Server:

$ sudo vim /etc/exports
/Volumes/750GB/SYSTEM -maproot=root:wheel -network 192.168.168.168 -mask 255.255.255.0
/Volumes/490GB -maproot=root:wheel 192.168.168.168

代表存其他 NFS client 存取 /data/SYSTEM/Users 僅限 192.168.168.* 機器位置,而 /Volumes/490GB 僅限 192.168.168.168 這台機器。存檔後,nfsd 也會自動啟動了,可以用以下指令強制啟動、更新等:

$ sudo nfsd disable
$ sudo nfsd enable
$ sudo nfsd udpate
(更新 /etc/exports 後,可以用 $ sudo nfsd update 來更新)

$ showmount -e
Exports list on localhost:
/Volumes/490GB 192.168.168.168
/Volumes/750GB/SYSTEM/Users 192.168.168.168

如果看不到清單,有可能是 /etc/exports 有寫錯,或是 export 的目錄權限有誤,例如 $ sudo chown root:admin /Volumes/750GB/SYSTEM,不然無法正常顯示

在 Linux client 中啟用:

$ sudo apt-get install nfs-common
$ showmount -e NFS_Server_IP
Export list for NFS_Server_IP:
/Volumes/750GB/SYSTEM/Users NFS_Server_IP
$ sudo mkdir -p /mnt/NFSHome

手動掛載:

$ sudo mount -t nfs NFS_Server_IP:/Volumes/750GB/SYSTEM/Users /mnt/NFSHome

自動掛載:

$ sudo vim /etc/fstab
NFS_Server_IP:/Volumes/750GB/SYSTEM/Users /mnt/NFSHome nfs defaults 0 0

處理 uids/gids 不對應問題:

處理這類問題的最佳解是用 NIS 服務,有空在來嘗試 map_static 用法。


, , ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()