はじめに
インフラ技術部のOです。
今回は、Leappを利用してOLVM4.3からOLVM4.4にアップグレードする手順と注意点についてご紹介します。
ボリューム多めですが、ぜひ最後までお付き合いください!
OLVMについての他の記事は、下記からご覧いただけます。
そもそもOLVMって何?という方や、OLVMについて知りたい!という方は、こちらから読んでいただくのがおすすめです。
「Oracle Linux KVM」の記事一覧
Leappとは
Leappとは、Linuxをインプレースアップグレードするためのツールで、Oracle Linux ではOracleの公式Yumサーバ(yum.oracle.com)で
パッケージが提供されています。
OS設定を保ったままアップグレードできるため、NW設定が複雑で再設定に手間がかかる場合や、KVMホストの台数が多い
場合などがユースケースとして挙げられます。OSクリーンインストールと異なり、アップグレード用に新規ストレージ
ドメインを用意する必要がなく、既存環境のOLVM4.3用を引き続き使用できる点も特長のひとつです。
ただし、手順が多く複雑な点と、通常のOLVMの要件に加えてLeappを実行するための要件がある点に注意が必要です。
また、アップグレード前にシステムがアップグレード可能な状態かチェックするコマンドを実行する際、生成されたレポートに問題が出力されていた場合は随時対処する必要があるため、入念な検証が必要です。
サポート対象の環境や要件など、Leappの詳細情報については下記のOracle Linuxドキュメントをご確認ください。
Upgrading Systems With Leapp - 1 About Leapp
アップグレードの流れ
前回と同様に、下記の構成を例にアップグレードの流れをご紹介します。
・OLVM:セルフホステッドエンジン方式
・KVMホスト:2台
・仮想マシン:2台
今回は、アップグレード手順をアップグレード前 / アップグレード(OLVM) / アップグレード(KVM) /アップグレード後の4つのフェーズに分けて説明します。
基本の流れはOSクリーンインストールと同じですが、OLVMとKVMホストそれぞれに対してOSアップグレードを行う点や、OLVMのデプロイが無い点が大きく異なります。
~アップグレード前~
①OLVM以外の仮想マシンの退避
②OLVMをOLVM4.3の最新バージョンへアップデート
③KVMホストを最新の状態へアップデート
④OLVMのバックアップ取得
~アップグレード(OLVM)~
①Leappのパッケージインストール
②プレアップグレードを実行
③アップグレードを実行
④古いrpmパッケージの削除
⑤OSアップデートとOLVM4.4のパッケージインストール
⑥バックアップからOLVMをリストア
~アップグレード(KVMホスト)~
①仮想マシンの退避とメンテナンスモード化
②Leappのパッケージインストール
③プレアップグレードを実行
④アップグレードを実行
⑤古いrpmパッケージの削除
⑥KVM4.4のパッケージインストール
⑦KVMホストのアクティブ化
~アップグレード後~
①クラスター互換バージョン変更
②データセンター互換バージョン変更
アップグレード前
①OLVM以外の仮想マシンの退避
OLVMが稼働しているKVMホスト(例ではKVMホスト#1)上には、OLVMのみが稼働している状態にします。
OLVM以外の仮想マシンが同一KVMホスト上で稼働している場合は、それらをすべてクラスター内の他のKVMホストへ
退避します。

②OLVMをOLVM4.3の最新バージョンへアップデート
OLVMのOSからコマンドを実行し、OLVM関連のパッケージを、OLVM4.3の最新バージョンであるOLVM4.3.10へ
アップデートします。
※アップデート失敗時に備え、アップデートを実行する前に、OLVMのバックアップを取得することをお勧めします。
※アップデートには、OLVMのエンジンサービスの停止と起動、及びOSの再起動が含まれます。

③KVMホストを最新の状態へアップデート
OLVMの管理ポータル(GUI)からKVMホストをメンテナンスモードに変更し、「アップグレード」を実行してパッケージを
最新の状態へアップデートします。
上記を全てのKVMホストで実施します。
※対象KVMホスト上で仮想マシンが稼働している場合は、クラスター内の他のホスト上へ退避してからアップデートを
実行します。
※アップデートには、OSの再起動が含まれます。
④OLVMのバックアップを取得
OLVMのOSからコマンドを実行し、OLVMのバックアップを取得します。
バックアップ時に作成されるバックアップファイルとバックアップログファイルは、LeappでOSをアップグレードした後、
OLVMをリストアする際に使用します。LeappによるOSアップグレードではアップグレード前のデータは保持されますが、
予期せぬデータ損失に備えてバックアップファイルとバックアップログファイルは外部ストレージへ退避しておきます。
※リストアの際は、バックアップファイルだけでなく、バックアップログファイルも必要になります。

アップグレード(OLVM)
まずはじめに、OLVMのアップグレードを行います。
Leappでのアップグレードは、基本的にサーバのOSにSSH接続し、コマンド操作によって進めていきます。
ここでは、各手順で実行する主なコマンドを紹介しながら説明します。
①Leappのパッケージインストール
OLVMのOSにSSH接続し、リポジトリ「ol7_leapp」を有効化してleappをインストールします。
# yum-config-manager --enable ol7_leapp
# yum install leapp
②プレアップグレードを実行
# leapp preupgrade --oraclelinux --enablerepo ol8_kvm_appstream \
--enablerepo ol8_gluster_appstream
コマンドを実行すると、システムがLeappでのアップグレードが可能な状態かをチェックした後、レポートが作成されます。
標準出力に「UPGRADE INHIBITED」が出力された場合は、アップグレードを阻害する要因があるため、作成されたレポート
を確認し、適宜対処します。
<UPGRADE INHIBITEDの出力例>
============================================================
Debug output written to /var/log/leapp/leapp-preupgrade.log
UPGRADE INHIBITED
============================================================
Upgrade has been inhibited due to the following problems:
1. Inhibitor: Missing required answers in the answer file
Consult the pre-upgrade report for details and possible remediation.
============================================================
UPGRADE INHIBITED
============================================================
============================================================
REPORT
============================================================
A report has been generated at /var/log/leapp/leapp-report.json
A report has been generated at /var/log/leapp/leapp-report.txt
============================================================
END OF REPORT
============================================================
Answerfile has been generated at /var/log/leapp/answerfile
<上記UPGRADE INHIBITEDへの対応例>
アンサーファイルに回答します。
# leapp answer --section remove_pam_pkcs11_module_check.confirm=True
全ての要因に対処した後、再度プレアップグレードを実行し、「UPGRADE INHIBITED」が出力されないことを確認します。
※プレアップグレードで「UPGRADE INHIBITED」が出力されなくなるまで、アップグレードに進むことはできません。
③アップグレードを実行
# leapp upgrade --oraclelinux --enablerepo ol8_kvm_appstream --enablerepo ol8_gluster_appstream
アップグレードが正常に終了すると、下記のように、再起動を求めるメッセージとレポートが出力されるため、
OSを再起動します。
再起動は、一度開始すると自動で複数回繰り返します。
A reboot is required to continue. Please reboot your system.
Debug output written to /var/log/leapp/leapp-upgrade.log
============================================================
REPORT
============================================================
A report has been generated at /var/log/leapp/leapp-report.json
A report has been generated at /var/log/leapp/leapp-report.txt
============================================================
END OF REPORT
============================================================
※環境がセルフホステッドエンジン方式の場合、再起動実行後にOLVMが自動で起動しません。
その場合は、OLVMが稼働していたKVMホスト上で下記コマンドを実行し、手動でOLVMを起動します。
# hosted-engine --vm-start
OSが起動すると、OL8.10へのアップグレードは完了です。バージョンを確認してみましょう。
cat /etc/oracle-release
Oracle Linux Server release 8.10
④古いrpmパッケージの削除
残ったOL7のパッケージやカーネルモジュールのディレクトリを削除します。
# dnf remove \
$( rpm -qa | grep -e '\.el7' | grep -vE '^(gpg-pubkey|libmodulemd)' | tr '\n' ' ' )
# cd /lib/modules/ ; rm -rf *.el7*
⑤OSアップデートとOLVM4.4のパッケージインストール
ここからは、OLVM4.4を構築するための手順です。
まずはリポジトリをインストールします。
# dnf install oracle-ovirt-release-el8
必要なリポジトリを有効化します。
# dnf config-manager --disable "*"
# dnf config-manager --enable ol8_UEKR7 ol8_appstream ol8_baseos_latest ol8_gluster_appstream \
ol8_kvm_appstream ovirt-4.4 ovirt-4.4-extra
OSをアップデートし、必要に応じてOSを再起動します。
# dnf update
※環境がセルフホステッドエンジン方式の場合、再起動実行後にOLVMが自動で起動しません。
その場合は、OLVMが稼働していたKVMホスト上で下記コマンドを実行し、手動でOLVMを起動します。
# hosted-engine --vm-start
OLVM4.4のパッケージをインストールします。
# dnf install ovirt-engine
⑥バックアップからOLVMをリストア
「アップグレード前」の「④OLVMのバックアップ取得」で退避しておいたバックアップファイルとバックアップログ
ファイルを、OLVMのローカル領域にコピーし、OLVMをリストアします。
新しく作成したOLVM4.4の器に、アップグレード前のOLVM構成情報を被せた状態でセットアップすることで、
既存の環境情報を保持しつつ、新しいOLVM4.4が作成されます。
# engine-backup --mode=restore --file=/<バックアップファイルのパス> \
--log=/<バックアップログファイルのパス> --provision-db --provision-dwh-db --restore-permissions
エンジンセットアップを実行します。
通常のengine-setupコマンド実行時と同様に、いくつかプロンプトで回答が必要なため、適宜回答を入力してセットアップを完了させます。
# engine-setup
【補足】アップグレード時特有の質問
1.Grafana
Grafanaとは、収集したデータを可視化することで、監視や分析を行うためのツールです。
>>>【OLVM】Grafana、使用していますか?
OLVM4.4以降、GrafanaをOLVMと連携させる機能が追加されており、セットアップ時に下記で"Yes"と回答し、
追加の質問に回答することで、このエンジンセットアップ中に機能の有効化と初期設定ができます。
ここで"No"と回答した場合でもセットアップは進行可能で、次回以降のエンジンセットアップ時に改めて有効にすることが
可能です。
Configure Grafana on this host (Yes, No) [Yes]:
2.証明書の更新
アップグレードの影響で、期限切れや期限間近でない場合でも証明書の更新を求められます。
後続のKVMホストのアップグレードに支障がでるため、ここでは"No"→"Yes"と回答して更新をスキップします。
証明書の更新が必要な場合でも、ここでは行わずに環境全体のアップグレード完了後に再度エンジンセットアップを実行して更新してください。
Renew certificates? (Yes, No) [No]: No
Skip PKI renewal process? (Yes, No) [No]: Yes
アップグレード(KVMホスト)
OLVMのアップグレードが完了したら、次は各KVMホストのアップグレードに進みます。
①仮想マシンの退避とメンテナンスモード化
対象のKVMホスト上で稼働している仮想マシンを、クラスター内の別ホストへ退避し、KVMホストを
メンテナンスモードにします。
②Leappのパッケージインストール
対象のKVMホストにSSH接続し、アップグレード(OLVM)の「①Leappのパッケージインストール」と同様の手順を実施します。
③プレアップグレードを実行
アップグレード(OLVM)の「②プレアップグレードを実行」と同様の手順を実施します。
④アップグレードを実行
アップグレード(OLVM)の「③アップグレードを実行」と同様の手順を実施します。
⑤古いrpmパッケージの削除
アップグレード(OLVM)の「④古いrpmパッケージの削除」と同様の手順を実施します。
⑥KVM4.4のパッケージインストール
リポジトリをインストールします。
# dnf install oracle-ovirt-release-el8
必要なリポジトリを有効化します。
# dnf config-manager --disable "*"
# dnf config-manager --enable ol8_UEKR7 ol8_appstream ol8_baseos_latest ol8_gluster_appstream \
ol8_kvm_appstream ovirt-4.4 ovirt-4.4-extra
KVM4.4のパッケージをインストールします。
# dnf install ovirt-host
⑦KVMホストのアクティブ化
OLVMの管理ポータルからKVMホストをアクティブ化します。
アクティブ化後、必要に応じて退避していた仮想マシンをKVMホストに戻します。
上記①~⑦を全てのKVMホストで実施します。
アップグレード後
OLVMと、全てのKVMホストのアップグレードが完了したら、データセンター、クラスターの互換バージョンを変更し、
アップグレードを完了させます。
※データセンターとクラスターの互換バージョンの役割や設定値については、前回の記事の
「互換バージョンについて その①」と「互換バージョンについて その②」で説明しています。
①クラスター互換バージョン変更
クラスターの互換バージョンを変更する前に、次の前提条件を満たしていることを確認します。
・クラスター内の全てのホストが、Oracle Linux KVM 4.4を実行していること
上記を確認した後、OLVMの管理ポータルからクラスターの互換バージョンを4.6に変更します。
※互換バージョンの変更を適用するために、OLVMを除く全ての仮想マシンの再起動が必要です(管理ポータルから実行)。

②データセンター互換バージョン変更
データセンターの互換バージョンを変更する前に、次の前提条件を満たしていることを確認します。
・データセンター内の全てのクラスターが、互換バージョン4.6であること
上記を確認した後、OLVMの管理ポータルからデータセンターの互換バージョンを4.6に変更します。
※データセンターの互換バージョン変更時は、仮想マシンの再起動は不要です。

おわりに
いかがでしたでしょうか。
Leappでのアップグレードの肝は、やはりプレアップグレードだと思います。ここでクリティカルな阻害要因が発覚すると、途端にアップグレードの難易度が上がってしまいます。そうならないためには、Leappの要件をよく調べ、ご利用中の環境がそれを満たしているかを予め確認することが重要です。
また、手順が多いため、全体の作業の流れをよく把握することも大事なポイントとなります。
逆にこれらをクリアしてしまえば、コマンドを実行して待つだけの非常に便利なアップグレード方法です。
次回はOLVMアップグレードの最終回、OLVM4.4からOLVM4.5へのアップグレードについてご紹介します。
RELATED ARTICLE関連記事
RELATED SERVICES関連サービス
Careersキャリア採用
LATEST ARTICLE
CATEGORY
- AWS (70)
- Azure (24)
- Databricks (18)
- GCP (27)
- Nutanix (14)
- Oracle Cloud Infrastructure(OCI) (22)
- Oracle Cloud VMware Solution(OCVS) (4)
- Oracle DB (94)
- Oracle Linux KVM (20)
- Python (3)
- Snowflake (22)
- Veeam Backup & Replication (13)
- インフラ (78)
- クラウド (141)
- コンテナ技術 (18)
- セキュリティ (22)
- データエンジニアリング (66)
- ネットワーク (21)
- 仮想基盤 (39)
- 生成AI (19)




