在ovs启动时候,老是出现
-
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脚本中,开头一段
-
22 for dir in "$sbindir" "$bindir" /sbin /bin /usr/sbin /usr/bin; do
-
23 case :$PATH: in
-
24 *:$dir:*) ;;
-
25 *) PATH=$PATH:$dir ;;
-
26 esac
-
27 done
问题就是第25行,将几个路径放入到了$PATH变量中,应该修改为
就好了,因为原来的语句会把/usr/local/xxx放到/usr/xxx的前面,而我预先安装的linux自带的openvswitch是安装到/usr/bin目录下,会使用/var/run/xxx目录作为运行时文件(db.sock及pid-file)的存放目录。
总之,就是目录发生了不匹配,导致openvswitch整个套件一部分使用了我新编译安装的文件,一部分使用了老的系统自带的文件,就这样发生了错误。另外一个保险的做法,是直接删除掉老的系统自带的部分。
阅读(7403) | 评论(0) | 转发(0) |