NFS简单配置记录

12-26 6,702 views

CentOS 6.4 64bit系统上设置NFS的过程,简单记录一下。

1,配置NFS服务端

[root@os ~]# yum install nfs-utils portmap  (适用centos 5)
[root@os ~]# yum install nfs-utils rpcbind  (适用centos 6)

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

[root@os ~]# vi /etc/exports
/mnt/koji       192.168.188.0/24(rw,sync)
 
以下写法也是正确的
/mnt/koji       192.168.1.0/24(ro,no_root_squash)
/mnt/koji       *(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值。

设置开机自启动

[root@os ~]# /etc/init.d/rpcbind start && chkconfig --level 2345 rpcbind on
[root@os ~]# /etc/init.d/nfs start  && chkconfig --level 2345 nfs on

2,配置NFS客户端

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

[root@os ~]# yum install nfs-utils portmap  (适用centos 5)
[root@os ~]# yum install nfs-utils rpcbind  (适用centos 6)

客户端不需要启动rpcbind和nfs服务即可挂载。

[root@os ~]# showmount -e 192.168.188.143  #查看服务端共享的目录
Export list for 192.168.188.143:
/mnt/koji 192.168.188.0/24

注意:如果这里提示clnt_create: RPC: Program not registered,只要在服务端运行一下rpc.mountd即可。

挂载到本地

[root@os ~]# mount -t nfs 192.168.188.143:/mnt/koji /mnt/koji -o nolock
也可以写成   mount -t nfs 192.168.188.143:/mnt/koji /mnt/koji -o nolock -o proto=tcp

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

设置开机自动挂载

[root@os ~]# vi /etc/fstab
192.168.188.143:/mnt/koji    /mnt/koji  nfs  defaults   1 2
[root@os ~]# mount -a 测试挂载

 

如果开启了iptables防火墙,NFS server和client端的配置:

编辑vim /etc/sysconfig/nfs 

将以下两行中注释符“#”删除,并将端口号修改成你的数值(须小于1024)
 RQUOTAD_PORT=875
 MOUNTD_PORT=876

重启NFS服务:service nfs restart或 exportfs -r

检查NFS服务网络连接端口:rpcinfo –p

[root@localhost ~]# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 45375 status
100024 1 tcp 38347 status
100005 1 udp 876 mountd
100005 1 tcp 876 mountd
100005 2 udp 876 mountd
100005 2 tcp 876 mountd
100005 3 udp 876 mountd
100005 3 tcp 876 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 51572 nlockmgr
100021 3 udp 51572 nlockmgr
100021 4 udp 51572 nlockmgr

允许网络192.168.254.0/24访问nfs服务——添加如下规则:
iptables -A INPUT -p tcp -s 192.168.254.0/24 –dport 111 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.254.0/24 –dport 875 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.254.0/24 –dport 2049 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.254.0/24 –dport 876 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.254.0/24 –dport 2049 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.254.0/24 –dport 875 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.254.0/24 –dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.254.0/24 –dport 876 -j ACCEPT

然后再在client端测试可以正常访问:

[root@localhost ~]# showmount -e 192.168.254.153
Export list for 192.168.254.153:
/home/www/down.test.com 192.168.254.0/24

在客户机上挂载NFS共享目录: 

mount –t nfs nfs-server-ip:/home/nfs /home/nfs    or     mount.nfs nfs-server-ip:/home/nfs /home/nfs

2014/12/29补充
PS:
NFS client  测试出现:
[root@localhost ~]# showmount -e 192.168.0.153
clnt_create: RPC: Port mapper failure – Timed out   防火墙iptables问题导致,按照上面添加相关iptables条目,挂载测试正常。
 
NFS server测试方法:
[root@localhost www]# showmount -e
Export list for localhost.localdomain:
/home/www/down.test.com 192.168.0.0/24
 
[root@localhost www]# exportfs -v
/home/www/down.test.com
192.168.0.0/24(rw,wdelay,root_squash,no_subtree_check)
 
[root@localhost www]# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper

LVS/DR模式实战

线上服务器清理的差不多了,准备做一下服务器分层架构,就是将LNMP环境分离开,用到了LB集群,先来点理论吧。 负载均衡LB集群主要关注的是并发处理能力,常用...

阅读全文