Skip to content

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サービスの設定調整

ネットワークは正常だが同サービスがタイムアウトする場合の対策:

  1. サービスファイルを編集:
bash
sudo nano /lib/systemd/system/systemd-networkd-wait-online.service
  1. [Service] セクションを以下のように変更:
ini
[Service]
Type=oneshot
# 待機対象インターフェースを明示指定
ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=wlan0 --interface=eth0
RemainAfterExit=yes
# タイムアウト時間を短縮(初期値は2分)
TimeoutStartSec=30sec
  1. 設定をリロードしサービス再起動:
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)によるもの
  • 将来的なパッチ更新で修正される可能性が高い
  • 緊急時は警告をログからフィルタリング可能

根本原因と対策の解説

  1. ovsdb-server警告:

    • NetplanがOpen vSwitch (OVS) 機能を呼び出すが、OVSが未インストール
    • 本質的なネットワーク機能には影響しないが、誤動作を誘発する場合あり
    • openvswitch-switch-dpdk インストールでOVS機能を有効化
  2. 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