【OLVMアップグレード】OSクリーンインストールによるOLVM4.3からOLVM4.4へのアップグレード

みなさん、こんにちは！

引き続き、OLVMのアップグレードについてご紹介していきます。
第2回となる今回は、OLVM4.3からOLVM4.4へのアップグレードを、OSクリーンインストールによる方法で進める際の流れや注意点についてご紹介します。

OLVMについての他の記事は下記からご覧いただけます。
そもそもOLVMって何？という方や、OLVMについて知りたい！という方は、こちらから読んでいただくのがおすすめです。
■基本シリーズ
第1回：Oracle KVMとOLVMについて
第2回：Oracle KVM 要件と構築について
第3回：OLVM構築 - セルフホステッドエンジン方式
第4回：OLVM構築 - スタンドアロン方式
第5回：OLVM - Oracle KVM追加・設定
第6回：OLVM - 仮想マシン作成
第7回：【OLVM アップグレード】アップグレードの種類　←前回の記事

■番外シリーズ
第1回：OLVMとen_US.UTF-8
第2回：NFSを使用したOLVMデプロイ検証記
第3回：OLVM4.5のリリース

## アップグレードの流れ
今回は、下記の構成を例にアップグレードの流れを説明します。
・OLVM：セルフホステッドエンジン方式
・KVMホスト：2台
・仮想マシン：2台
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/33ac4736-b8d2-4d2a-90a9-9303369f8899.png)

ここではアップグレード手順を、アップグレード前 / アップグレード / アップグレード後の3つのフェーズに分けて説明します。
アップグレードのフェーズに注目すると、OLVMのデプロイや、KVMホストの構築・クラスター追加がメインとなっており、新規構築との共通点が多いことがお分かりいただけると思います。

～アップグレード前～
①OLVM以外の仮想マシンの退避
②OLVMをOLVM4.3の最新バージョンへアップデート
③OLVMのバックアップを取得

～アップグレード～
①KVMホスト#1にOSインストール
②KVMホスト#1にOracle Linux KVM4.4を構築
③バックアップファイルからOLVM4.4をデプロイ
④KVMホスト#2をクラスターから削除
⑤KVMホスト#2にOSインストール
⑥KVMホスト#2にOracle Linux KVM4.4を構築
⑦KVMホスト#2をクラスターへ追加

～アップグレード後～
①クラスター互換バージョンを変更
②データセンター互換バージョンを変更

**～互換バージョンについて　その①～**
OLVMやKVMのバージョンと混乱しやすいバージョン体系として、クラスター互換バージョンとデータセンター互換
バージョンがあります。
アップグレードの流れの中でこの設定を変更する場面があるため、ここで簡単に説明します。

**クラスター互換バージョン**
そのクラスターに追加する<font color="red">**最小バージョンのKVMホスト**</font>に合わせて設定します。
※OLVM・KVM 4.4に対応する互換バージョンは4.6、OLVM・KVM 4.5に対応する互換バージョンは4.7である点に
ご注意ください。
＜例＞クラスター互換バージョンとOLVM・KVMバージョン
・互換バージョンが<font color="red">**4.3**</font>のクラスター → バージョン<font color="red">**4.3、4.4**</font>のKVMホストが稼働できる。
・互換バージョンが<font color="red">**4.6**</font>のクラスター → バージョン<font color="red">**4.4、4.5**</font>のKVMホストが稼働できる。
・互換バージョンが<font color="red">**4.7**</font>のクラスター → バージョン<font color="red">**4.5**</font>のKVMホストのみ稼働できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/a4ad25da-24ad-483b-a59e-868a058b1503.png)

**データセンター互換バージョン**
そのデータセンター内の<font color="red">**最小互換バージョンのクラスター**</font>に合わせて設定します。
＜例＞データセンター互換バージョンとクラスター互換バージョン
・互換バージョンが<font color="red">**4.3**</font>のデータセンター → 互換バージョン<font color="red">**4.3、4.6**</font>のクラスターが稼働できる。
・互換バージョンが<font color="red">**4.6**</font>のデータセンター → 互換バージョン<font color="red">**4.6、4.7**</font>のクラスターが稼働できる。
・互換バージョンが<font color="red">**4.7**</font>のデータセンター → 互換バージョン<font color="red">**4.7**</font>のクラスターのみ稼働できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/1f5b11e7-9c67-41e2-a037-9be26e9b5081.png)

