Oracle Linux KVMとOLVMについて

みなさん、こんにちは！
弊社のプロジェクトでは **Oracle Linux KVM** と **Oracle Linux Virtualization Manager (OLVM)** を使用することが増えてきました。
また、ありがたいことにこれらの技術に関する問い合わせも増えております。
その為、Oracle Linux KVMとOLVMについてより深く理解していただくため、上記について少しご紹介させて頂ければと思います。

## 環境
技術に関する詳細な内容は今回記載致しませんが、記事を作るにあたり使用したバージョンは以下の通りです。
| 製品 | バージョン |
|:-----------|:-----------|
| Oracle Linux  | 8.8  |
| KVM  |  6.1.1 - 8.module+el8.8.0+21161+70fb2747 |
| Oracle Linux Virtulaization Manager/ovirt  | 4.4.10.7-1.0.25.el8  |

## KVMとは
まず、Oracle KVMについてお話をする前に、KVMについて少し触れたいと思います。
KVMとは"Kernel-based Virtual Machine"の略称で、Linuxに組み込まれたオープンソースの仮想化技術のことを指しています。
Linuxカーネル上で動作し、ハイパーバイザーとして機能します。
KVMを使用すると、一つの物理マシン上で複数の異なるオペレーティングシステムを同時に稼働させることができます。
VMwareなどの他のハイパーバイザーと同様に、KVMは、仮想化によりハードウェアリソースを最大限に活用し、
システムのスケーラビリティと柔軟性を向上させることができます。

## Oracle KVMとOLVM
Oracle KVMとOLVMはOracleの仮想化技術に関連する二つの主要な概念となっており、それぞれの正式名称は以下の通りです。
Oracle KVM・・・Oracle Linux KVM
OLVM・・・Oracle Linux Virtualization Manager

次のセクションではそれぞれの詳細と役割について説明します。

## Oracle KVMとは
Oracle KVMは、Oracle Linuxに組み込まれたKVMベースの仮想化技術です。この技術を使用することで、複数の仮想マシンを稼働させることが可能となります。
コスト面においては、企業向けサポートを受けるためにはOracle Linuxのサポート契約が必要となりますが、KVM自体は無料で使用可能です。
更に、Oracle KVM+OLVMの構成で且つハードパーティショニングを使用した上でOracle製品を稼働させる場合、ライセンス費用を抑えることが可能です。詳細については、[Oracle KVM案件が増えています。](https://www.reqtc.com/blog/oracle-kvm.html)をご参照ください。

## OLVMとは
OLVMは仮想化環境の管理を容易にするソフトウェアツールで、複数のKVMホストや仮想マシンの管理が可能となります。
OLVMを使用することで、仮想化環境の設定や運用をより効率的に行うことができます。

## VMware製品との簡単な比較
VMware製品とOracleの仮想化技術を比較すると、以下のような対応関係が見られます。
Oracle Linux KVMは、VMwareのESXiに相当します。これはホストの役割を果たし、仮想マシンを実行します。
ただし、KVMにはESXiにおけるHostClientのようなWebUI存在しないので注意が必要です。
Oracle Linux Virtualization Manager (OLVM)は、VMwareのvCenter Serverに相当します。これは仮想化環境の管理ツールとして機能します。
つまり、KVMが仮想マシンをホストし、その上で稼働する仮想マシンをOLVMが管理すると覚えていただければ大丈夫です。

## OLVMの種類
OLVMには、セルフホステッドエンジンとスタンドアロンの2種類が存在します。
これらの違いは、ざっくりと説明致しますと、OLVMをKVM上に配置するかそれ以外の場所に配置するかという点です。
VMware製品の「vCenter Server Appliance」と「vCenter Server for Windows」と同様の違いになります。

セルフホステッドエンジン・・・Oracle KVM上にOLVMを作成
スタンドアロン・・・KVM上ではなく、それ以外の場所にOLVMを作成
それぞれの構成の簡単な図を下記に記載致します。
下記がセルフホステッドエンジンとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/658fbbad-a889-566f-f075-25aacd0661c5.png)

下記がスタンドアロンとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/9d3447fe-5b10-5f81-c025-3fe5c73a69b9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/1fa6fa0c-26b6-0c10-b7f7-30dc2b708fd4.png)

## 用語説明
以下にOLVMでの主要部分の名称をVMware製品と比較する画像を以下に示します。
大きな違いはそこまでありませんが、ストレージが"データストア"と"ストレージドメイン"と名称が異なっているので、そこに注意して頂ければ大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/21742352-3a0f-7d70-eea2-0af1398386b4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/6f1f3da9-3896-dc85-0836-aadf3fca6bd5.png)

## OLVM導入の流れ
OLVMの導入手順は、セルフホステッドエンジンの場合とスタンドアロンの場合で異なります。
以下に、各ケースにおける簡略化された手順を示します。

 **セルフホステッドエンジンの場合** 
1. Oracle Linuxのインストール（Oracle KVM用）
2. Oracle Linuxの設定（Oracle KVM用）
3. OLVMのデプロイ（インストール）
※Oracle KVMとして動作させるOS上で以下のコマンドを実行します。
```ruby:qiita.rb
# hosted-engine --deploy
```
 4.OLVMから他のKVMホストを追加します。

 **スタンドアロンの場合** 
1. Oracle Linuxのインストール（KVM用）
2. Oracle Linuxの設定（KVM用）
3. Oracle Linuxのインストール（OLVM用）
4. Oracle Linuxの設定（OLVM用）
5. OLVMのデプロイ（インストール）
※OLVM用のOS上で以下のコマンドを実行します。
```ruby:qiita.rb
# engine-setup
```
6.OLVMからデータセンター、クラスター作成後にKVMホストを追加します。
デプロイやインストールのコマンドを実行した後は、対話形式で設定を進めることになります。
セルフホステッドエンジンとスタンドアロン方式では設定内容や事前に設定や準備しておく機器が異なるため、注意が必要です。

## デプロイ後の状態
各方式におけるデプロイ後の状態は以下のようになります。
| コンポーネント | セルフホステッドエンジン | スタンドアロン |
|:-----------|:-----------|:-----------|
| データセンター  | 作成済み  |  未作成(defaultは存在) |
| クラスター  | 	作成済み  |  未作成(defaultは存在) |
|  仮想マシン | OLVMが稼働  | 未作成  |
| ストレージドメイン  | OLVM用ストレージ"hosted_storage"が作成済み  | 未作成  |

 **セルフホステッドエンジンの場合** 
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/b3ab39c3-24d4-ec24-d4c4-8b190e5d809e.png)

 **スタンドアロンの場合** 
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/20252f3b-247d-176e-4848-bdfe11fd564f.png)

## 最後に
簡単ではありますが、Oracle KVMとOLVMについてご紹介させて頂きました。
次回以降では実際のOLVMインストールやOLVM上での仮想マシン作成、Oracle KVM標準機能を利用したESXiからKVMへの仮想マシン移行等、機能面についてご紹介させて頂ければと思います。
ご覧頂きありがとうございました！