Chinaunix首页 | 论坛 | 博客
  • 博客访问: 508133
  • 博文数量: 118
  • 博客积分: 2575
  • 博客等级: 大尉
  • 技术积分: 1263
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-27 09:37
文章分类

全部博文(118)

文章存档

2017年(11)

2016年(8)

2015年(1)

2014年(9)

2013年(7)

2012年(38)

2011年(14)

2010年(18)

2009年(12)

分类: LINUX

2016-03-03 16:04:59

在ovs启动时候,老是出现

  1. Enabling remote OVSDB managers 2016-03-03T07:48:22Z|00001|unixctl|WARN|failed to connect to /usr/local/var/run/openvswitch/ovsdb-server.4972.ctl
之类的错误信息,导致启动服务失败。错误信息多种多样,包括db.sock或者其它的pid文件找不到,经过分析,发现的路径不太对,比如应该是/var/run/openswitch/或者/usr/local/var/run/openvswitch不匹配,也就是说应该是某种路径,但是却变成了另外一种路径。

我以前也碰到过这个问题,也曾经解决过,没有记录下来。再次发生的时候,又定位一番,浪费了一天了时间。这次记录下来,希望以后不再发生类似的错误。

错误的引入在openswitch/ovs-ctl脚本中,开头一段

  1. 22 for dir in "$sbindir" "$bindir" /sbin /bin /usr/sbin /usr/bin; do
  2. 23 case :$PATH: in
  3. 24 *:$dir:*) ;;
  4. 25 *) PATH=$PATH:$dir ;;
  5. 26 esac
  6. 27 done
问题就是第25行,将几个路径放入到了$PATH变量中,应该修改为

  1. PATH=$dir:$PATH
就好了,因为原来的语句会把/usr/local/xxx放到/usr/xxx的前面,而我预先安装的linux自带的openvswitch是安装到/usr/bin目录下,会使用/var/run/xxx目录作为运行时文件(db.sock及pid-file)的存放目录。

总之,就是目录发生了不匹配,导致openvswitch整个套件一部分使用了我新编译安装的文件,一部分使用了老的系统自带的文件,就这样发生了错误。另外一个保险的做法,是直接删除掉老的系统自带的部分。


阅读(7222) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~