博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nfs网络共享服务基础
阅读量:5236 次
发布时间:2019-06-14

本文共 5272 字,大约阅读时间需要 17 分钟。

nfs原理

 1.开启RPC服务

2.NFS向RPC服务注册启动的端口

3.用户向RPC询问NFS服务的端口

4.RPC返回端口给客户端

5.客户端通过获得的端口与NFS服务器进行数据传输

 

实验步骤

一、准备

1.检查系统版本信息

2.检查是否安装nfs和rpc服务

3.安装服务

二、配置

1.启动rpc服务和nfs服务

2.查看nfs是否有向rpc注册端口

3.设置开机自启动

4.编辑nfs配置文件,并重启服务

5.在客户端进行挂载

三、测试

1.测试客户端与服务端的连通性

2.在分享目录内创建文件并在客户机上测试

 

详细配置:

注意:关闭selinux和iptables

服务端:

检查系统版本

[root@nfsclient ~]# cat /etc/redhat-releaseCentOS release 6.8 (Final)[root@nfsclient ~]# uname -r2.6.32-642.el6.x86_64[root@nfsclient ~]# uname -mx86_64

检查是否安装服务

[root@nfsserver ~]#  rpm -aq nfs-utils rpcbind

安装服务

#这里可以有两种方法,一种是正常yum安装,另一种是yum组安装#分别在服务端和客户端使用这两种方法[root@nfsserver ~]# yum install nfs-utils rpcbind -y

启动rpc服务

#必须先开启rpc服务,在开启nfs服务,否则nfs服务会启动不了,并且可能会发生错误[root@nfsserver ~]# /etc/init.d/rpcbind restartStopping rpcbind:                                          [  OK  ]Starting rpcbind:                                          [  OK  ][root@nfsserver ~]# ps -ef |grep rpcrpcuser   1258     1  0 18:36 ?        00:00:00 rpc.statdrpc       1630     1  0 18:53 ?        00:00:00 rpcbindroot      1634  1546  0 18:54 pts/0    00:00:00 grep --color=auto rpc#检查nfs是否有向rpc注册端口[root@nfsserver ~]# rpcinfo -p localhost     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#此处结果显示表示rpc自己使用的端口[root@nfsserver ~]# rpcinfo -p localhostrpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused    #此处即为rpc没有开启而产生的报错

开启nfs服务

[root@nfsserver ~]# /etc/init.d/nfs startStarting NFS services:                                     [  OK  ]Starting NFS mountd:                                       [  OK  ]Starting NFS daemon:                                       [  OK  ]Starting RPC idmapd:                                       [  OK  ][root@nfsserver ~]# rpcinfo -p localhost   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    100005    1   udp  44683  mountd    100005    1   tcp  53742  mountd    100005    2   udp  45815  mountd    100005    2   tcp  37259  mountd    100005    3   udp  43988  mountd    100005    3   tcp  48220  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  43032  nlockmgr    100021    3   udp  43032  nlockmgr    100021    4   udp  43032  nlockmgr    100021    1   tcp  52980  nlockmgr    100021    3   tcp  52980  nlockmgr    100021    4   tcp  52980  nlockmgr#这种输出才是nfs向rpc注册端口后的结果,由于nfs提供多种服务,所以会申请多个端口#还可以在/etc/sysconfig/nfs中设定监听端口,便于iptbales的书写echo"LOCKD_TCPPORT=32803" >>/etc/sysconfig/nfs

将rpc和nfs设置为开机自启动

[root@nfsserver ~]# chkconfig nfs on[root@nfsserver ~]# chkconfig rpcbind on[root@nfsserver ~]# chkconfig --list nfsnfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off[root@nfsserver ~]# chkconfig --list rpcbindrpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off#其实查看/etc/init.d/nfs | rpcbind即可得知,rpc于nfs先启动,后关闭

配置nfs服务并重启

[root@nfsserver ~]# mkdir /data[root@nfsserver data]# chown -R nfsnobody.nfsnobody /data/#如果没有修改共享目录的属主,则可能会出现如下报错#touch: cannot touch `hehe': Permission denied#实际上nfs在开启服务后会自动创建nfsnobody这个用户,可在/var/lib/nfs/etab 查看默认设置[root@nfsserver ~]# cat /etc/exports ##share my miss for glx at 2017/09/13/data 192.168.1.0/24(rw,sync)[root@nfsserver ~]# /etc/init.d/nfs reload    #ps:reload平滑重启不会影响正在访问客户 #ps:查看/etc/init.d/nfs可以得到,reload等同于/usr/sbin/exprotfs -r
#重启后检查[root@nfsserver ~]# showmount -e localhost   Export list for localhost:/data 192.168.1.0/24#ps:如果出现clnt_create: RPC: Program not registered错误,则是rpc和nfs的启动顺序出错,将两者都停止并按fpc,nfs顺序重新启动即可

 

客户端:

安装服务

[root@nfsclient ~]# yum groupinstall "NFS file server" -y#其实这个安装包组中包含了nfs及rpc,实际上客户端只需要rpc即可

启动rpc服务,并设置成开机自启动

[root@nfsclient ~]# /etc/init.d/rpcbind startStarting rpcbind:                                          [  OK  ][root@nfsclient ~]# chkconfig rpcbind on[root@nfsclient ~]# chkconfig --list rpcbindrpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off

测试与服务端的连通性

[root@nfsclient ~]# ping 192.168.1.111[root@nfsclient ~]# telnet 192.168.1.111 111

挂载共享目录到本地

[root@nfsclient ~]# mount -t nfs 192.168.1.111:/data /mnt[root@nfsclient ~]# df -hFilesystem           Size  Used Avail Use% Mounted on/dev/sda2            7.1G  907M  5.9G  14% /tmpfs                495M     0  495M   0% /dev/shm/dev/sda1            190M   30M  150M  17% /boot/dev/sr0             3.7G  3.7G     0 100% /media/cd192.168.1.111:/data   12G  2.0G  8.9G  19% /mnt#这样挂载重启就会失效#但写入/etc/fstab中,可能会失败,因为linux系统启动时,磁盘挂载即/etc/fstab文件的执行时优先于网络脚本文件的#但可以echo "/bin/mount -t nfs 192.168.1.111:/data /mnt" >> /etc/rc.local#在/etc/rc.local中最好使用命令的绝对路径,/etc/rc.local中书写不会影响系统的启动

  

 

转载于:https://www.cnblogs.com/jianbonet/p/7518546.html

你可能感兴趣的文章
Django模板
查看>>
Python--面向对象进阶
查看>>
ural 1207 Median on the Plane
查看>>
Codeforces Round #522 Div. 1 没打记
查看>>
UIBezierPath详解
查看>>
用GifCam在OSQA的回答中放录屏录像
查看>>
Asp.net Core 异步调用 Task await async 的梳理
查看>>
CodeForces 157B Trace
查看>>
PAT 1026 Table Tennis (30)
查看>>
动态代理例子(二)
查看>>
广告 文案中最能赚钱的10个关键词
查看>>
关于removeFromSuperview
查看>>
linux环境下搭建Java环境-配置jdk
查看>>
二进制中1的个数
查看>>
编写jquery插件的分享
查看>>
mysql免安装版配置使用
查看>>
love2d教程2--绘图和文字
查看>>
MySQL 技巧
查看>>
struts2-通配符映射(基本没啥卵用)和动态调用
查看>>
Druid介绍2
查看>>