先日、networking.serviceに以下のようなlogが出力されていると書きましたが、どうやらinitスクリプトの起動順序に問題がある模様。
log的にはこんな感じ。
May 24 17:47:13 ubuntu-virt.kometch.local networking[881]: ovs-vsctl: unix:/var/run/openvswitch/db.sock: database connection failed (No such file or directory)
よくよく調べてみると、networking.service
はrcS.d
で起動するのに、Open vSwitch関連はその後に起動するのですが、その時までにovsdb-serverの起動が間に合っていない感じなのです。
他のところを調べてみると、openvswitch関連は、networkingより先に起動していないとダメだよ、という記述も見つけたので、現行のScriptのままopenvswitch環境に置き換えるには、色々と問題が多そうです。
自分でやった回避方法
結局自分でやった回避策は、rc.local
的に呼び出されるsystemdファイルを用意し、そこでopenvswitch関連のサービスを再起動してやることで問題を一時的に回避しています。
[Unit] Description=Want to add startup parameters After=syslog.target network.target auditd.service remote-fs.target nss-lookup.target Wants=local-fs.target openvswitch-switch.service [Service] Type=oneshot # OpenVswtich config #ExecStartPre=/bin/systemctl restart openvswitch-switch.service ExecStart=/etc/init.d/ovs.sh [Install] WantedBy=multi-user.target
#!/bin/sh -e #pre-start script ovs-vsctl add-br ovsbr0 ovs-vsctl add-bond ovsbr0 bond0 enp5s0f0 enp5s0f1 ovs-vsctl set port bond0 bond_mode=balance-slb lacp=off ovs-vsctl set port bond0 other_config:bond-detect-mode=miimon bond_mode=balance-slb bond_updelay=100 bond_downdelay=100 other_config:lacp-time=fast other_config:bond-miimon-interval=100 bond_fake_iface=true other_config:bond-detect-mode=miimon other_config:bond-miimon-interval="100" #end script
結局再作成みたいになってます。
実際にはどうするのがスマートなんですかねぇ・・・
Open vSwitch database connection failure after rebooting
Each time after installing Open vSwitch successfully and rebooting, I get the following error. ovs-vsctl: unix:/usr/loca...
参考:
Open vSwitch
OpenFlow徹底入門
Amazonで馬場達也, 大上貴之, 関山宜孝, 髙畑知也のOpenFlow徹底入門。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽しみいた...
図で考えるから見えてくる。ネットワーク仮想化とSDN/OpenFlowのしくみ
近年、“IT リソース(IT 資源)を仮想化して利用する"という考え方が一般的になってきました。OS やメモリーを仮想化することは従来から行われてきましたが、最近ではサーバーやストレージ(ハードディスク)を仮想化して利用するのが当たり前にな...