微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ovn-central.service 的 openstack /devstack / 作业失败,因为超时

如何解决ovn-central.service 的 openstack /devstack / 作业失败,因为超时

尝试使用 devstack 安装 openstack 时,运行命令 ./stack.sh 后出现此错误

ovn-central.service 的作业因超时而失败。 详情参见“systemctl status ovn-central.service”和“journalctl -xe”。

enter image description here

运行命令 systemctl status ovn-central.service 给了我这个输出

enter image description here

我知道我必须更改超时值,但我不知道该怎么做

日志文件

enter image description here

我需要解决这个问题。

解决方法

我遇到了和你一样的错误。我尝试将超时设置为更大的数字,例如 600 秒,您可以在此链接中查看第一个答案:how-to-change-systemd-service-timeout-value

但实际上这不是正确的解决方案。您可以使用 systemctl status 来查找该服务的启动脚本,而正是 ovn-sbctl init 阻止了重新启动过程。

stack@lil-u18:~/devstack$ systemctl status ovn-central.service 
● ovn-central.service - LSB: OVN central components
   Loaded: loaded (/etc/init.d/ovn-central; static; vendor preset: enabled)
   Active: activating (start) since Wed 2021-06-23 10:02:29 CST; 10min ago
     Docs: man:systemd-sysv-generator(8)
Cntrl PID: 3527 (ovn-central)
    Tasks: 5 (limit: 3654)
   CGroup: /system.slice/ovn-central.service
           ├─ 3527 /bin/sh /etc/init.d/ovn-central start
           ├─ 3534 /bin/sh /usr/share/openvswitch/scripts/ovn-ctl start_northd
           ├─ 3558 ovn-sbctl init
           ├─24463 /bin/sh /usr/share/openvswitch/scripts/ovn-ctl start_northd
           └─24489 ovn-sbctl init

尝试ovn-sbctl --verbose init打印错误信息,如下:

stack@lil-u18:~/devstack$ ovn-sbctl --verbose init
2021-06-23T02:13:06Z|00002|reconnect|DBG|unix:/var/run/openvswitch/ovnsb_db.sock: entering BACKOFF
2021-06-23T02:13:06Z|00003|stream_unix|DBG|/var/run/openvswitch/ovnsb_db.sock: connection failed (No such file or directory)
2021-06-23T02:13:06Z|00004|reconnect|INFO|unix:/var/run/openvswitch/ovnsb_db.sock: connecting...
2021-06-23T02:13:06Z|00005|reconnect|DBG|unix:/var/run/openvswitch/ovnsb_db.sock: entering CONNECTING
2021-06-23T02:13:06Z|00006|reconnect|INFO|unix:/var/run/openvswitch/ovnsb_db.sock: connection attempt failed (No such file or directory)
2021-06-23T02:13:06Z|00007|reconnect|DBG|unix:/var/run/openvswitch/ovnsb_db.sock: entering BACKOFF
2021-06-23T02:13:06Z|00008|poll_loop|DBG|wakeup due to 0-ms timeout at ../lib/ovsdb-idl.c:1404
2021-06-23T02:13:07Z|00009|poll_loop|DBG|wakeup due to 1000-ms timeout at ../lib/reconnect.c:643

如您所见,连接失败是因为 ovnsb_db.sock 缺失,并且不断重试,因此设置 systemctl 服务的 timeout 无济于事。在我的实践中,我将超时设置为 15 分钟,但它仍然失败。

,

我也遇到了同样的问题。这是我修复它的方法。

The OVN named daemons are stored in /var/run/ovn
   openvswitch -> /var/run/openvswitch/
   ovnnb_db.ctl=
   ovnnb_db.pid
   ovnnb_db.sock=
   ovn-northd.176946.ctl=
   ovn-northd.pid
   ovnsb_db.ctl=
   ovnsb_db.pid
   ovnsb_db.sock=
The OVS named daemons are stored in /var/run/openvswitch 

   br-ex.mgmt=
   br-ex.snoop=
   db.sock=
   ovsdb-server.176376.ctl=
   ovsdb-server.pid
   ovs-vswitchd.176528.ctl=
   ovs-vswitchd.pid

问题在于在脚本 lib/neutron_plugins/ovn_agent (lib/neutron_plugins/ovn_agent:start_ovn) 的函数 start_ovn 中使用了 $OVS_RUNDIR 变量。

我所做的是在函数中用 $OVN_RUNDIR 替换 $OVS_RUNDIR。在重新运行 stack.sh 之前我必须做的另一个修复是手动删除(untack.sh 不会这样做)链接“/var/run/ovn/openvswitch”。

因此,在修复脚本 lib/neutron_plugins/ovn_agent、运行 unstack.sh 并手动删除一个杂散链接文件后,我重新运行了 stack.sh,经过近一周的反复试验,我启动并运行了 devstack。

这是我应用替换的原始代码:(lib/neutron_plugins/ovn_agent:function start_ovn)

690         # Wait for the service to be ready
691         wait_for_sock_file $OVS_RUNDIR/ovnnb_db.sock
692         wait_for_sock_file $OVS_RUNDIR/ovnsb_db.sock
693 
694         if is_service_enabled tls-proxy; then
695             sudo ovn-nbctl --db=unix:$OVS_RUNDIR/ovnnb_db.sock set-ssl $INT_CA_DIR/private/$DEVSTACK_CERT_NAME.key $INT_CA_DIR/$DEVSTACK_CERT_NAME.cr>
696             sudo ovn-sbctl --db=unix:$OVS_RUNDIR/ovnsb_db.sock set-ssl $INT_CA_DIR/private/$DEVSTACK_CERT_NAME.key $INT_CA_DIR/$DEVSTACK_CERT_NAME.cr>
697         fi
698         sudo ovn-nbctl --db=unix:$OVS_RUNDIR/ovnnb_db.sock set-connection p${OVN_PROTO}:6641:$SERVICE_LISTEN_ADDRESS -- set connection . inactivity_p>
699         sudo ovn-sbctl --db=unix:$OVS_RUNDIR/ovnsb_db.sock set-connection p${OVN_PROTO}:6642:$SERVICE_LISTEN_ADDRESS -- set connection . inactivity_p>
700         sudo ovs-appctl -t $OVS_RUNDIR/ovnnb_db.ctl vlog/set console:off syslog:$OVN_DBS_LOG_LEVEL file:$OVN_DBS_LOG_LEVEL
701         sudo ovs-appctl -t $OVS_RUNDIR/ovnsb_db.ctl vlog/set console:off syslog:$OVN_DBS_LOG_LEVEL file:$OVN_DBS_LOG_LEVEL

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。