nfs服务器是一个文件级的文件系统。配置nfs服务器需要起两个服务,一个是nfs,一个是portmap,需要安装2个组件portmap.x86_64,nfs-utils.x86_64、nfs-utils-lib.x86_64
另外需要设置共享目录及目录权限,设置方法为:
1. vim /etc/exports
- /data/ftp 192.168.8.7(rw,no_root_squash)
- /data/test 192.168.8.7(ro,root_squash,anonuid=100,anongid=100)
主要参数有:
rw:可读写权限
ro:只读权限
no_root_squash:如果使用nfs目录的用户是root用户的话,他就拥有了ROOT的权限
root_squash:如果使用nfs目录的用户是root用户的话,他在nfs服务器上的uid和gid都变为nobody
all_squash:所有使用nfs的用户uid和gid都是nobody
anonuid:用于设置使用nfs的用户uid
anongid:用于设置使用nfs的用户gid
sync:文件同步写到存储上,同步写入
async:文件会先暂时存放在内存中,不会直接写到存储上,异步写入
2. 启动nfs和portmap服务:
/etc/init.d/nfs start
/etc/init.d/portmap start
这样nfs服务器就可以使用了,用户可以在192.168.8.7客户端挂载/data/ftp目录。
3. exportfs重新加载/etc/exports文件
如果nfs启动以后又修改了exports文件,也可以不用重启nfs服务,而用exportfs重新加载该文件
exportfs [-aruv]
-a: 全部mount或unmont /etc/exports文件中的目录
-r: 重新mount /etc/exports文件中共享出来的目录
-u: unmount目录
-v: 在export的时候将详细信息输出到屏幕上
4. 配置iptables
但是在配置nfs服务器的时候发现,启用iptables以后客户端无法连接nfs服务器,关闭iptables以后客户端连接正常,google以后发现nfs还依赖其他的一些服务,包括MOUNTD_PORT、 STATD_PORT、 LOCKD_TCPPORT、 LOCKD_UDPPORT,需要设置这些服务的运行端口,并在iptables中开启这些端口。
设置方法如下:
vim /etc/sysconfig/nfs
- RQUOTAD_PORT=875
- LOCKD_TCPPORT=32803
- LOCKD_UDPPORT=32769
- MOUNTD_PORT=892
- STATD_PORT=662
- STATD_OUTGOING_PORT=2020
调整iptables设置为:
vim /etc/sysconfig/iptables
- -A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 111 -j ACCEPT
- -A RH-Firewall-1-INPUT -p udp -m state –state NEW -m udp –dport 111 -j ACCEPT
- -A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 875 -j ACCEPT
- -A RH-Firewall-1-INPUT -p udp -m state –state NEW -m udp –dport 875 -j ACCEPT
- -A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 892 -j ACCEPT
- -A RH-Firewall-1-INPUT -p udp -m state –state NEW -m udp –dport 892 -j ACCEPT
- -A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 32803 -j ACCEPT
- -A RH-Firewall-1-INPUT -p udp -m state –state NEW -m udp –dport 32769 -j ACCEPT
- -A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 2049 -j ACCEPT
- -A RH-Firewall-1-INPUT -p udp -m state –state NEW -m udp –dport 2049 -j ACCEPT
重启相关服务:
/etc/init.d/portmap restart
/etc/init.d/nfs restart
/etc/init.d/iptables restart
5. showmount 命令:
showmount –a: 这个命令一般用在nfs server上,可以查看所有挂载了nfs server目录的客户端
showmount –e nfs_server: 这个命令用于查看nfs server 上所有share出来的目录
6. mount参数
hard模式和soft模式
hard模式:nfs client会在后台不断的尝试链接服务器,直到mount上为止,在这个过程中不会输出大量的报错信息,但使用到这个nfs目录的进程会被挂起
soft模式:mount命令的默认链接方式,nfs client会在前台链接nfs server,超时后报错退出。
intr:允许通知中断一个nfs调用