1. # showmount -e 172.16.20.1  
  2. Export list for 172.16.20.1:  
  3. /bak 172.16.20.11,172.16.20.12 

使用 mount 挂载服务器端的目录 /bak 到客户端某个目录下:

  1. # mkdir /home/vpsee/bak  
  2. # mount -t nfs4 172.16.20.1:/ /home/vpsee/bak/  
  3.  
  4. # df -H  
  5. Filesystem             Size   Used  Avail Use% Mounted on  
  6. ...  
  7. 172.16.39.1:/        232G    23G   198G  11% /home/vpsee/bak 

在 /etc/fstab 中挂载 nfs 文件系统:

  1. # vi /etc/fstab  
  2. 172.16.20.1:/    /bak  nfs4   soft,intr,rsize=8192,wsize=8192,nosuid  
  3.  
  4. # chkconfig netfs on 

在成功挂载服务器端的 /bak 后就可以在客户端里操作了,这时候写文件或者拷贝文件的时候会遇到一个权限问题报错 : Permission denied,这是因为上面我们在服务器端建立了 /bak 但是 /bak 的 owner 是 root:root,而客户端的正在访问 NFS 的用户是 vpsee,NFS 要求服务器端和客户端的 UID 和 GID 必须一致,所以要在 NFS 服务器端修改 /bak 的权限和所属:

  1. # chown -R vpsee:vpsee /bak 

注意使用CentOS NFS 的时候,客户端的用户 UID 和 GID 必须和服务器端的 UID 和 GID 完全符合,否则会造成权限错误。在小规模用户的情况下,我们可以偷懒通过在客户和服务器两端同时建立相同的用户和组来解决这个问题,但是在大规模用户情况下最好的办法是利用 NIS 或者 OpenLDAP 来统一管理用户,做到一次登录,到处访问。

Troubleshooting

1、在上面的操作过程中,如果你不幸遇到下面这个问题的话,可以尝试更新 Linux kernel 或通过打开 IPv6 来解决这个问题,这是1个 bug:

  1. # mount -t nfs4 172.16.20.1:/ /home/vpsee/bak/  
  2. mount.nfs4: Cannot allocate memory 

2、如果遇到如下问题,可能是因为你的 mount -t nfs 使用的是 nfsv3 协议,需要明确指出使用 nfsv4 协议挂载 mount -t nfs4:

  1. # mount -t nfs 172.16.20.1:/ /home/vpsee/bak/  
  2. mount: mount to NFS server '172.16.20.1' failed: RPC Error: Program not registered.  
  3.  
  4. # mount -t nfs4 172.16.20.1:/ /home/vpsee/bak/ 


相关内容

    暂无相关文章