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

WebUIで、あるいはディストリビューションまたはシステム設定へのAPIコールを介して実行される変更によっては、SUSE Multi-Linux ManagerサーバからSUSE Multi-Linux 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 Multi-Linux Managerサーバとプロキシ間でファイルをコピーするためにrsyncベースのアプローチに切り替えると、転送時間と待機時間を短縮できる場合があります。

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

The script does not accept command line options. Before running the script, you need to manually edit it and set correctly MLMHOSTNAME, MLMIP and MLMPROXY1 variables for it to work correctly.

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

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

  • SUSE Multi-Linux ManagerプロキシシステムがWAN接続を介して接続されている。

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

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

    #proxies:
    # - "MLMproxy.MLMproxy.test"
    # - "MLMproxy2.MLMproxy.test"
プロシージャ: 新しい同期速度の分析
  1. SUSE Multi-Linux Managerと関連するシステム間のTCPトラフィックのダンプを取得します。

    • SUSE Multi-Linux Managerサーバの場合:

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

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

    • プロキシと通信するためにSUSE Multi-Linux 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 Multi-Linux ManagerサーバとSUSE Multi-Linux Managerプロキシ間でキャプチャされた合計対話数を示しています。

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

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

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

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

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

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

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