Error:NFS启动无法绑定IPV6地址报错

NFS服务启动时无法绑定ipv6地址

在测试NFS的时候,突然发生了从未有过的错误,故障信息如下,为此特地描述一下排错的过程,供同行参考:

info:
[[email protected] ~]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd: rpc.mountd: svc_tli_create: could not open connection for udp6
rpc.mountd: svc_tli_create: could not open connection for tcp6
rpc.mountd: svc_tli_create: could not open connection for udp6
rpc.mountd: svc_tli_create: could not open connection for tcp6
rpc.mountd: svc_tli_create: could not open connection for udp6
rpc.mountd: svc_tli_create: could not open connection for tcp6
                                                           [  OK  ]
Stopping RPC idmapd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
Starting NFS daemon: rpc.nfsd: unable to create inet6 TCP socket: errno 97 (Address family not supported by protocol) 
                                                       [  OK  ]
analysis:
    从上面的信息可以看出,nfs在启动的时候报错了。大致的意思是无法设置ipv6的套接字接口,其中这一句话很重要:
Address family not supported by protocol 。地址族不被nfs协议所支持。
    到这里,就很奇怪了,nfs是支持ipv6协议的,而且系统就更不要说了,肯定支持ipv6协议。但是,在linux系统中一切功能都是模块组合而成,只不过可以将模块编译进内核或者编译成外挂式模块动态加载。因此,想到这里就提出一个问题,是不是ipv6的模块没有加载,接着就进行下面的检查:

[[email protected] ~]# ifconfig eth0 | grep inet
          inet addr:172.16.1.20  Bcast:172.16.1.255  Mask:255.255.255.0
[[email protected] ~]#
    从上面的信息反馈可见,没有出现inet6的地址信息,可以初步断定ipv6的模块并没有编译进内核,那就应该是动态加载,而此处没有信息,那就说明可能没有动态加载成功。

[[email protected] ~]# cd /proc/sys/
[[email protected] sys]# ls
abi  crypto  debug  dev  fs  kernel  net  sunrpc  vm
[[email protected] sys]# cd net
[[email protected] net]# ls
core  ipv4  netfilter  unix
[[email protected] net]#
    从上面的的信息可见,在/proc/sys/net/目录中没有出现ipv6的信息,再一次说明ipv6的模块加载确实出现了问题,因为如果成功加载,则在内核的信息中是可以看到有一个ipv6的目录存在

[[email protected] net]# lsmod | grep ipv6
ipv6                  322541  0
    从上面的信息可见,ipv6模块似乎在开机的时候默认是加载的,但是从前面的检查可知并没有生效,这是什么原因呢? 紧接着进行下面的检查:
[[email protected] net]#
[[email protected] net]# cd /etc/modprobe.d/
[[email protected] modprobe.d]# ls
anaconda.conf  blacklist.conf  dist-alsa.conf  dist.conf  dist-oss.conf  ipv6.conf  openfwwf.conf
[[email protected] modprobe.d]# cat ipv6.conf
# Anaconda disabling ipv6
options ipv6 disable=1
   从上面的ipv6.conf中的信息可见ipv6的功能被disable了,到此问题算是找到了。也就是说在启动的时候虽然加载了ipv6的模块,但是给的参数是disable=1,表示关闭ipv6的功能,所以导致了ipv6的功能并没有生效。

问题找到后,就要进行处理了:
[[email protected] modprobe.d]#
[[email protected] modprobe.d]# sed -i ‘s/1/0/‘ ipv6.conf
[[email protected] modprobe.d]# cat ipv6.conf
# Anaconda disabling ipv6
options ipv6 disable=0
[[email protected] modprobe.d]#
[[email protected] modprobe.d]# lsmod | grep ipv6
ipv6                  322541  0
[[email protected] modprobe.d]# modprobe -r ipv6
[[email protected] modprobe.d]# lsmod | grep ipv6
[[email protected] modprobe.d]# modprobe ipv6
[[email protected] modprobe.d]# lsmod | grep ipv6
ipv6                  322541  134
[[email protected] modprobe.d]#
    从上面的步骤可知,将disable的改为了0,表示启用。然后卸载模块重新加载一次(也可以重启系统),加载成功后,再次验证此前的判断:

