NFS网络文件系统服务配置、验证及错误解决


前期准备:

1.至少准备一台服务器(nfs-server)和一台客户机(nfs-client)。老表测试用的服务器端用的系统是ubuntu,客户机用的是CentOS 6.5,所以有些地方操作不一样。

2.给两台测试机都安装NFS服务和rpc服务。(一般安装NFS服务会自动安装rpc)

安装:

ubuntu:sudo apt-get install nfs-kernel-server

CentOS:yum groupinstall "NFS file server"

配置服务:

1.作服务器端的主机需要开启NFS服务和rpc服务,客户机只需开启rpc服务即可。

nfs-server上:/etc/init.d/rpcbind start

root@nfs-server:~# /etc/init.d/nfs-kernel-server start

注意:开启的时候先开启rpc服务,再开启nfs服务。要不后边使用服务可能会报错。

报错信息:clnt_create: RPC: Program not registered

问题分析:rpcbind服务与NFS服务启动顺序不对,

解决办法:先停掉nfs和rpc服务,再依次开启rpc和nfs服务。

nfs-client上:/etc/init.d/rpcbind start|/etc/init.d/rpcbind status

running代表rpc服务已开启。

2.检查rpc服务是否开启:rpcinfo -p localhost

若服务开启不成功报错情况如下:

nfs-server上:

nfs-client上:

解决办法:重新开启服务。