### アップグレード前
#### ①OLVM以外の仮想マシンの退避
OLVMが稼働しているKVMホスト（例ではKVMホスト#1）上には、OLVMのみが稼働している状態にします。
OLVM以外の仮想マシンが同一KVMホスト上で稼働している場合は、それらをすべてクラスター内の他のKVMホストへ退避します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/7adbfe49-e2b4-4f32-9ffa-aa1a71cdbdb6.png)

#### ②OLVMをOLVM4.3の最新バージョンへアップデート
OLVMのOSからコマンドを実行し、OLVM関連のパッケージを、OLVM4.3の最新バージョンである<font color="red">**OLVM4.3.10**</font>へアップデートします。
※アップデート手順には、OLVMの<font color="red">**エンジンサービスの停止と起動**</font>、及び<font color="red">**OSの再起動**</font>が含まれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/ea37d41e-7828-4a28-b596-805ca7c99cd4.png)

#### ③OLVMのバックアップを取得
OLVMのOSからコマンドを実行し、OLVMのバックアップを取得します。
バックアップファイルは、デフォルトではOLVMのローカル領域に作成されますが、後からこのファイルをKVMホスト上で使用するため、この時点では外部ストレージへ退避しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/39734a2f-a268-458d-ae6a-ff3d54333e7d.png)

### アップグレード
#### ①KVMホスト#1へOSインストール
OLVMが稼働しているKVMホスト#1でコマンドを実行し、OLVMを停止した後、KVMホスト#1にOSをクリーンインストールします。
ここでは例として、OSはOL 8 の最新バージョンであるOL 8.10とします。
※OSインストール時は、必ず「<font color="red">**最小限のインストール**</font>」を選択し、余分なパッケージがインストールされないようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/897e99d1-5e21-427c-99dc-852200dde162.png)

#### ②KVMホスト#1にOracle Linux KVM4.4を構築
必要なパッケージをインストールし、Oracle Linux KVM4.4を実行するKVMホストを構築します。
※Oracle Linux KVM用パッケージのインストールが阻害されないよう、追加でインストールしたいパッケージや、復元したいOS設定がある場合は、<font color="red">**KVMホストを構築した後**</font>で実施します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/f7c9a518-f5dc-4c2c-9b49-deee061d7a75.png)

#### ③バックアップファイルからOLVM4.4をデプロイ
アップグレード前フェーズの手順③「OLVMのバックアップを取得」で、外部ストレージに退避しておいたOLVMのバックアップファイルを、KVMホスト#1のローカル領域へコピーし、バックアップファイルを使用してOLVMをデプロイします。
デプロイの際は、"--restore-from-file="オプションを指定することで、新規デプロイではなく、バックアップファイルの情報を使用したデプロイとなります。

# hosted-engine --deploy <font color="red">**--restore-from-file=/<バックアップファイルのパス>**</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/2fba3286-3107-48f4-b744-e4f0490b2afb.png)

デプロイ中は、新規デプロイ時と同様にデータセンター名やクラスター名を指定するよう求められますが、データ移行などをスムーズに行うために、既存環境のOLVM4.3と同一のパラメータを指定します。
ただし、デプロイ先のストレージドメインは、<font color="red">**OLVM4.3と同じストレージ領域を使用することはできません**</font>。別途新規のストレージ領域を用意し、指定する必要があります。

デプロイ完了後にOLVMの管理ポータルへアクセスすると、OLVM4.3環境で管理していたKVMホストや仮想マシンが変わらず稼働しています。

