• nfs不能自动mount(转载)


    From:http://www.wenzizone.com/2009/08/14/nfs_can_not_automount_supplementary.html

    手动挂载nfs没有问题,说明portmap服务正常。使用/etc/init.d/netfs status 查看状态,可以看到需要挂载的路径,执行/etc/init.d/netfs start,nfs路径可以被挂载。说明netfs服务正常。

    查看/etc/rc.d/rc3.d下面的启动脚本,如下

    S10network   
    S12syslog    
    S13irqbalance
    S13iscsi     
    S13portmap   
    S22messagebus
    S25netfs     
    S28autofs 

    由此看到,netfs服务是在portmap的后面启动,同样也是在network的后面启动的,所以应该不会是服务启动顺序的问题。

    紧接着又想到了另外一个问题:并不是所有服务器都不能挂载nfs,有些机器是可以的。有一点蚊子这里需要说一下,蚊子公司的nfs服务器的ip地址和我服务器的ip不在一个网段,服务器是10网段,nfs是192网段的。所以蚊子必须在启动服务器的时候添加路由。

    在此,蚊子使用了两种方式自动添加路由

    1,使用rc.local文件
    2,使用static-routes文件

    问题就是使用第一种方式的时候不能自动挂载,但使用第二种方式的时候就可以自动挂载。后来蚊子把使用第一种方式的都改成第二种方式,问题迎刃而解,服务器重启后可以自动挂载nfs了。

    总结:

    按照linux启动的顺序,rc.local里面的内容是在linux所有服务都启动完毕,最后才被执行的,也就是说,这里面的内容是在netfs之后才被执行的,那也就是说在netfs启动的时候,服务器上的静态路由是没有被添加的,所以netfs挂载不能成功。

    static-routes文件又是什么呢,这个是network脚本执行时调用的一个文件,这个文件的放置在/etc/sysconfig目录下,在network脚本中的位置是:

     # Add non interface-specific static-routes.
             if [ -f /etc/sysconfig/static-routes ]; then
                grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
                   /sbin/route add -$args
               done
             fi

    从这段脚本可以看到,这个就是添加静态路由的方法,static-routes的写法是

    any net 192.168.0.0/16 gw 网关ip

    这样的话,在启动network脚本的时候路由就自动添加上了,又因为network是在netfs前面启动的,自然在挂载nfs的时候就正常了。

    这样看来,如果需要添加静态路由,使用static-routes文件要比使用rc.local好,而且当改变了网络配置,需要重启network脚本的时候,相应的静态路由是可以自动添加上的,但这时如果使用rc.local的话,在重启network服务的时候,原本添加好的静态路由就消失了。

  • 相关阅读:
    beego框架学习(一)安装
    专题 :JSON处理
    Java中getClassLoader().getResource()和getResource()的区别
    加载WebApplicationContext的方式
    Web.xml配置详解之context-param
    “Could not open ServletContext resource [/WEB-INF/applicationContext.xml]”解决方案
    如何解决 Eclipse中出现-访问限制由于对必需的库XX具有一定限制,因此无法访问类型
    JDK各个JAR包的作用
    eclipse汉化
    模板专题(一)函数模板
  • 原文地址:https://www.cnblogs.com/xiaoerlang/p/3595601.html
Copyright © 2020-2023  润新知