Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1613387
  • 博文数量: 409
  • 博客积分: 6240
  • 博客等级: 准将
  • 技术积分: 4908
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-01 00:04
文章分类

全部博文(409)

文章存档

2021年(1)

2019年(1)

2017年(1)

2016年(13)

2015年(22)

2013年(4)

2012年(240)

2011年(127)

NFS

分类: LINUX

2012-02-06 15:53:53

配置nfs  安装
1.l两边安装这两个

[root@testcms tmp]# rpm  -qa | grep nfs
nfs-utils-lib-1.0.8-7.6.el5
nfs-utils-1.0.9-50.el5

2.配置服务端

/etc/export

添加:/ftproot  *(rw)

3.两边启动portmap 、 nfs(有顺序的)

4.客户端:

mount -t nfs ip:/ftproot  /tmp

ok

注1.可能挂载之后没有写的权限,只有读,原因是服务端被挂载的目录其他用户组的权限问题!! 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CentOS下NFS服务器配置
Posted by 楚霏 – 2010-04-20


####################################
#NFS_Configuration
#Author:楚霏
#Date: 2010-4-20
#Update:2010-4-26
#Env: Centos 5.4 x86_64
####################################

二、环境介绍
####################################
两台机器全是Centos 5.4 x86_64
服务端IP=10.0.0.52
客户端IP=10.0.0.166
####################################

三、配置服务端
####################################
#因为默认已经安装portmap,nfs-utils-lib和nfs-utils,所以直接配置即可
#创建要共享的目录

view source

print?
1 mkdir /nfsdata
#nfs的主配置文件是/etc/exports

view source

print?
1 vi /etc/exports
2 #----------------------------引用文字-开始----------------------------
3 #加入
4 /nfsdata 10.0.0.0/24(rw,root_squash,no_all_squash,sync)
5 #----------------------------引用文字-结束----------------------------
#保存设置

view source

print?
1 exportfs -r
#配置文件每行分为段:
#第一段为共享的目录,使用绝对路径
#第二段为客户端地址及权限:
地址可以使用完整IP或网段,例如10.0.0.8或10.0.0.0/24,10.0.0.0/255.255.255.0当然也可以
地址可以使用主机名,DNS解析的和本地/etc/hosts解析的都行,支持通配符,例如:*.chengyongxu.com
权限有:
rw:read-write,可读写;
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
####################################

四、启动、测试
####################################
#先启动所依赖的postmap

view source

print?
1 service portmap start
2 service nfs start
#本地测试

view source

print?
1 showmount -e 10.0.0.52
2 #----------------------------输出文字-开始----------------------------
3 Export list for 10.0.0.52:
4 /nfsdata 10.0.0.0/24
5 #----------------------------输出文字-结束----------------------------
#创建挂载点

view source

print?
1 mkdir /mnt/nfsdata
#挂载

view source

print?
1 mount -t nfs 10.0.0.52:/nfsdata /root/nfsdata
#检查

view source

print?
01 mount
02 #----------------------------输出文字-开始----------------------------
03 /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
04 proc on /proc type proc (rw)
05 sysfs on /sys type sysfs (rw)
06 devpts on /dev/pts type devpts (rw,gid=5,mode=620)
07 /dev/hda1 on /boot type ext3 (rw)
08 tmpfs on /dev/shm type tmpfs (rw)
09 none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
10 sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
11 nfsd on /proc/fs/nfsd type nfsd (rw)
12 10.0.0.52:/nfsdata on /root/nfsdata type nfs (rw,addr=10.0.0.52)
13 #----------------------------输出文字-结束----------------------------
#写文件进行测试

view source

print?
1 echo "This is a test" >> /nfsdata/test
#检查一下

view source

print?
1 cat /root/nfsdata/test
#客户端测试
#步骤相似

view source

print?
1 service portmap start
2 service nfs start
3 showmount -e 10.0.0.52
4 mount -t nfs 10.0.0.52:/nfsdata /root/nfsdata
#检查

view source

print?
01 mount
02 #----------------------------输出文字-开始----------------------------
03 /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
04 proc on /proc type proc (rw)
05 sysfs on /sys type sysfs (rw)
06 devpts on /dev/pts type devpts (rw,gid=5,mode=620)
07 /dev/hda1 on /boot type ext3 (rw)
08 tmpfs on /dev/shm type tmpfs (rw)
09 none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
10 sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
11 nfsd on /proc/fs/nfsd type nfsd (rw)
12 10.0.0.52:/nfsdata on /root/nfsdata type nfs (rw,addr=10.0.0.52)
13 #----------------------------输出文字-结束----------------------------
#读写一下检查检查

view source

print?
1 cat /root/nfsdata/test
2 vi /root/nfsdata/test
#注意:
#如果需要开机挂载的话别忘了在/etc/fstab中加入

view source

print?
1 #----------------------------引用文字-开始----------------------------
2 /root/nfsdata   10.0.0.52:/nfsdata
3 #----------------------------引用文字-结束----------------------------
####################################

