架设 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 用法。


相关文章