WAN接続を介したSUSE Managerサーバとプロキシ間の長い同期時間に関するトラブルシューティング

WebUIで、あるいはディストリビューションまたはシステム設定へのAPIコールを介して実行される変更によっては、SUSE ManagerサーバからSUSE Managerプロキシシステムにファイルを転送するために、cobbler syncコマンドが必要になる場合があります。これを実現するために、Cobblerは/etc/cobbler/settingsで指定されたプロキシのリストを使用します。

cobbler syncは、その設計上、変更されたファイルや最近追加されたファイルのみを同期することはできません。

代わりに、cobbler syncを実行すると、/etc/cobbler/settingsで設定された指定のすべてのプロキシに/srv/tftpbootディレクトリの完全同期がトリガされます。また、関連するシステム間のWAN接続の遅延によっても影響を受けます。

/var/log/cobbler/のログによると、同期のプロセスが完了するまでにかなりの時間がかかる場合があります。

たとえば、次の日時に開始したとします。

Thu Jun  3 14:47:35 2021 - DEBUG | running python triggers from /var/lib/cobbler/triggers/task/sync/pre/*
Thu Jun  3 14:47:35 2021 - DEBUG | running shell triggers from /var/lib/cobbler/triggers/task/sync/pre/*

そして、次の日時に終了したとします。

Thu Jun  3 15:18:49 2021 - DEBUG | running shell triggers from /var/lib/cobbler/triggers/task/sync/post/*
Thu Jun  3 15:18:49 2021 - DEBUG | shell triggers finished successfully

転送量は約1.8GBでした。 転送には30分ほどかかりました。

比較すると、/srv/tftbootと同じサイズの大きな単一ファイルのコピーは、数分以内に完了します。

SUSE Managerサーバとプロキシ間でファイルをコピーするためにrsyncベースのアプローチに切り替えると、転送時間と待機時間を短縮できる場合があります。

このタスクを実行するためのスクリプトは、https://suse.my.salesforce.com/sfc/p/1i000000gLOd/a/1i000000ll5B/B2AmvIJN2_JsAyjTQzCVP_x5ioVgd0bYN9X9NpMugS8でダウンロードできます。

このスクリプトはコマンドラインオプションを受け入れません。 スクリプトを実行する前に、手動で編集し、SUMAHOSTNAMESUMAIP、およびSUMAPROXY1変数を正しく設定して、スクリプトが正しく機能するようにする必要があります。

スクリプトの個々の調整に利用可能なサポートはありません。 スクリプトと内部のコメントは、プロセスの概要と考慮すべきステップを提供することを目的としています。 さらにサポートが必要な場合は、SUSEコンサルティングにお問い合わせください。

スクリプトを使用した提案されるアプローチは、次の環境で役立ちます。

  • SUSE Manager ProxyシステムがWAN接続を介して接続されている。

  • /srv/tftbootに多数のディストリビューション用ファイルおよびクライアントPXEブートファイル(合計数千ファイル)が含まれている。

  • /etc/cobbler/settingsの任意のプロキシは無効になっているが、それ以外の場合、SUSE Managerは引き続きプロキシとコンテンツを同期する。

    #proxies:
    # - "sumaproxy.sumaproxy.test"
    # - "sumaproxy2.sumaproxy.test"

プロシージャ: 新しい同期速度の分析

  1. SUSE Managerと関連するシステム間のTCPトラフィックのダンプを取得します。

    • SUSE Managerサーバの場合:

      tcpdump -i ethX -s 200 host <ip-address-of-susemanagerproxy> and not ssh
    • SUSE Managerプロキシの場合:

      tcpdump -i ethX -s 200 host <ip-address-of-susemanager> and not ssh
    • これにより、分析を実行するのに十分な200のパッケージサイズのみがキャプチャされます。

    • プロキシと通信するためにSUSE Managerが使用する各ネットワークインタフェースにehtXを調整します。

    • 最後に、さらにパッケージ数を削減するため、ssh通信はキャプチャされません。

  2. cobbler syncを開始します。

    • 同期を強制するため、最初にCobbler jsonキャッシュファイルを削除してから、cobbler syncを発行します。

      rm /var/lib/cobbler/pxe_cache.json
      cobbler sync
  3. cobbler syncが終了したら、TCPdumpsを停止します。

  4. Wiresharkを使用してTCPdumpsを開き、[Statistics(統計) > Conversations(対話)]に移動して、ダンプが分析されるのを待ちます。

  5. TCPタブに切り替えます。 このタブに表示される数は、SUSE ManagerとSUSE Manager Proxy間でキャプチャされた合計対話数を示しています。

  6. Duration](期間)列を探します。

    • 昇順にソートして開始し、ファイルの転送にかかった最小時間を確認します。

    • 降順にソートして続行し、カーネルやinitrdの転送など、大きなファイルの最大値を確認します。

      ポート4505と4506はSalt通信に使用されるため無視してください。

TCPdumpsの分析では、SUSE Managerサーバからプロキシへの、サイズが約1800バイトの小さなファイルの転送に約0.3秒かかったことを示しています。

大きなファイルは多くありませんでしたが、小さなファイルの数が多いため、転送されるファイルごとに新しいTCP接続が作成され、確立された接続数が多くなりました。

したがって、最小転送時間と必要な接続数(たとえば、約5000)がわかれば、転送時間全体の概算推定時間が得られます(5000 * 0.3 / 60 = 25分)。