[[email protected] modprobe.d]# ifconfig eth0 | grep inet
          inet addr:172.16.1.20  Bcast:172.16.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fee9:3560/64 Scope:Link
[[email protected] modprobe.d]#
[[email protected] modprobe.d]# cd /proc/sys/net/
[[email protected] net]# ls
core  ipv4  ipv6  netfilter  unix
[[email protected] net]#
    从上面的信息可见,此前没有出现的预判信息,这里已经出现了,因此表示ipv6功能已经成功启用。接下来再次重启nfs服务:

[[email protected] net]# service nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Stopping RPC idmapd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
[[email protected] net]#

ok,到此,不再有nfs的报错信息,问题解决。

时间: 2024-08-13 23:36:25

Error:NFS启动无法绑定IPV6地址报错的相关文章

node启动时, listen EADDRINUSE 报错;

1.启动时, listen  EADDRINUSE 报错: 查看是因为 端口被占用了,换了端口 还是不行:      查看了 被占用的端口,端口没有为:4000: 突然想到,每次启动node服务后,都没有关闭: 于是,查看任务进程,把node.js进程关闭后,重新启动 node环境即可!

安装zookeeper时候,可以查看进程启动,但是状态显示报错:Error contacting service. It is probably not running

安装zookeeper-3.3.2的时候,启动正常没报错,但zkServer.sh status查看状态的时候却出现错误,如下: JMX enabled by defaultUsing config: /hadoop/zookeeper/bin/../conf/zoo.cfgError contacting service. It is probably not running. jps查看进程,却发现进程已启动 7313  QuorumPeerMain 在网上查阅资料一共有三种解决方法: 1,

Android Studio ERROR: x86 emulation currently requires hardware acceleration!报错解决傻瓜教程~

很早之前就碰到过Android Studio模拟器无法启动的问题,今天终于尝试去解决了下,下面将我解决的方法记录下. 模拟器报错信息为: emulator: ERROR: x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: HAX kernel module is not

Nginx 跳转fastdfs存储图片地址报错问题分析过程汇总

1,问题描述 上传压缩图片报错:org.csource.common.MyException: getStoreStorage fail, errno code: 2 原因是dns域名ping不通traker,改成ip地址OK了,如下所示: [[email protected] logs]# vim/etc/fdfs/storage_group2.conf #tracker_server=tracker.mytest.com:22122 tracker_server=192.168.121.21

mysql数据库已启动,但是登录数据库报错

mysql数据库默认设置的是开机自启动,重启db01服务器后,想进入数据库查看数据信息:但是无法进入数据库,报错如下: [[email protected] ~]# mysql -uroot -p Enter password:  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2) 查看mysql数据库端口状态,尝试重启,关闭数据库,但是报错如下:

自定义项目启动初始化信息的listener报错

自定义初始化组件代码如下: @Component public class InitComponent implements ServletContextListener, ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void contextInitialized(ServletContextEvent servletContextEvent) {

Windows server 2008启动remote dosktop services服务报错1079

原创 欢迎转载,届时请注明出处 报错场景 今天,刚开始启动win server的远程连接服务(remote desktop services)时 该服务可以正常启动,然后选择了  "计算机-->属性-->远程设置-->远程-->远程桌面-->允许运行任意版本远程桌面-.-->应用-->确定".一切都正常的. 然后,我就手贱,在"计算机-->属性-->远程设置-->远程-->远程桌面-->选择用户"

Windows下mysql无法启动1067错误 以及 登录报错Access denied for user ‘root’@‘localhost’ (using password:YES)

Windows下mysql无法启动1067错误解决: 解决步骤: 1.  找到自己的mysql安装目录,比如,我的是D:\MySQL\MySQL Server 5.5 2.  打开my.ini文件 3.  找到 #Path to the database root这一行,将 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"    修改为自己mysql安装目录下的  datadir="D:/MySQL/MySQL Ser

解决:sudo: parse error in /etc/sudoers near line 24 ...报错

ubuntu系统下由于添加用户权限的时候直接用的vim对 /etc/sudoers 文件编辑,保存退出的时候,再使用sudo su 等等命令一直报错如下: sudo: parse error in /etc/sudoers near line 24 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin 原因是直接用vim修改文件时报错,参考Google说,应该用visudo命