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でダウンロードできます。
このスクリプトはコマンドラインオプションを受け入れません。 スクリプトを実行する前に、手動で編集し、SUMAHOSTNAME
、SUMAIP
、およびSUMAPROXY1
変数を正しく設定して、スクリプトが正しく機能するようにする必要があります。
スクリプトの個々の調整に利用可能なサポートはありません。 スクリプトと内部のコメントは、プロセスの概要と考慮すべきステップを提供することを目的としています。 さらにサポートが必要な場合は、SUSEコンサルティングにお問い合わせください。 |
スクリプトを使用した提案されるアプローチは、次の環境で役立ちます。
-
SUSE Manager ProxyシステムがWAN接続を介して接続されている。
-
/srv/tftboot
に多数のディストリビューション用ファイルおよびクライアントPXEブートファイル(合計数千ファイル)が含まれている。 -
/etc/cobbler/settings
の任意のプロキシは無効になっているが、それ以外の場合、SUSE Managerは引き続きプロキシとコンテンツを同期する。#proxies: # - "sumaproxy.sumaproxy.test" # - "sumaproxy2.sumaproxy.test"
プロシージャ: 新しい同期速度の分析
-
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通信はキャプチャされません。
-
-
cobbler sync
を開始します。-
同期を強制するため、最初にCobbler jsonキャッシュファイルを削除してから、
cobbler sync
を発行します。rm /var/lib/cobbler/pxe_cache.json cobbler sync
-
-
cobbler sync
が終了したら、TCPdumpsを停止します。 -
Wiresharkを使用してTCPdumpsを開き、[
Statistics(統計) > Conversations(対話)
]に移動して、ダンプが分析されるのを待ちます。 -
TCPタブに切り替えます。 このタブに表示される数は、SUSE ManagerとSUSE Manager Proxy間でキャプチャされた合計対話数を示しています。
-
[
Duration
](期間)列を探します。-
昇順にソートして開始し、ファイルの転送にかかった最小時間を確認します。
-
降順にソートして続行し、カーネルやinitrdの転送など、大きなファイルの最大値を確認します。
ポート4505と4506はSalt通信に使用されるため無視してください。
-
TCPdumpsの分析では、SUSE Managerサーバからプロキシへの、サイズが約1800バイトの小さなファイルの転送に約0.3秒かかったことを示しています。
大きなファイルは多くありませんでしたが、小さなファイルの数が多いため、転送されるファイルごとに新しいTCP接続が作成され、確立された接続数が多くなりました。
したがって、最小転送時間と必要な接続数(たとえば、約5000)がわかれば、転送時間全体の概算推定時間が得られます(5000 * 0.3 / 60 = 25分)。