NFS | CentOS 6配置NFS服务

一、配置NFS服务端

# yum install nfs-utils portmap (适用于CentOS 5)
# yum install nfs-utils rpcbind (适用于CentOS 6)

假设服务端要挂载的目录是/data/file,设置如下

# mkdir /data/file
# vim /etc/exports
/data/file 192.168.1.0/24(rw,sync)
也可以用以下的写法:
/data/file 192.168.1.0/24(ro,no_root_squash)
/data/file *(rw,sync,no_root_squash)

参数说明:
rw:read-write,可读写;
ro:read-only,只读;
sync:同步写入(文件同时写入硬盘和内存),适用在通信比较频繁且实时性比较高的场合;
async:异步写入(文件先写入内存,稍候再写入硬盘),性能较好(速度快),适合超大或者超多文件的写入,但有数据丢失的风险,比如突然断电等情况;
注意:除非特別有需要,否则不建议使用 async。如果沒有指定 sync 或 async,NFS 服务器在启动的时候会印出警告信息。
no_root_squash:NFS客户端连接服务端时如果使用的是 root 的话,那么对服务端分享的目录也使用 root 权限。不安全!
root_squash:把客户端 root 身份的 UID/GID (0/0) 对应到服务端的 nobody 用户去,即服务端使用 nobody 用户来操作共享目录;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。

设置开机启动

# /etc/init.d/rpcbind/start && chkconfig rpcbind on
# /etc/init.d/nfs start && chkconfig nfs on

2、配置NFS客户端

客户端也需要安装以下两个软件包,否则会提示mount: wrong fs type, bad option, bad superblock on xxx的错误

# yum install nfs-utils portmap (适用于CentOS 5)
# yum install nfs-utils rpcbind (适用于CentOS 6)

客户端不需要启动rpcbind和nfs服务

# shoumount -e 192.168.1.2 # 查看服务端共享的目录
Export list for 192.168.1.2:
/data/file 192.168.1.0/24

挂载到本地

# mount -t nfs 192.168.1.2:/data/file /mnt/ -o nolock
# mount -t nfs 192.168.1.2:/data/file /mnt/ -o nolock -o proto=tcp #也可以写成这样

备注
NFS默认是用UDP协议,也可以加上-o proto=tcp换成TCP协议

设置开机自动加载

# vim /etc/fstab
192.168.1.2:/data/file /mnt/ nfs defaults 1 2
# mount -a