五、常见错误
####################################
错误一:Cannot register service: RPC

view source

print?
01 service nfs restart
02 #----------------------------输出文字-开始----------------------------
03 Shutting down NFS mountd:                                  [  OK  ]
04 Shutting down NFS daemon:                                  [  OK  ]
05 Shutting down NFS quotas:                                  [  OK  ]
06 Shutting down NFS services:                                [  OK  ]
07 Starting NFS services:                                     [  OK  ]
08 Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused
09 rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
10                                                           [FAILED]
11 #----------------------------输出文字-结束----------------------------
12  
13 #解决方法:
14 service portmap start
15 #先启动portmap才行
view source

print?
01 错误二:Address already in use
02 tail -f /var/log/message
03 #----------------------------输出文字-开始----------------------------
04 Apr 10 13:43:27 bogon nfsd[15918]: nfssvc: Setting version failed: errno 16 (Device or resource busy)
05 Apr 10 13:43:27 bogon nfsd[15918]: nfssvc: unable to bind UPD socket: errno 98 (Address already in use)
06 Apr 10 13:45:27 bogon nfsd[15978]: nfssvc: Setting version failed: errno 16 (Device or resource busy)
07 Apr 10 13:45:27 bogon nfsd[15978]: nfssvc: unable to bind UPD socket: errno 98 (Address already in use)
08 Apr 10 13:49:05 bogon nfsd[16080]: nfssvc: Setting version failed: errno 16 (Device or resource busy)
09 #----------------------------输出文字-结束----------------------------
10  
11 #解决方法:
12 ps aux | grep nfs
13 #然后用kill干掉这些进程
错误三:mount: 10.0.0.52:/nfsdata failed, reason given by server: Permission denied

view source

print?
1 #解决方法:
2 a.把该客户端的ip加入服务端的/etc/exports
3 b.服务端的和客户端规则要统一,要么都使用主机名(注意每台机器的hosts文件),要么都使用IP
错误四:客户端挂载超时

view source

print?
01 tail -f /var/log/message
02 #----------------------------输出文字-开始----------------------------
03 Apr 10 14:42:35 localhost kernel: portmap: server localhost not responding, timed out
04 Apr 10 14:42:35 localhost kernel: RPC: failed to contact portmap (errno -5).
05 Apr 10 14:42:46 localhost kernel: RPC: failed to contact portmap (errno -512).
06 Apr 10 14:42:46 localhost kernel: lockd_up: makesock failed, error=-512
07 Apr 10 14:42:46 localhost kernel: RPC: failed to contact portmap (errno -512).
08 #----------------------------输出文字-结束----------------------------
09  
10 #解决方法:
11 service portmap restart
12 service nfs restart
错误五:Error: RPC MTAB does not exist.

view source

print?
01 service nfs start
02 #----------------------------引用文字-开始----------------------------
03 Starting NFS services:                                     [  OK  ]
04 Starting NFS quotas:                                       [  OK  ]
05 Starting NFS daemon:                                       [  OK  ]
06 Starting NFS mountd:                                       [  OK  ]
07 Starting RPC idmapd: Error: RPC MTAB does not exist.
08 #----------------------------引用文字-结束----------------------------
09  
10 #解决方法:
11 #手动执行
12 mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs/
13 #需要时加入开机启动时,加入下面两行到/etc/fstab
14 #----------------------------引用文字-开始----------------------------
15 rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0
16 nfsd /proc/fs/nfsd nfsd defaults 0 0
17 #----------------------------引用文字-结束----------------------------
####################################


点击(此处)折叠或打开

  1. portmap
  2.   端口映射是一个服务器,将RPC程序号转换为DARPA的协议端口号。在使用RPC调用时它必须运行。
  3.   portmap进程的主要功能是把RPC程序号转化为Internet的端口号。
  4.   当一个RPC服务器启动时,会选择一个空闲的端口号并在上面监听(每次启动后的端口号各不相同),同时它作为一个可用的服务会在portmap进程注册。一个RPC服务器对应惟一一个RPC程序号,RPC服务器告诉portmap进程它在哪个端口号上监听连接请求和为哪个RPC程序号提供服务。经过这个过程,portmap进程就知道了每一个已注册的RPC服务器所用的Internet端口号,而且还知道哪个程序号在这个端口上是可用的。portmap进程维护着一张RPC程序号到Internet端口号之间的映射表,它的字段包括程序号、版本号、所用协议、端口号和服务名,portmap进程通过这张映射表来提供程序号-端口号之间的转化功能
  5.   如果portmap进程停止了运行或异常终止,那么该系统上的所有RPC服务器必须重新启动。首先停止NFS服务器上的所有NFS服务进程,然后启动portmap进程,再启动服务器上的NFS进程。
  6.   但portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。
  7.   简单的说,portmap就是应用和端口的婚姻介绍人,双方成事了以后,媒婆就没用了。






阅读(1818) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~