11.3. ログおよびデバッグツール
このセクションでは、トラブルシューティングに使用できるログおよびデバッグツールを説明します。
11.3.1. 移行計画リソースの表示 リンクのコピーリンクがクリップボードにコピーされました!
移行計画リソースを表示して、実行中の移行を監視するか、MTC の Web コンソールおよびコマンドラインインターフェイス (CLI) を使用して失敗した移行のトラブルシューティングを行うことができます。
手順
- MTC Web コンソールで、Migration plans をクリックします。
- 移行計画の横にある Migrations 番号をクリックし、Migrations ページを表示します。
- 移行をクリックして、移行の詳細を表示します。
Migration resources をデプロイメントして、移行リソースおよびそれらのステータスをツリービューで表示します。
注記移行の失敗をトラブルシューティングするには、失敗した高レベルのリソースで開始し、リソースツリーでより低い位置にあるリソースまで堀り下げます。
リソースの横にある Options メニュー
をクリックし、以下のオプションのいずれかを選択します。
copy
oc describeコマンド は、コマンドをクリップボードにコピーします。関連するクラスターにログインしてから、コマンドを実行します。
リソースの条件およびイベントは YAML 形式で表示されます。
Copy
oc logsコマンド は、コマンドをクリップボードにコピーします。関連するクラスターにログインしてから、コマンドを実行します。
リソースがログフィルターに対応していると、フィルターされたログが表示されます。
JSON ビューは、Web ブラウザーで JSON 形式でリソースデータを表示します。
データは
oc get <resource>コマンドの出力と同じです。
11.3.2. 移行計画ログの表示 リンクのコピーリンクがクリップボードにコピーされました!
移行計画の集計ログを表示できます。MTC の Web コンソールを使用して、コマンドをクリップボードにコピーしてから、コマンドラインインターフェイス (CLI) からコマンドを実行します。
このコマンドは、以下の Pod に関するフィルターされたログを表示します。
-
Migration Controller -
Velero -
Restic -
Rsync -
Stunnel -
Registry
手順
- MTC Web コンソールで、Migration plans をクリックします。
- 移行計画の横にある Migrations 番号をクリックします。
- View logs をクリックします。
-
コピーアイコンをクリックして、
oc logsコマンドをクリップボードにコピーします。 関連するクラスターにログインし、CLI でコマンドを実行します。
移行契約の集約ログが表示されます。
11.3.3. 移行ログリーダーの使用 リンクのコピーリンクがクリップボードにコピーされました!
移行ログリーダーを使用して、すべての移行ログの単一のフィルタービューを表示できます。
手順
mig-log-readerPod を取得します。oc -n openshift-migration get pods | grep log
$ oc -n openshift-migration get pods | grep logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、単一の移行ログを表示します。
oc -n openshift-migration logs -f <mig-log-reader-pod> -c color
$ oc -n openshift-migration logs -f <mig-log-reader-pod> -c color1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
-c plainオプションは、色なしでログを表示します。
11.3.4. パフォーマンスメトリックへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
MigrationController カスタムリソース (CR) はメトリクスを記録し、それらをクラスター上のモニタリングストレージにプルします。Prometheus Query Language (PromQL) を使用してメトリックをクエリーし、移行のパフォーマンス問題を診断できます。すべてのメトリックは、Migration コントローラー Pod の再起動時にリセットされます。
パフォーマンスメトリックにアクセスし、OpenShift Container Platform Web コンソールを使用してクエリーを実行できます。
手順
-
OpenShift Container Platform Web コンソールで、Observe
Metrics をクリックします。 PromQL クエリーを入力し、表示する期間を選択し、Run Queries をクリックします。
Web ブラウザーにすべての結果が表示されない場合は、Prometheus コンソールを使用します。
11.3.4.1. 提供されるメトリック リンクのコピーリンクがクリップボードにコピーされました!
MigrationController カスタムリソース (CR) は、MigMigration CR 数およびその API 要求のメトリックを提供します。
11.3.4.1.1. cam_app_workload_migrations リンクのコピーリンクがクリップボードにコピーされました!
このメトリックは、一定期間の MigMigration CR の数です。mtc_client_request_count および mtc_client_request_elapsed メトリックと一緒に表示して、API リクエスト情報を移行ステータスの変更と照合するのに役立ちます。このメトリックは Telemetry に含まれます。
| クエリー可能なラベル名 | サンプルラベル値 | ラベルの説明 |
|---|---|---|
| status |
|
|
| type | stage、final |
|
11.3.4.1.2. mtc_client_request_count リンクのコピーリンクがクリップボードにコピーされました!
このメトリックは、MigrationController が発行する Kubernetes API 要求の累積数です。これは Telemetry に含まれていません。
| クエリー可能なラベル名 | サンプルラベル値 | ラベルの説明 |
|---|---|---|
| cluster |
| 要求が発行されたクラスター |
| component |
| 要求を発行したサブコントローラー API |
| function |
| 要求が発行された関数 |
| kind |
| 要求が発行された Kubernetes の種類 |
11.3.4.1.3. mtc_client_request_elapsed リンクのコピーリンクがクリップボードにコピーされました!
このメトリックは、MigrationController が発行する Kubernetes API 要求の累積レイテンシー (ミリ秒単位) です。これは Telemetry に含まれていません。
| クエリー可能なラベル名 | サンプルラベル値 | ラベルの説明 |
|---|---|---|
| cluster |
| 要求が発行されたクラスター |
| component |
| 要求を発行したサブコントローラー API |
| function |
| 要求が発行された関数 |
| kind |
| 要求が発行された Kubernetes リソース |
11.3.4.1.4. 有用なクエリー リンクのコピーリンクがクリップボードにコピーされました!
この表には、パフォーマンスの監視に使用できる便利なクエリーが記載されています。
| クエリー | 説明 |
|---|---|
|
| 発行した API 要求の数。要求タイプ別でソート |
|
| 発行された API 要求の合計数 |
|
| 要求タイプ別にソートされた API 要求のレイテンシー |
|
| API 要求の合計レイテンシー |
|
| API 要求の平均レイテンシー |
|
| 要求タイプ別にソートされた API 要求の平均レイテンシー |
|
| 実行中の移行の数。要求数とともに簡単に表示できるように 100 で乗算されます。 |
11.3.5. must-gather ツールの使用 リンクのコピーリンクがクリップボードにコピーされました!
must-gather ツールを使用して、MTC カスタムリソースのログ、メトリック、および情報を収集できます。
must-gather データはすべてのカスタマーケースに割り当てられる必要があります。
1 時間または 24 時間のデータを収集し、Prometheus コンソールでデータを表示できます。
前提条件
-
cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにログインしている。 -
OpenShift CLI (
oc) がインストールされている。
手順
-
must-gatherデータを保存するディレクトリーに移動します。 次のデータ収集オプションのいずれかに対して、
oc adm must-gatherコマンドを実行します。過去 24 時間のデータを収集するには、次のコマンドを実行します。
oc adm must-gather --image=registry.redhat.io/rhmtc/openshift-migration-must-gather-rhel8:v1.8
$ oc adm must-gather --image=registry.redhat.io/rhmtc/openshift-migration-must-gather-rhel8:v1.8Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、データを
must-gather/must-gather.tar.gzファイルとして保存します。このファイルを Red Hat カスタマーポータル で作成したサポートケースにアップロードできます。過去 24 時間のデータを収集するには、次のコマンドを実行します。
oc adm must-gather --image=registry.redhat.io/rhmtc/openshift-migration-must-gather-rhel8:v1.8 -- /usr/bin/gather_metrics_dump
$ oc adm must-gather --image=registry.redhat.io/rhmtc/openshift-migration-must-gather-rhel8:v1.8 -- /usr/bin/gather_metrics_dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow この操作には長時間かかる場合があります。このコマンドは、データを
must-gather/metrics/prom_data.tar.gzファイルとして保存します。
11.3.6. Velero CLI ツールを使用した Velero リソースのデバッグ リンクのコピーリンクがクリップボードにコピーされました!
Velero CLI ツールを使用して、Backup および Restore カスタムリソース (CR) をデバッグし、ログを取得できます。
Velero CLI ツールは、OpenShift CLI ツールよりも詳細な情報を提供します。
構文
oc exec コマンドを使用して、Velero CLI コマンドを実行します。
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> <command> <cr_name>
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
<backup_restore_cr> <command> <cr_name>
例
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
ヘルプオプション
velero --help オプションを使用して、すべての Velero CLI コマンドをリスト表示します。
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ --help
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
--help
describe コマンド
velero describe コマンドを使用して、Backup または Restore CR に関連する警告とエラーの要約を取得します。
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> describe <cr_name>
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
<backup_restore_cr> describe <cr_name>
例
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
次の種類の復元エラーと警告が、velero describe リクエストの出力に表示されます。
-
Velero: Velero 自体の操作に関連するメッセージのリスト (クラウドへの接続、バックアップファイルの読み取りなどに関連するメッセージなど) -
Cluster: クラスタースコープのリソースのバックアップまたは復元に関連するメッセージのリスト -
Namespaces: namespace に保存されているリソースのバックアップまたは復元に関連するメッセージのリスト
これらのカテゴリーのいずれかで 1 つ以上のエラーが発生すると、Restore 操作のステータスが PartiallyFailed になり、Completed ではなくなります。警告によって完了ステータスが変化することはありません。
-
リソース固有のエラー、つまり
ClusterおよびNamespacesエラーの場合、restore describe --details出力に、Velero が復元に成功したすべてのリソースのリストが含まれています。このようなエラーが発生したリソースは、そのリソースが実際にクラスター内に存在するかどうかを確認してください。 describeコマンドの出力にVeleroエラーがあっても、リソース固有のエラーがない場合は、ワークロードの復元で実際の問題が発生することなく復元が完了した可能性があります。ただし、復元後のアプリケーションを十分に検証してください。たとえば、出力に
PodVolumeRestoreまたはノードエージェント関連のエラーが含まれている場合は、PodVolumeRestoresとDataDownloadsのステータスを確認します。これらのいずれも失敗していないか、まだ実行中である場合は、ボリュームデータが完全に復元されている可能性があります。
logs コマンド
velero logs コマンドを使用して、Backup または Restore CR のログを取得します。
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> logs <cr_name>
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
<backup_restore_cr> logs <cr_name>
例
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf
11.3.7. 部分的な移行の失敗のデバッグ リンクのコピーリンクがクリップボードにコピーされました!
Velero CLI を使用して Restore カスタムリソース (CR) ログを確認し、部分的な移行の失敗に関する警告メッセージをデバッグできます。
部分的な障害は、Velero で移行の失敗を生じさせない問題が発生する際に見られます。たとえば、カスタムリソース定義 (CRD) がない場合や、ソースクラスターおよびターゲットクラスターの CRD バージョン間で不一致がある場合、移行は完了しますが、CR はターゲットクラスターで作成されません。
Velero は問題を部分的な障害としてログに記録し、Backup CR の残りのオブジェクトを処理します。
手順
MigMigrationCR のステータスを確認します。oc get migmigration <migmigration> -o yaml
$ oc get migmigration <migmigration> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Velero
describeコマンドを使用してRestoreCR のステータスを確認します。$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \ restore describe <restore>$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \ restore describe <restore>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Velero
logsコマンドを使用してRestoreCR ログを確認します。$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \ restore logs <restore>$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \ restore logs <restore>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
time="2021-01-26T20:48:37Z" level=info msg="Attempting to restore migration-example: migration-example" logSource="pkg/restore/restore.go:1107" restore=openshift-migration/ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf time="2021-01-26T20:48:37Z" level=info msg="error restoring migration-example: the server could not find the requested resource" logSource="pkg/restore/restore.go:1170" restore=openshift-migration/ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf
time="2021-01-26T20:48:37Z" level=info msg="Attempting to restore migration-example: migration-example" logSource="pkg/restore/restore.go:1107" restore=openshift-migration/ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf time="2021-01-26T20:48:37Z" level=info msg="error restoring migration-example: the server could not find the requested resource" logSource="pkg/restore/restore.go:1170" restore=openshift-migration/ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbfCopy to Clipboard Copied! Toggle word wrap Toggle overflow RestoreCR のログエラーメッセージのthe server could not find the requested resourceは、部分的に失敗した移行の原因を示します。
11.3.8. トラブルシューティング向けの MTC カスタムリソースの使用 リンクのコピーリンクがクリップボードにコピーされました!
以下の Migration Toolkit for Containers (MTC) カスタムリソース (CR) を確認し、失敗した移行のトラブルシューティングを行うことができます。
-
MigCluster -
MigStorage -
MigPlan BackupStorageLocationBackupStorageLocationCR には、CR を作成した MTC インスタンスを識別するためのmigrationcontrollerラベルが含まれます。labels: migrationcontroller: ebe13bee-c803-47d0-a9e9-83f380328b93labels: migrationcontroller: ebe13bee-c803-47d0-a9e9-83f380328b93Copy to Clipboard Copied! Toggle word wrap Toggle overflow VolumeSnapshotLocationVolumeSnapshotLocationCR には、CR を作成した MTC インスタンスを特定するためのmigrationcontrollerラベルが含まれます。labels: migrationcontroller: ebe13bee-c803-47d0-a9e9-83f380328b93labels: migrationcontroller: ebe13bee-c803-47d0-a9e9-83f380328b93Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
MigMigration BackupMTC は、移行された永続ボリューム (PV) の回収ポリシーをターゲットクラスターで
Retainに変更します。BackupCR には、元の回収ポリシーを示すopenshift.io/orig-reclaim-policyアノテーションが含まれます。移行した PV の回収ポリシーを手動で復元できます。-
Restore
手順
openshift-migrationnamespace のMigMigrationCR をリスト表示します。oc get migmigration -n openshift-migration
$ oc get migmigration -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE 88435fe0-c9f8-11e9-85e6-5d593ce65e10 6m42s
NAME AGE 88435fe0-c9f8-11e9-85e6-5d593ce65e10 6m42sCopy to Clipboard Copied! Toggle word wrap Toggle overflow MigMigrationCR を検査します。oc describe migmigration 88435fe0-c9f8-11e9-85e6-5d593ce65e10 -n openshift-migration
$ oc describe migmigration 88435fe0-c9f8-11e9-85e6-5d593ce65e10 -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下の例のようになります。
MigMigration の出力例
PV データを記述する Velero バックアップ CR #2 の出力例
Kubernetes リソースを記述する Velero CR #2 の出力例