3.把NFS服务设置为开机自启动。(ubuntu下用sysv-rc-conf设置,CentOS用chkconf设置,具体设置方法见老表博文:http://12058118.blog.51cto.com/12048118/1858680)

4.在nfs-server上配置/etc/exports文件(配置nfs服务的文件),配置后重启服务并检查

a.配置服务(配置/etc/exports文件)
        root@nfs-server:~# vim /etc/exports

配置内容的格式:目录 网站、IP地址、主机名或网段(括号里边写给客户端的权限(权限之间用逗号分割))
        #shared folder for whokk by wholj at 2016-10-16
        share/  192.168.1.106(rw,sync)

注意:上边在配置的时候虽然给了客户端对共享目录具有写(w)的权限,但是服务器端的目录默认给其他的用户不具有写权限,所以客户机只可以对共享目录中的文件进行读操作。(客户机对共享目录中的文件拥有的权限是服务器目录权限和所给的共享权限的“权限与运算”结果)

服务器上共享目录的权限:
        root@nfs-server:~# ll /share/ -ld
        drwxr-xr-x 2 root root 4096 Oct 16 21:50 /share//

b.平滑重启NFS服务:/etc/init.d/nfs-kernel-server reload

root@nfs-server:~# /etc/init.d/nfs-kernel-server reload
         [....] Reloading nfs-kernel-server configuration (via systemctl): nfs-ke[ ok server.service.

注意:当修改/etc/exports文件后一定要做这一步!

c.本机(nfs-server)做检查:showmount -e localhost

root@nfs-server:~# showmount -e localhost
         Export list for localhost:
         share/ 192.168.1.106

d.客户端(nfs-client)做检查:showmount -e 192.168.1.103

[root@nfs-client ~]# showmount -e 192.168.1.103
        Export list for 192.168.1.103:
        share/ 192.168.1.106

此步检查可能出现的问题:连接不上
        解决办法:

第一步:ping 对方网址
        第二步:如果ping的同则用telnent查看端口
          报错信息:               
           root@wholj-qtk5:~# telnet 192.168.1.104 111
           Trying 192.168.1.104...
           telnet: Unable to connect to remote host: No route to host

解决办法:关闭防火墙

正确情况:
           root@wholj-qtk5:~# telnet 192.168.1.104 111
           Trying 192.168.1.104...
           Connected to 192.168.1.104.
           Escape character is '^]'.

e.1> 当执行c和d两步时正常能显示出上面设置的共享目录,如果报如下错误:
           clnt_create: RPC: Program not registered

解决办法:使用配置服务中的第1点中注意中的解决办法

2> 执行d的时候报错信息如下:

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
           解决办法:先查看服务器的IP是否和所要showmount的ServerIP一致,不一致就修改成ServerIP后再执行d,一致的话就在服务器端执行下边的命令后再作d步中的检查。
            root@nfs-server:~# iptables -F
            root@nfs-server:~# iptables -X

5.挂载(在nfs-client上挂载):mount -t nfs 192.168.1.103:/share /mnt

          192.168.1.103:/share  272G   55G  204G  22% /mnt   #d此行代表压缩成功


测试:

1.未改共享目录和文件的权限时测试结果如下(原因见a):
      nfs-client上:

[root@nfs-clientk mnt]# ll
       total 4
       -rw-r--r--. 1 root root 22 Oct 16  2016 test.txt‘’
       [root@nfs-client mnt]# ls
       test.txt
       [root@nfs-client mnt]# cat test.txt
       #test NFS file server
       [root@nfs-client mnt]#  echo "add ABC" >>test.txt       
       -bash: test.txt: Permission denied

出现Permission denied的原因:见配置服务的第4点中的注意。

nfs-server上:

root@nfs-server:/share# ls
       test.txt
       root@nfs-server:/share# cat test.txt
       #test NFS file server
       root@nfs-server:/share# echo "add ABC" >>test.txt
       root@nfs-server:/share# cat test.txt
       #test NFS file server

       add ABC    

2.修改权限前和修改之后测试

a.在nfs-server中共享目录为默认权限(755)时在nfs-client上测试:
      [root@nfs-clien mnt]# touch file1
      touch: cannot touch `file1': Permission denied
     b.在nfs-server中把共享目录的权限修改为777:
      root@nfs-server:~# chmod 777 /share/
      root@nfs-server~# ls -ld /share/
      drwxrwxrwx 2 root root 4096 Oct 16 22:28 /share/
      在nfs-clien上测试:

[root@nfs-clien mnt]# touch file1
      [root@nfs-clien mnt]# ls
      file1  test.txt

c.在nfs-server上将共享目录中的test.txt文件权限修改777:chmod 777 test.txt

root@nfs-server:/share# ll test.txt
      -rw-r--r-- 1 root root 46 Oct 17 15:02 test.txt
      root@nfs-server:/share# chmod 777 test.txt
      root@nfs-server:/share# ll test.txt
      -rwxrwxrwx 1 root root 46 Oct 17 15:02 test.txt*
      在nfs-client上测试:

总结:

不要怕出现问题,一旦出现问题就去解决它。

容易出错的点:

1.开启服务顺序一定要注意,先开rpc服务,再开nfs服务。

2.服务器上共享目录和文件给其他用户的权限和给客户机的权限的“与运算”结果的权限是客户机上对共享目录和文件所拥有的权限。

3.老表的nfs-client是虚拟机,使用的是桥接。所以每次重启后的IP地址要变,所以配置/etc/exports文件的时候IP地址也要相应的改变,要不然将会出现共享不成功的情况。其实此问题更好的解决方法是直接在/etc/exports文件中写入网段地址,而不是写IP地址。

经验:

1.每一步后记得检查。

2.ping和telnet检测网络和服务能不能到达很重要。

转载于:https://blog.51cto.com/12058118/1862781

NFS网络文件系统服务配置、验证及错误解决相关推荐

  1. NFS网络文件系统服务

    1.NFS网络文件系统简介 1)NFS概念描述: 什么是nfs?nfs是Network File system的缩写,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录.NFS客户端(一 ...

  2. NFS网络文件系统服务介绍与实战

    1.启动NFS相关服务 rpm -qantfs-utls portmap #查看是否已安装ntfs service portmap start #启动portmap服务 /etc/init.d/por ...

  3. nginx配置与常见错误解决方法

    nginx配置与常见错误解决方法 参考文章: (1)nginx配置与常见错误解决方法 (2)https://www.cnblogs.com/lechie/archive/2011/11/12/2383 ...

  4. webpack 4.0 配置方法以及错误解决

    webpack 4.0 配置方法以及错误解决 参考文章: (1)webpack 4.0 配置方法以及错误解决 (2)https://www.cnblogs.com/qqfontofweb/p/8516 ...

  5. source:读取文件 “/etc/profile” 时发生错误解决办法

    新装了最火的Linux发行版Manjaro,在/etc/profile中配置了JDK环境变量之后,刷新环境变量时,出现 source:读取文件 "/etc/profile" 时发生 ...

  6. 不在JPA 的 persistence.xml 文件里配置Entity class的解决的方法

     在Spring 集成 Hibernate 的JPA方式中,须要在persistence配置文件里定义每个实体类.这样很地不方便.2种方法能够解决此问题: 这2种方式都能够实现不用在persist ...

  7. NFS 网络文件系统测试笔记

    NFS(Network Files System),网络文件系统是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法.它是一种文件系统协议:支持应用程序在客户端通 ...

  8. TQ2440从nfs网络文件系统启动

    前提:我的PC已经配置好了 NFS服务 nfs根目录为:/home/daysmark/nfsdir 如果不会配置,请看点击打开链接 1.进入uboot进行设置 Set the boot paramet ...

  9. CentOS 7下无法启动网络(service network start)错误解决办法(转)

    今天在centOS 7下更改完静态ip后发现network服务重启不了,翻遍了网络,尝试了各种方法,终于解决了. 现把各种解决方法归纳整理,希望能让后面的同学少走点歪路... 首先看问题:执行serv ...

最新文章

  1. ATS 5.3.0日志字段分析(续)
  2. BZOJ 3930 [CQOI2015]选数
  3. UWP图片编辑器(涂鸦、裁剪、合成)
  4. 十三、StringBuffer
  5. 第三方提权之serv-u提权
  6. 模块化妙用!用vue3实现一个鼠标追踪器和异步加载组件
  7. eclipse spring mysql_为Eclipse上的Maven project添加SpringMVC和Mybatis以实现数据库
  8. 东京奥运出租车超预算想找滴滴接盘被拒 网友:真当人傻吗?
  9. 9、kubernetes之statefulset控制器
  10. c语言switch语句可以用在数组上吗,Microchip工程师社区 - C语言switch语句不能给数组吗? - Microchip C语言编译器论坛 - 麦田论坛...
  11. 如何科学预估开发时间
  12. lumion渲染太慢、卡顿怎么办?分享3个加快渲染的小技巧
  13. 在mtk6223的软t卡上实现对sdhc卡的读写
  14. walking机器人入门教程-硬件清单
  15. linode购买服务器
  16. 零基础教你Unity制作像素鸟游戏 【文末源码】
  17. 奥运门票可以网上卖,火车票为什么不行
  18. 解析C语言结构体及位段
  19. qt phonon 制作音乐播放器学习(怎样让播放进度条和音乐播放时长同步)
  20. ASP.net连接Mysql数据库详解

热门文章

  1. 流式大数据计算实践(4)----HBase安装
  2. Mbatis是什么?怎么运行?
  3. 服务器高并发下出现大量的time wait的解决办法
  4. 同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题
  5. [置顶] Android adb root权限
  6. [note]抽象类和接口的相同点和不同点
  7. java 图片分段上传_java实现分段读取文件并通过HTTP上传的方法
  8. cshtml 未能找到类型或命名空间名称“PagedList”(是否缺少 using 指令或程序集引用?)
  9. 字符串匹配(二)——逆向思维 BMH
  10. HDOJ1028-Ignatius and the Princess III(整数划分)