CentOS-6.5-NFS部署

                  nfs-server与nfs-client端配置一样
 
NFS(network file system)网络文件系统;用于在网络上共享存储。
服务端-192.168.161.133
需要安装的包nfs-utils      
rpcbind
客户端-192.168.161.132
nfs-utils
rpcbind
1、服务端配置nfs
需要安装两个包nfs-utils和rpcbind(用于服务端和客户端的通信,CentOS6以前的版本都是安装portmap包、centos6版本安装rpcbind)
[root@nfsserver /]# uname -r    打印系统版本
2.6.-.el6.x86_64
[root@nfsclient ~]# rpm -aq nfs-utils portmap rpcbind #检查nfs相关的包 如果有这两个包的话使用rpm卸载 重新安装
nfs-utils-1.2.-.el6.x86_64
rpcbind-0.2.-.el6.x86_64
[root@nfsclient /]# tail - /etc/yum.repos.d/CentOS-Media.repo #查看本地yum配置文件
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=
enabled=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@nfsclient /]# sed -i 's#enabled=0#enabled=1#gp' /etc/yum.repos.d/CentOS-Media.repo #修改配置文件
[root@nfsclient /]# tail - /etc/yum.repos.d/CentOS-Media.repo # 检查是否修改成功
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=
enabled=
enabled=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@nfsclient /]# yum -y remove nfs-utils rpcbind #卸载nfs相关的包 不建议使用yum remove卸载包、因为他会把依拉包卸载掉、有可能会影响服务器上的其他服务
Removed:
nfs-utils.x86_64 :1.2.-.el6 rpcbind.x86_64 :0.2.-.el6 Dependency Removed:
ipa-client.x86_64 :3.0.-.el6 nfs-utils-lib.x86_64 :1.1.-.el6
yp-tools.x86_64 :2.9-.el6 ypbind.x86_64 :1.20.-.el6 Complete!
[root@nfsclient /]# rpm -aq nfs-utils portmap rpcbind #确认是否卸载成功
发一:[root@nfsserver /]# yum -y install nfs-utils rpcbind #安装nfs相关的包
Installed:
nfs-utils.x86_64 :1.2.-.el6_8. rpcbind.x86_64 :0.2.-.el6 Dependency Installed:
nfs-utils-lib.x86_64 :1.1.-.el6
python-argparse.noarch :1.2.-2.1.el6 Dependency Updated:
libtirpc.x86_64 :0.2.-.el6 Complete!
[root@nfsserver /]# rpm -qa nfs-utils portmap rpcbind
rpcbind-0.2.-.el6.x86_64
nfs-utils-1.2.-.el6_8..x86_64
nfs-client端配置(安装时两边都用同一种方法,保持一致不容易出错)
法二:[root@nfsclient /]# yum grouplist | grep -i 'nfs' #查找nfs包组
Failed to set locale, defaulting to C
NFS file server
[root@nfsclient /]# yum -y groupinstall "NFS file server"
Installed:
nfs-utils.x86_64 :1.2.-.el6_8. Dependency Installed:
nfs-utils-lib.x86_64 :1.1.-.el6
python-argparse.noarch :1.2.-2.1.el6
rpcbind.x86_64 :0.2.-.el6 Updated:
nfs4-acl-tools.x86_64 :0.3.-.el6 Dependency Updated:
libtirpc.x86_64 :0.2.-.el6 Complete! root@nfsclient /]# rpm -aq nfs-utils portmap rpcbind
rpcbind-0.2.-.el6.x86_64
nfs-utils-1.2.-.el6_8..x86_64
nfs-server端配置
[root@nfsserver /]# /etc/init.d/rpcbind start #启动rpcbind服务
Starting rpcbind: [ OK ]
[root@nfsserver /]# ps -ef | grep rpcbind #查看rpcbind服务状态
rpc : ? :: rpcbind
root : pts/ :: grep rpcbind
[root@nfsserver /]# /etc/init.d/rpcbind status #查看rpcbind服务状态
rpcbind (pid ) is running...
[root@nfsserver /]# /etc/init.d/rpcbind stop
Stopping rpcbind: [ OK ]
[root@nfsserver /]# rpcinfo -p localhost
rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused
报错原因rpcbind服务未启动
[root@nfsserver /]# rpcinfo -p localhost
program vers proto port service
tcp portmapper
tcp portmapper
tcp portmapper
udp portmapper
udp portmapper
udp portmapper [root@nfsserver /]# /etc/init.d/nfs start #启动nfs服务
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
正在启动 RPC idmapd: [确定]
[root@nfsserver /]# rpcinfo -p localhost
program vers proto port service
tcp portmapper
tcp portmapper
tcp portmapper
udp portmapper
udp portmapper
udp portmapper
udp rquotad
udp rquotad
tcp rquotad
tcp rquotad
udp mountd
tcp mountd
udp mountd
tcp mountd
udp mountd
tcp mountd
tcp nfs
tcp nfs
tcp nfs
tcp nfs_acl
tcp nfs_acl
udp nfs
udp nfs
udp nfs
udp nfs_acl
udp nfs_acl
udp nlockmgr
udp nlockmgr
udp nlockmgr
tcp nlockmgr
tcp nlockmgr
tcp nlockmgr
[root@nfsserver /]# chkconfig nfs on #添加开机自启
[root@nfsserver /]# chkconfig rpcbind on
[root@nfsserver /]# chkconfig --list nfs #检查服务是否成功添加开机自启
nfs :off :off :on :on :on :on :off
[root@nfsserver /]# chkconfig --list rpcbind
rpcbind :off :off :on :on :on :on :off nfs-client配置
root@nfsclient /]# /etc/init.d/rpcbind start
Starting rpcbind: [ OK ]
[root@nfsclient /]# /etc/init.d/rpcbind status
rpcbind (pid ) is running...
[root@nfsclient /]# chkconfig rpcbind on
[root@nfsclient /]# chkconfig --list rpcbind
rpcbind :off :off :on :on :on :on :off
 
                                                    nfs-server端配置
