適用対象: ✔️ Linux VM
この記事では、SUSE Linux Enterprise サーバー (SLES) の移行中に発生する問題について説明し、それらに対するソリューションを提供します。
注意事項
この記事のプロセスに従うと、データ プレーンと仮想マシン (VM) の コントロール プレーン が切断されます。 ゲストの自動パッチ適用、 OS イメージの自動アップグレード、 ホット パッチの適用、Azure Update Manager などの Azure の機能は利用できなくなります。 これらの機能を利用するには、インプレース アップグレードを実行する代わりに、希望するオペレーティング システムを使用して新しい VM を作成することをお勧めします。
前提条件
- この Distribution Migration System (DMS) ガイドでは、Azure VM の SLES 12 を SLES 15 にアップグレードする方法に関する一般的な手順について説明します。 詳細については、「 パブリック クラウドでの SUSE Linux Enterprise のアップグレード および SUSE 製品ライフサイクルを参照してください。
- 移行には VM を再起動する必要があるため、承認されたダウンタイム期間に従って移行アクティビティを計画します。
- 移行を実行する前に、VM の完全なバックアップまたはスナップショットを作成します。
- VM が V1 世代か V2 世代かを確認します。
VM の世代バージョンを確認する
生成バージョンは、次のいずれかの方法を使用して確認できます。
SLES ターミナルで次のコマンドを実行します。
sudo dmidecode | grep -i hyper
第 1 世代 VM の場合、出力は返されません。
第 2 世代 VM の場合は、次のテキストのような出力が表示されます。
Version: Hyper-V UEFI Release v4.1 Version: Hyper-V UEFI Release v4.1 Version: Hyper-V UEFI Release v4.1 Version: Hyper-V UEFI Release v4.1
Azure ポータルで VM Properties に移動し、次のように VM の生成 フィールドを確認します。
シナリオ 1: SLES 12 から SLES 15 への移行は成功しますが、SLES 15 SP1 から SP2 へのアップグレードは失敗します
sudo zypper migration
コマンドを実行すると、移行が失敗し、次の出力が表示されます。
Can't get available migrations from server: SUSE::Connect::ApiError: The requested products 'HPC Module 12 x86_64' are not activated on the system.
または
Can't get available migrations from server: SUSE::Connect::ApiError: Invalid combination of products registered.
/var/log/messages
または/var/log/distro-migration.log
ファイルで出力を見つけることもできます。
原因
SLES 12 と SLES 15 の大きな変更点の 1 つは、ハイ パフォーマンス コンピューティング (HPC) がスタンドアロン製品になることです。 そのため、SLES として登録されているシステムでは HPC モジュールを使用できなくなります。 この変更により、移行ターゲットがターゲットを見つけるのに失敗し、移行プロセスが失敗します。
解決方法
この問題を解決するには、次のコマンドを実行して、移行を開始する前に HPC モジュールを削除します。
sudo zypper rm sle-module-hpc-release-POOL sle-module-hpc-release
回避策
この問題を回避するには、 sle-module-hpc.prod
を /etc/products.d/
ディレクトリから一時的な場所に移動し、もう一度移行を試してください。 これを行うには、次の コマンドを実行します。
cd /etc/products.d
sudo mv sle-module-hpc.prod /tmp/
sudo zypper migration
詳細については、「パブリック クラウドの Major distros」を参照してくださいAzure で移行が失敗。
シナリオ 2: "suse-migration-sles15-activation" パッケージのインストールが失敗する
suse-migration-sles15-activation
パッケージをインストールすると、移行が失敗し、次の出力が表示されます。
'suse-migration-sle15-activation' not found in package names. Trying capabilities. No provider of 'suse-migration-sle15-activation' found.
この出力は、 /var/log/messages
または /var/log/distro-migration.log
ファイルでも見つけることができます。
原因
SLES 12 パブリック クラウド モジュールは、既定では有効になっていません。
解決方法
この問題を解決するには、次の手順に従ってください。
パブリック クラウド モジュールを有効にしてから、パッケージをもう一度インストールしてみてください。
sudo SUSEConnect -p sle-module-public-cloud/12/x86_64
Note
SLES for SAP インスタンスでは、2 つのパッケージ (
sle-ha-release
とsle-ha-release-POOL
) は存在しないでください。 この場合、配布移行を開始する前に、sudo zypper remove sle-ha-release sle-ha-release-POOL
コマンドを実行してこれらのパッケージを削除します。システムでクリーンアップを実行し、再登録します。
sudo SUSEConnect --cleanup
sudo rm /etc/zypp/{credentials,services,repos}.d/*
sudo rm --force --recursive /var/cache/zypp/*
sudo rm /var/lib/cloudregister/*
sudo registercloudguest --force-new
VM の登録状態を確認します。
sudo SUSEConnect --status
移行を続行します。
sudo zypper migration
詳細については、「パブリック クラウドの Major Distros およびパブリック クラウドでの SUSE Linux Enterprise のアップグレードを参照してください。
シナリオ 3: SLE 15 SP1 から SLE 15 SP2 にアップグレードした後、第 2 世代 VM は停止後に起動に失敗する
第 2 世代 VM が SLES 15 SP1 から SLES 15 SP2 にアップグレードされた後、AZURE portal から停止した後、または init 0
または shutdown -h
コマンドを実行しても、VM は起動しません。 シリアル コンソール ログまたは /var/log/
ディレクトリのboot.log
に、次の出力が表示されます。
Loading Linux 5.3.18-24.49-default ...
error: symbol grub_file_filters' not found
Loading initial ramdisk ...
error: symbol grub_file_filters' not found
Press any key to continue.
または
Loading Linux 5.3.18-24.49-default ...
error: symbol grub_verify string' not found
Loading initial ramdisk ...
error: symbol grub_verify string' not found
Press any key to continue...
原因
第 2 世代 VM が再起動、停止、または割り当て解除された後、Azure 環境内の Hyper-V はブート エントリを保持しません。 この場合、SUSE Linux VM の起動に失敗します。
解決方法
この問題を解決するには、次の手順に従ってください。
Linux 復旧 VM の Chroot 環境で説明されているように、影響を受ける VM OS スナップショット ディスクから chroot 環境を復旧 VM に設定します。
GRUB ブートローダーを再インストールします。
sudo /usr/sbin/shim-install --config-file=/boot/grub2/grub.cfg
Linux 復旧 VM の Chroot 環境で説明されているように、スナップショット ディスクを問題のある VM にスワップ。
詳細については、「 grub2 エラー: シンボル 'grub_file_filters' が見つかりませんを参照してください。
シナリオ 4: SLES 15 から SLES 15 SP3 への移行が失敗する
SLES 15 から SLES 15 SP3 への移行が失敗し、次の出力が表示されます。
Can't get available migrations from server: SUSE::Connect::ApiError: The requested products 'SUSE Linux Enterprise High Availability Extension 15 SP1 x86_64, Basesystem Module 15 SP1 x86_64, SUSE Cloud Application Platform Tools Module 15 SP1 x86_64, Containers Module 15 SP1 x86_64, Desktop Applications Module 15 SP1 x86_64, Development Tools Module 15 SP1 x86_64, Legacy Module 15 SP1 x86_64, Public Cloud Module 15 SP1 x86_64, Python 2 Module 15 SP1 x86_64, SAP Applications Module 15 SP1 x86_64, Server Applications Module 15 SP1 x86_64, Web and Scripting Module 15 SP1 x86_64, Transactional Server Module 15 SP1 x86_64' are not activated on the system.
/usr/lib/zypper/commands/zypper-migration' exited with status 1
/var/log/messages
または/var/log/distro-migration.log
ファイルでも見つけることができます。
原因
このエラーは、SLES 15 から新しいバージョンへの SLES の移行が中断、停止、または誤って終了したために発生し、その結果、システムでパッケージの更新が不完全になります。
解決方法
この問題を解決するには、すべてのパッケージを SLES 15 と互換性のあるバージョンにロールバックし、もう一度移行を試してください。
システム内の重複するパッケージを確認します。
sudo zypper dup
変更をロールバックします。
sudo zypper rollback
移行をもう一度実行します。
sudo zypper migration
シナリオ 6: 移行後、SUSE が最新のカーネルで起動に失敗し、その後に登録エラーが発生する
移行後、VM は最新のカーネルで起動に失敗します。 さらに、リポジトリは機能せず、リポジトリが定義されていないことを示すエラーが表示されます。
原因
/etc/credentials.d
ディレクトリのアクセス許可が正しくないか、このディレクトリ内のファイルの内容が正しくないか破損しています。
解決方法
この問題を解決するには、次の手順に従ってください。
登録をクリーンアップします。
sudo rm /var/cache/cloudregister/
sudo rm /etc/zypp/credentials.d/
sudo chmod 0755 /etc/zypp/credentials.d*
sudo registercloudguest --force-new
登録が正常に完了したら、VM にパッチを適用して再起動します。
sudo zypper update
sudo reboot
シナリオ 7: regionService ディレクトリの問題により、SLES 12 SP5 から SLES 15 SP1 への移行が失敗する
SLES 12 SP5 から SLES 15 SP1 への移行が失敗し、次の出力が表示されます。
Skipping repository 'SLE-Module-Containers12-Updates' because of the above error.
Error retrieving metadata for 'SLE-Module-HPC12-Pool':
Not ready to read within timeout.
Skipping repository 'SLE-Module-HPC12-Pool' because of the above error.
Error retrieving metadata for 'SLE-Module-HPC12-Updates' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-HPC12-Updates' because of the above error.
Error retrieving metadata for 'SLE-Module-Legacy12-Pool' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-Legacy12-Pool' because of the above err Error retrieving metadata for 'SLE-Module-Legacy12-Updates' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-Legacy12-Updates' because of the above Error retrieving metadata for 'SLE-Module-Public-Cloud12-Pool' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-Public-Cloud12-Pool' because of the abo Error retrieving metadata for 'SLE-Module-Public-Cloud12-Updates' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-Public-Cloud12-Updates' because of the
/var/log/messages
または/var/log/distro-migration.log
ファイルで出力を見つけることもできます。
原因
regionService
ディレクトリは/var/lib
から/usr/lib
に移動しますが、DMS スクリプトは、バインド マウントを ISO ランタイム環境に設定するときに、/var/lib
の下にあるcerts
ディレクトリのみを検索します。
解決方法
この問題を解決するには、次の手順に従ってください。
以前に使用したディレクトリ
/var/lib/regionService/certs
を作成します。sudo mkdir -p /var/lib/regionService/certs
証明書ファイルを
/var/lib/regionService/certs
にコピーします。sudo cp -a /usr/lib/regionService/certs/* /var/lib/regionService/certs/
/etc/regionserverclnt.cfg
ファイルを変更し、certLocation
パラメーターを以前に使用したパス/var/lib/regionService/certs
に設定します。sudo vi /etc/regionserverclnt.cfg
変更されたファイルを確認します。
sudo cat /etc/regionserverclnt.cfg
[server] api = regionInfo #certLocation = /usr/lib/regionService/certs certLocation = /var/lib/regionService/certs regionsrv = 23.100.36.229,40.121.202.140,52.187.53.250,104.45.31.195,191.237.254.253 [instance] dataProvider = /usr/bin/azuremetadata --api latest --subscriptionId --billingTag --attestedData --signature --xml instanceArgs = msftazure httpsOnly = true
最新の
SLES15-Migration
パッケージをインストールします。sudo zypper in SLES15-Migration
移行をもう一度実行します。
sudo zypper migration
詳細については、「 SLES 12 SP5 Distribution Migration System (DMS) failedを参照してください。
シナリオ 8: /etc/pki/trust/anchors ディレクトリ内の不明なフォルダーが原因で移行が失敗する
SLES 12 SP5 から SLES 15 SP1 への移行が失敗し、 /var/log/distro_migration.log
ファイルに次のエラー メッセージが表示されます。
Mar 11 13:39:15 localhost suse-migration-prepare[1510]: IsADirectoryError: [Errno 21] Is a directory: '/system-root/etc/pki/trust/anchors/temp'
Mar 11 13:39:15 localhost systemd[1]: suse-migration-prepare.service: Main process exited, code=exited, status=1/FAILURE
Mar 11 13:39:15 localhost systemd[1]: Failed to start Prepare For Migration.
Mar 11 13:39:15 localhost systemd[1]: suse-migration-prepare.service: Unit entered failed state.
Mar 11 13:39:15 localhost systemd[1]: suse-migration-prepare.service: Failed with result 'exit-code'.
解決方法
この問題を解決するには、次の手順に従ってください。
/etc/pki/trust/anchors
ディレクトリ内のtemp
フォルダーを/backuplocation/
ディレクトリに移動します。sudo mv /etc/pki/trust/anchors/temp /backuplocation/temp
移行パッケージをインストールします。
sudo zypper install suse-migration-sle15-activation
移行をもう一度実行します。
sudo zypper migration
シナリオ 9: 移行後に SUSE の登録とリポジトリが機能しない
SLES 15 SP3 から SLES 15 SP4 への OS 移行中、プロセスは正常に完了します。 ただし、SLES 15 SP4 から SLES 15 SP5 に移行すると、移行と更新が期待どおりに機能せず、次の出力が表示されます。
sle-module-desktop-applications/15.3/x86_64 Desktop Applications Module
sle-module-development-tools/15.3/x86_64 Development Tools Module
sle-ha/15.3/x86_64 SUSE Linux Enterprise High Availability Extension 15 SP3
sle-module-sap-applications/15.3/x86 64 SAP Applications Module
sle-module-live-patching/15.3/x86_64 SUSE Linux Enterprise Live Patching
PackageHub/15.3/x86 64 SUSE Package Hub 15
sle-module-certifications/15.3/x86_64 Certifications Module
Unavailable migrations (product is not mirrored):
SUSE Linux Enterprise Server for SAP Applications 15 SP6 x86_64 (not available) Basesystem Module 15 SP6 x86_64 (not available) Certifications Module 15 SP6 x86_64 (not available) Containers Module 15 SP6 x86_64 (not available)
Desktop Applications Module 15 SP6 x86_64 (not available)
Server Applications Module 15 SP6 x86_64 (not available)
SUSE Linux Enterprise Live Patching 15 SP6 x86_64 (not available)
SUSE Package Hub 15 SP6 x86_64 (not available)
Development Tools Module 15 SP6 x86_64 (not available)
Legacy Module 15 SP6 x86_64 (not available)
Public Cloud Module 15 SP6 x86_64 (not available)
SUSE Linux Enterprise High Availability Extension 15 SP6 x86 64 (not available) Web and Scripting Module 15 SP6 x86_64 (not available)
SAP Applications Module 15 SP6 x86_64 (not available)
No migration available.
'/usr/lib/zypper/commands/zypper-migration' exited with status 1
解決方法
この問題を解決するには、次の手順に従ってください。
移行の前に、次のモジュールをアクティブ化してから非アクティブ化します。
次のモジュールをアクティブにします。
sudo SUSEConnect -p sle-module-web-scripting/15.3/x86_64 sudo SUSEConnect -p sle-module-public-cloud/15.3/x86_64 sudo SUSEConnect -p sle-module-containers/15.3/x86_64 sudo SUSEConnect -p sle-module-live-patching/15.3/x86_64
次のモジュールを非アクティブ化します。
sudo SUSEConnect -d -p sle-module-legacy/15.3/x86_64 sudo SUSEConnect -d -p sle-module-python2/15.3/x86_64 sudo SUSEConnect -d -p PackageHub/15.3/x86_64
システムでクリーンアップを実行し、再登録します。
sudo SUSEConnect --cleanup
sudo rm /etc/zypp/{credentials,services,repos}.d/*
sudo rm --force --recursive /var/cache/zypp/*
sudo rm /var/lib/cloudregister/*
sudo registercloudguest --force-new
VM の登録状態を確認します。
sudo SUSEConnect --status
シナリオ 10: SLES 15 の SP3 から SP4 への移行が、無効な資格情報とリポジトリ エラーで失敗する
SP3 から SP4 への SLES 15 の移行が失敗し、次の出力が表示されます。
sudo SUSEConnect -S
Error: Invalid system credentials, probably because the registered system was deleted in SUSE Customer Center. Check https://scc.suse.com whether your system appears there. If it does not, please call SUSEConnect --cleanup and re-register this system.
sudo zypper migration
Executing '/usr/bin/zypper patch-check-updatestack-only'
Loading repository data...
Warning: No repositories defined. Operating only with the installed resolvables. Nothing can be installed. Reading installed packages...
O patches needed (0 security patches)
Executing '/usr/bin/zypper ref'
Warning: There are no enabled repositories defined.
Use 'zypper addrepo' or 'zypper modifyrepo' commands to add or enable repositories.
repository refresh failed, exiting
'/usr/lib/zypper/commands/zypper-migration' exited with status 1
/var/log/messages
または/var/log/distro-migration.log
ファイルで出力を見つけることもできます。
原因
認定モジュールが存在するため、移行は失敗します。
解決方法
この問題を解決するには、次のコマンドを実行して更新前に認定モジュールを無効にし、移行を再試行します。
sudo SUSEConnect -d -p sle-module-certifications/15.3/x86_64
シナリオ 11: サードパーティのモジュールとセキュリティ ツールが原因で移行が失敗する
VM の移行中に、VM がハング状態になったり、ブート エラーが発生したり、zypper モジュール リポジトリで長時間のプロセスが発生したりするなどの問題が発生します。
原因
- セキュリティ ツールは、操作をブロックしたり、システム ファイルを変更したりして移行を中断し、不安定になる可能性があります。
- サード パーティのリポジトリでは、公式の SUSE パッケージと競合するパッケージが導入され、アップグレード中にさらに複雑になる可能性があります。
解決方法
SUSE 移行に進む前に、システム上のサード パーティのリポジトリとセキュリティ ツールを無効にすることをお勧めします。 移行中にそれらを無効にすることは、依存関係の競合を防ぎ、システムの安定性を確保し、公式パッケージとの一貫性を維持し、トラブルシューティングを簡素化し、よりスムーズなアップグレード プロセスを提供するために重要です。
次のステップ
問題が解決しない場合は、サポート リクエストを作成。 要求を送信するときに、トラブルシューティングのために /var/log/distromigration.log
ファイルのコピーを添付します。
サードパーティの情報に関する免責事項
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。