#### ～互換バージョンについて　その②～
このタイミングで、<font color="red">**Oracle Linux KVM4.3のホストは、OLVM4.4環境でも動作できるの？**</font>という疑問を持つ方も多いかと思いますが、<font color="red">**答えはイエス**</font>です。
OLVMには下位互換があり、その①で説明したクラスターやデータセンターの互換バージョンを適切に設定することで、クラスター内の最も低いバージョンのKVMホストに合わせて稼働することができます。
今回の例では、クラスター内のKVMホスト#2がまだOracle Linux KVM4.3ですが、クラスター、データセンターの互換バージョンを「4.3」と設定することで、バージョン4.4にアップグレードしたOLVMやKVMホスト#1がバージョン4.3に合わせて稼働しているため、KVMホスト#1もKVMホスト#2も問題なく稼働できています。

#### ④KVMホスト#2をクラスターから削除
続いて残りのKVMホスト#2もアップグレードします。
KVMホスト#2で稼働していた仮想マシン2台をKVM#1へ退避した後、クラスターからKVMホスト#2を削除し、OLVMの管理下から除外します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/6449990b-318e-4b96-816c-19497c6f3d6e.png)

#### ⑤KVMホスト#2へOSインストール
OLVMが稼働しているKVMホスト#1でコマンドを実行し、OLVMを停止した後、KVMホスト#1にOSをクリーンインストール
します。
ここでは例として、OSはOL 8 の最新バージョンであるOL 8.10とします。
※OSインストール時は、必ず「<font color="red">**最小限のインストール**</font>」を選択し、余分なパッケージがインストールされないようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/bd5592ff-7778-42bf-8eac-0fb14e0bd489.png)

#### ⑥KVMホスト#2にOracle Linux KVM4.4を構築
必要なパッケージをインストールし、Oracle Linux KVM4.4を実行するKVMホストを構築します。
※Oracle Linux KVM用パッケージのインストールが阻害されないよう、追加でインストールしたいパッケージや、復元したいOS設定がある場合は、<font color="red">**KVMホストを構築した後で**</font>実施します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/25663e9f-32dc-4d39-8dce-05a46ce9fb4c.png)

#### ⑦KVMホスト#2をクラスターへ追加
OLVMの管理ポータルから、KVMホスト#2をクラスターへ追加します。
追加後、必要に応じて退避していた仮想マシンをKVMホスト#2に戻します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/3bf6beab-b2f9-448a-ae83-1be488e4b5db.png)

### アップグレード後
ここまでクラスターとデータセンターの互換バージョンはバージョン4.3に合わせていましたが、OLVMとすべてのKVMホストがバージョン4.4にアップグレードしたため、互換バージョンも4.4に合わせることができます。
4.4に対応しているクラスター、データセンターの互換バージョンは4.6（少し混乱しますが、誤字ではありません!）のため、それぞれ4.6へ変更します。

#### ①クラスター互換バージョンを変更
クラスターの互換バージョンを変更する前に、次の前提条件を満たしていることを確認します。
・クラスター内の全てのホストが、Oracle Linux KVM4.4を実行していること
上記を確認した後、OLVMの管理ポータルからクラスターの互換バージョンを4.6に変更します。
※互換バージョンの変更を適用するために、OLVMを除くすべての<font color="red">**仮想マシンの再起動が必要**</font>になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/64149cb1-0353-4c45-a47a-5324e51b6cb4.png)

#### ②データセンター互換バージョンを変更
データセンターの互換バージョンを変更する前に、次の前提条件を満たしていることを確認します。
・データセンター内の全てのクラスターが、互換バージョン4.6であること

上記を確認した後、OLVMの管理ポータルからデータセンターの互換バージョンを4.6に変更します。
※データセンターの互換バージョン変更時は、仮想マシンの再起動は不要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/2e923cc6-fd6a-4966-835e-0bc8204dd689.png)

## 最後に
OLVM4.3からOLVM4.4へのアップグレードを、OSクリーンインストールによって実施する際の流れをご紹介しました。
<font color="red">**OLVM4.4用のストレージドメインを新規に用意する必要がある**</font>点が、この方法でアップグレードする際に特に注意していただきたいポイントです。
あくまで流れのため、説明を省略した部分もありますが、「クリーンインストールだと大体こんなことをするのだな」というイメージを掴んでいただく一助となれば幸いです。

次回は「LeappによるOLVM4.3からOLVM4.4へのアップグレード」についてご紹介します！