[root@nfsserver /]# mkdir /data            #创建共享目录
[root@nfsserver /]# vim /etc/exports #nfs配置文件 默认为空
[root@nfsserver /]# cat /etc/exports
#shared data for bbs by oldboy at
/data 192.168.161.0/(rw,sync)
注:这里的共享目录是/data目录;指定一个网段192.168.161./(也可以指定单个IP);rw为可读写(ro只读);sync为同步模式(sync写入数据是直接写入磁盘,async非同步,写入数据写书内存、如果nfs服务端宕机容易造成数据丢失)详细注解可使用man exports命令;具体参数可参考下面nfs默认的配置、
[root@nfsserver /]# cat /var/lib/nfs/etab #nfs默认的配置参数
/data 192.168.161.0/(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=,anongid=,sec=sys,rw,root_squash,no_all_squash)
[root@nfsserver /]# /etc/init.d/nfs reload
[root@nfsserver /]# showmount -e localhost #现在本机检查共享是否成功
Export list for localhost:
/data 192.168.161.0/
 
                                                            nfs-client端配置
 
 
[root@nfsclient /]# showmount -e 192.168.161.133     //此为服务端IP
注:要关闭防火墙、不然客户端查不到共享,汇报如下错误:
clnt_create: RPC: Port mapper failure - Unable to receive: errno (No route to host)
clnt_create:RPC:端口映射器失败——不能接受:errno (没有通往主机)
[root@nfsclient /]# service iptables stop #关闭client端防火墙 或开放相应的端口
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[root@nfsserver /]# service iptables stop #关闭client端防火墙 或开放相应的端口
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
故障排查:[root@nfsclient /]# ping 192.168.161.133
[root@nfsclient /]# telnet 192.168.161.133
[root@nfsclient /]# showmount -e 192.168.161.133 #成功检测到共享
Export list for 192.168.161.133:
/data 192.168.161.0/
[root@nfsclient /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G .0G 12G % /
tmpfs 495M 80K 495M % /dev/shm
/dev/sda1 .0G 59M .8G % /boot
/dev/sr0 .2G .2G % /media/CentOS_6.5_Final
/dev/sr0 .2G .2G % /media/cdrom
[root@nfsclient /]# mount -t nfs 192.168.161.133:/data /mnt #挂载到/mnt下
[root@nfsclient /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G .0G 12G % /
tmpfs 495M 80K 495M % /dev/shm
/dev/sda1 .0G 59M .8G % /boot
/dev/sr0 .2G .2G % /media/CentOS_6.5_Final
/dev/sr0 .2G .2G % /media/cdrom
192.168.161.133:/data 16G .9G 12G % /mnt #挂载成功
[root@nfsclient /]# cd /mnt
[root@nfsclient mnt]# ll
total
-rw-r--r--. root root Aug :
-rw-r--r--. root root Aug :
-rw-r--r--. root root Aug :
[root@nfsclient mnt]# touch test.log #测试下是否有写入权限
touch: cannot touch `test.log': Permission denied 拒绝访问
到nfs-server端检查
[root@nfsserver /]# ll /data -ld
drwxr-xr-x root root Aug : /data
[root@nfsserver /]# cat /var/lib/nfs/etab #此目录是nfs默认的用户的信息
/data 192.168.161.0/(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=,anongid=,sec=sys,rw,root_squash,no_all_squash)
[root@nfsserver /]# grep /etc/passwd #根据用户id查出用户
nfsnobody:x:::Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@nfsserver /]# chown -R nfsnobody.nfsnobody /data #给nsfnobody赋予权限
[root@nfsclient mnt]# touch test.log #创建测试目录
[root@nfsclient mnt]# ll
total
-rw-r--r--. nfsnobody nfsnobody Aug :
-rw-r--r--. nfsnobody nfsnobody Aug :
-rw-r--r--. nfsnobody nfsnobody Aug :
-rw-r--r--. nfsnobody nfsnobody Aug : test.log #创建成功
开机自动挂载  修改/etc/fstab文件
 
nfs客户端自动挂载autofs
为什么需要autofs
autofs可以实现当前用户访问的时候在挂载,如果没有用户访问,指定之间、内,就自动卸载。
可以解决NFS服务器和客户端紧密耦合的问题。缺点:是用户请求才会挂载,所有请求的瞬间效率较差。一般的企业不用它。
上一篇:man ssh翻译(ssh命令中文手册)


下一篇:Action的三种实现方式,struts.xml配置的详细解释及其简单执行过程(二)