ovsdb-server.service エラーの解決方法
問題の説明
システムアップデート(apt-get upgrade
)後に以下の現象が発生した場合:
- 再起動後、ネットワーク接続でタイムアウトが発生
sudo netplan apply
実行時に警告が表示される:WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.
systemd-networkd-wait-online.service
がタイムアウトで失敗:× systemd-networkd-wait-online.service - Wait for Network to be Configured Active: failed (Result: timeout)
この問題の特徴:
- Open vSwitch (OVS) を明示的にインストールしていない環境でも発生
- 物理的なネットワーク接続は正常(IPアドレスは正常に取得される)
- Ubuntu 22.04 LTS (Jammy Jellyfish) で頻繁に報告される既知のバグ (Launchpad Bug #2041727)
解決方法
重要前提
システムアップデートを最初に実施:
bash
sudo apt update
sudo apt upgrade
方法1: Open vSwitch 関連パッケージのインストール
標準的な解決手順:
bash
# openvswitch-switch-dpdk をインストール
sudo apt install openvswitch-switch-dpdk
# 設定を適用
sudo netplan apply
Raspberry Pi ユーザー向け追加手順:
bash
# カーネルモジュールのインストール(Pi専用)
sudo apt install linux-modules-extra-raspi
# 上記の標準手順を実行
sudo apt install openvswitch-switch-dpdk
sudo netplan apply
検証方法:
bash
# 警告が消えているか確認
sudo netplan try
ダミーパッケージ利用(代替案)
OVSを完全インストールしたくない場合:
bash
# openvswitch-switch のダミーパッケージをインストール
sudo apt install openvswitch-switch
ただし、この方法は完全な解決にならないケースがあります。
方法2: systemd-networkd-wait-onlineサービスの設定調整
ネットワークは正常だが同サービスがタイムアウトする場合の対策:
- サービスファイルを編集:
bash
sudo nano /lib/systemd/system/systemd-networkd-wait-online.service
[Service]
セクションを以下のように変更:
ini
[Service]
Type=oneshot
# 待機対象インターフェースを明示指定
ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=wlan0 --interface=eth0
RemainAfterExit=yes
# タイムアウト時間を短縮(初期値は2分)
TimeoutStartSec=30sec
- 設定をリロードしサービス再起動:
bash
sudo systemctl daemon-reload
sudo systemctl restart systemd-networkd-wait-online.service
確認コマンド:
bash
systemctl status systemd-networkd-wait-online.service
方法3: 警告を無視する(一時的対処)
問題が警告メッセージのみで機能に支障がない場合:
- この警告はUbuntuのバグ(LP#2041727)によるもの
- 将来的なパッチ更新で修正される可能性が高い
- 緊急時は警告をログからフィルタリング可能
根本原因と対策の解説
ovsdb-server警告:
- NetplanがOpen vSwitch (OVS) 機能を呼び出すが、OVSが未インストール
- 本質的なネットワーク機能には影響しないが、誤動作を誘発する場合あり
openvswitch-switch-dpdk
インストールでOVS機能を有効化
systemd-networkdタイムアウト:
- システム起動時に全インターフェースの準備完了を待機
- 特定インターフェースのみ使用する環境では不要な待機が発生
--interface
パラメータで対象を限定しタイムアウト時間を調整
予防措置
- 定期的なシステムアップデート実施:bash
sudo apt update && sudo apt upgrade -y
- 重要な変更前の設定バックアップ:bash
# Netplan設定のバックアップ cp /etc/netplan/*.yaml ~/netplan-backup.yaml
最終確認ポイント:
bash
# ネットワークインターフェース状態確認
ip a
# 全サービスステータス概要
systemctl --type=service | grep -i network