超级好的配置centos下服务的链接
http://www.server-world.info/en/note?os=CentOS_6&p=nfs
http://linux.vbird.org/linux_server/0330nfs.php
以下是NFS最显而易见的好处:
-
本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一 台机器上而且可以通过网络访问到。
- 用户不必在每个网络上机器里头都有一个home目录。Home目录 可以被放在NFS服务器上并且在网络上处处可用。
某些应用程序 (例如 mutt) 需要文件上锁支持才能正常运行。 在使用 NFS 时, 可以用 rpc.lockd 来支持文件上锁功能
典型情况下, NFS 会使用一个 “块” 为单位进行操作, 其尺寸是 8 K (虽然它可能会将操作分成更小尺寸的分片)。 由于最大的以太网包尺寸大约是 1500 字节, 因此 NFS “块” 会分成多个以太网包, 虽然在更高层的代码看来它仍然是一个完整的单元, 并在接收方重新组装, 作为一个整体来 确认。 高性能的工作站, 可以将构成 NFS 单元的包迅速发出, 其节奏会快到标准允许的最大限度。
Server端
1.rpm –qa|grep nfs
2.yum –y install nfs-utils rpcbind
会自动增加用户nfsnobody
[[email protected] /]# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
3.如果Yum安装报错 [Errno 256] No more mirrors to try,则执行
- yum clean all
- yum makecache
4. 创建共享目录 mkdir /nfs_share
5. chown nfsnobody:nfsnobody /nfs_share
6.vi /etc/exports,增加
/nfs_share 192.168.1.*(rw,all_squash,anonuid=65534,anongid=65534)
no_root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
root_squash 客户机用root访问该共享文件夹时,不映射root用户
all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
7.启动服务
service rpcbind start
service nfslock start
service nfs start
[[email protected] /]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
[[email protected] /]#
8.rpcinfo –p
[[email protected] /]# 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 38041 status
100024 1 tcp 52337 status
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100005 1 udp 24683 mountd
100005 1 tcp 20579 mountd
100005 2 udp 35399 mountd
100005 2 tcp 46049 mountd
100005 3 udp 61341 mountd
100005 3 tcp 22087 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs #NFS版本4
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 54757 nlockmgr
100021 3 udp 54757 nlockmgr
100021 4 udp 54757 nlockmgr
100021 1 tcp 39549 nlockmgr
100021 3 tcp 39549 nlockmgr
100021 4 tcp 39549 nlockmgr
9.
chkconfig rpcbind on
chkconfig nfslock on
chkconfig nfs on
10. showmount –e 列出共享的目录
showmount –a IP 用于server端查看哪些client
exportfs –r -v 再次export
Exports [-aruv]
-a 全部mount或umount文件/etc/exports中的内容
-r 重新mount文件/etc/exports中的共享内容
-u umount目录
-v 在export的时候,将详细的信息输出到屏幕上
例:
[[email protected] ~]#/usr/sbin/exportfs –rv 全部重新export一次
[[email protected] ~]#/usr/sbin/exportfs –au 全部卸载
nfsstat 查看nfs状态
/root/share/ 192.168.1.20 (rw,insecure,sync,all_squash) 表示共享服务器上的/root/share/目录只有192.168.1.20主机可以访问,且有读写权限;此主机用任何身份访问时,将客户机的用户都映射成服务器上的匿名用户(all_squash),相当于在服务器上用nobody用户访问该目录(若客户机要在该共享目录上保存文件(即写操作),则服务器上的nobody用户对该目录必须有写的权限)
/home/ljm/ *.gdfs.edu.cn (rw,insecure,sync,all_squash) 表示共享/home/ljm/目录,*.gdfs.edu.cn域中所有的主机都可以访问该目录,且有读写权限
/home/share/ .gdfs.edu.cn (ro,sync,all_squash,anonuid=student,anongid=math) 表示共享目录/home/share/,*.gdfs.edu.cn域中的所有主机都可以访问,但只有只读的权限,所有用户都映射成服务器上的uid为student、gid为math的用户
客户端
1.客户端还需要启动rpcbind服务.rpcbind一般预设会自动启动.
service rpcbind start
2.如果服务器端启动了nfslock,则客户端也要启动nfslock服务
service nfslock start
3.建立挂接目录
mkdir /client_nfs
chown nfsnobody:nfsnobody /client_nfs 如果有必要的话
4.查询有哪些目录被export出来
showmount –e ip地址
5.挂接
mount –t nfs 192.168.1.x:/nfs_share /client_nfs
注意:要注释掉server端/etc/hosts中的客户端IP-主机名,否则报错如下:
[[email protected] ~]# mount -t nfs 192.168.1.80:/nfs /nfs_client
mount: 192.168.1.80:/nfs failed, reason given by server: Permission denied
原因:nfs server接到客户端的mount时,会先客户的IP做反解成域名,用域名(注意是用域名而不是IP)去和/etc/exports做比较,如果匹配不成功会失败
根本原因:规范的配置应是192.168.1.0/24或192.168.1.0/255.255.255.0。
客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认是用UDP协议,换成TCP协议即可:
mount -t nfs 192.168.1.225:/nfs /nfs_client -o proto=tcp -o nolock
mount -t nfs 使用的是 nfsv3 协议,需要明确指出使用 nfsv4 协议挂载 mount -t nfs4:
df查看 是否骨架成功
6.rc.local中写入自动挂载脚本,开机后会自动挂载.
替换工具autofs,效果更好
解除挂载:
[[email protected] ~]# umount /nfs_client
安装配置NFS服务