OLVM構築 - スタンドアロン方式

みなさん、こんにちは。
Oracle Linux KVMとOLVMについての投稿も今回で4回目となります。
第1回：Oracle Linux KVMとOLVMについて

https://qiita.com/ReQ_HY/items/bc6cb0d909bfa0fcdae6

第2回：Oracle Linux KVM 要件と構築について

https://qiita.com/ReQ_HY/items/b7f8ea4fde65f4dc7a34

第3回：OLVM構築 - セルフホステッドエンジン方式

https://qiita.com/ReQ_HY/items/82ad79dc48c7253c53fa

※まだご覧になられていない場合、ぜひご覧ください！

今回はOracle Linux KVMの管理を行うOLVMをスタンドアロン方式でインストールするための要件、構築について解説していきます。
本記事において、OLVMは異なるハイパーバイザー上に仮想マシンを作成し、その仮想マシン上へインストールを行います。
スタンドアロン方式の簡単な構成図を以下に示します。
※仮想環境だけでなく、物理環境においても同様にOLVMのインストールは可能となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/349c6e9b-b0a9-962e-ef1f-bf5b6826f626.png)

## 環境
今回ご説明するにあたり使用したOSやOLVM(ovirt)のバージョンを以下に示します。
| 製品 | バージョン |
|:-|:-|
| Oracle Linux(KVM,OLVM共通)  | 8.8  |
|  Oracle Linux Virtulaization Manager/ovirt | 4.4.10.7-1.0.25.el8  |

## 要件
OLVMをスタンドアロン方式でインストールするにあたり、環境のサイズについて検討し、把握する必要があります。
KVMホストは何台なのか、VM(仮想マシン)は何台となるのか、といった内容です。
環境のサイズについての詳細は以下Oracle公式サイトをご参照ください。
〇[Engine Host Requirements](https://docs.oracle.com/en/virtualization/oracle-linux-virtualization-manager/arch/architecture-ap-prereqs.html#ap-prereqs)

Oracleが定義している環境サイズを以下に示します。
| 環境サイズ | KVM Host(Max) | VM(Max) |
|:-|:-|:-|
| 小規模  | 	128台  |  1250台 |
| 中規模  | 512台  | 5000台  |
| 大規模  |  	1024台 |  10000台 |

環境サイズの確定後、次にそれぞれどの程度リソースが必要となるかを確認していきます。
Oracleが示す最小/推奨リソース要件を以下に示します。
| リソース | 小規模(最小/推奨) | 中規模(最小/推奨) | 大規模(最小/推奨) |
|:-|:-|:-|:-|
| CPU  | 2core/4core  |  4core/8core | 8core/16core  |
|  メモリ |  4GB/16GB | 	16GB/32GB  | 32GB/64GB  |
| ハードディスク  |  25GB/50GB | 50GB/100GB  | 75GB/150GB  |
| NIC  |  	1GbpsのNIC1枚/1GbpsのNIC2枚以上 |  	1GbpsのNIC1枚/1GbpsのNIC2枚以上 |   	1GbpsのNIC1枚/1GbpsのNIC2枚以上|

その他、OSにおいての必要となる設定を以下に示します。
| 項番 | 要件 |
|:-|:-|
|  1 | 	Oracle Linux 8.5以上  |
|  2 |  OSインストール時のベース環境は"最小インストール"を選択すること |
|  3 | 	IPv6を有効化しておくこと  |

## 構築手順
手順を実施するにあたり、Oracle Linuxのインストールは完了している前提とさせて頂きます。
### OLVM用OSセットアップ
OLVMセットアップの手順詳細は[3 インストールおよび構成](https://docs.oracle.com/cd/F30061_01/getstart/getstarted-manager-install.html#manager-install)をご確認ください。
```ruby:qiita.rb
1.dnf-utilsインストール
※パッケージインストール済みの場合は実施不要です。
# dnf install -y dnf-utils

2.リポジトリ"ol8_baseos_latest"有効化
# dnf config-manager --enable ol8_baseos_latest

3."Oracle Linux Virtualization Managerリリース4.4パッケージ"インストール
# dnf install -y oracle-ovirt-release-el8

4.キャッシュクリア
# dnf clean all

5.リポジトリ有効化確認
# dnf repolist

以下のリポジトリが有効になっていることを確認してください。
有効化されていないリポジトリが存在した場合は手順5-1.を実施して有効化してください。
〇対象リポジトリ
ol8_baseos_latest
ol8_appstream
ol8_kvm_appstream
ol8_ovirt4.4
ol8_ovirt4.4_extras
ol8_64_gluster_appstream
(VDSMの場合) ol8_64_UEKR7

5-1.リポジトリ有効化
# dnf config-manager --enable <Repository>

6.ovirt-engineインストール
# dnf install -y ovirt-engine

7.ロケール設定確認
# localectl list-locales

8.英語ローカライゼーションパッケージをインストール
# dnf install -y glibc-langpack-en

9."en_US.UTF-8"が使用可能なロケール内に存在していることを確認
# localectl list-locales | grep "en_US"
en_US
en_US.iso885915
en_US.utf8 ←今回必要となるロケール
en_US.utf8@ampm
en_US@ampm
```
以上で、OLVM用OSのセットアップが完了となります。
おまけとして、dnf/yumコマンドでインストールしたパッケージを確認する手順を以下に示します。

```ruby:qiita.rb
1.dnfコマンドのインストール/アンインストール実行一覧を確認する
# dnf history list
（実行例）
# dnf history list
ID | コマンドライン | 日時 | 動作 | 変更さ
-------------------------------------------------------------------------------------------------------------------------------------------------------------
2 | install -y dnf-utils | 2023-11-29 11:34 | I, U | 3
1 | | 2023-11-23 00:42 | Install | 449 E

2.確認したいパッケージを確認
※確認対象の項番を入力します
# dnf history info <N>
（実行例）dnf-utilsの確認
# dnf history info 2
トランザクション ID : 2
開始時間 : yyyy年mm月dd日HH時MM分SS秒
...
ユーザー : root <root>
終了コード : 成功
リリースバージョン : 8
コマンドライン : install -y dnf-utils
コメント :
変更されたパッケージ:
インストール yum-utils-4.0.21-23.0.1.el8.noarch @ol8_baseos_latest
Upgrade dnf-plugins-core-4.0.21-23.0.1.el8.noarch @ol8_baseos_latest
Upgraded dnf-plugins-core-4.0.21-19.0.1.el8_8.noarch @@System
Upgrade python3-dnf-plugins-core-4.0.21-23.0.1.el8.noarch @ol8_baseos_latest
Upgraded python3-dnf-plugins-core-4.0.21-19.0.1.el8_8.noarch @@System
```
### OLVMセットアップ
これから実際にOLVMのセットアップを行います。
```ruby:qiita.rb
1.OLVMインストール
# engine-setup
```
エンジンセットアップコマンドを実行後は、セルフホステッドエンジン方式と同様に、 **対話式** で進めていくことになります。
対話式で確認される全ての項目を記載するのではなく、注意すべき点のみ以下に示します。
〇テクノロジ・プレビュー機能
テクノロジ・プレビュー機能は、Oracleが現在も開発中ですが、<font color="red">**テストおよび評価目的の為に**</font>利用可能な機能となっております。
エンジンセットアップにおいては、これらの機能は全て<font color="red">**デフォルト値**</font>を選択することが<font color="red">**推奨**</font>されています。

テクノロジープレビューについては、以下のOLVM4.4最新リリースノートに記載がありますので、詳細については[3 テクノロジ・プレビュー](https://docs.oracle.com/cd/F30061_01/relnotes/relnotes-technology-preview.html#technology-preview)をご参照ください。

それでは、スタンドアロン方式のエンジンセットアップで確認されるテクノロジープレビュー機能の項目を以下に示します。
| No. | 項目 | 内容 |
|:-|:-|:-|
|  1 | Configure Cinderlib integration (Currently in tech preview) (Yes, No) [No]:  |  Cinderlib統合を構成する設定 |
|  2 | Configure ovirt-provider-ovn (Yes, No) [Yes]:  | OVNプロバイダに関する設定  |
|  3 | Configure Data Warehouse on this host (Yes, No) [Yes]:  | DWH機能に関する設定  |
|  4 |  	Where is the DWH database located? (Local, Remote) [Local]: | DWH-DBの実行場所に関する設定  |
|  5 | Where is the Engine database located? (Local, Remote) [Local]:  | OLVM-DBの実行場所に関する設定  |
|  6 | Use default credentials (admin@internal) for ovirt-provider-ovn (Yes, No) [Yes]:  | OVNプロバイダ資格証明に関する設定  |
|  7 | Default SAN wipe after delete (Yes, No) [No]:  | 仮想ディスク削除後にストレージブロックを削除する設定  |
|  8 | Please choose Data Warehouse sampling scale:(1) Basic (2) Full (1, 2)[1]:  | DWHのサンプリング・スケールに関する設定  |

※1：CinderlibとはCinder機能のライブラリで、Cinderとはブロックストレージ操作に関する機能です。
※8：DWHがローカルの場合はBasic、リモートの場合はFullを選択推奨。

次に、重要な項目を以下に示します。
| No.	 | 項目 | 内容 |
|:-|:-|:-|
|  1 |  Application mode (Virt, Gluster, Both) [Both]: | OLVMのモード設定  |

以下に、各項目について説明を記載します。
デフォルトはBothとなっています。
| 項目 | 内容 |
|:-|:-|
| Virt  |  OLVMが仮想マシンのみを管理 |
| Gluster  | Glusterクラスタのみを管理  |
| Both  | 仮想マシンとGlusterクラスタの両方を管理  |

※Glusterとは...データを複数のサーバー間で分散保存し、スケーラブルで冗長性のあるネットワークファイルシステムを提供するオープンソースプロジェクトです。
全ての項目で設定が完了すると最後に、 **設定内容の一覧** が表示され問題ないか確認が行われますので" **OK** "を押下してセットアップを完了させます。
問題なくセットアップが完了すると以下が表示されます。
```ruby:qiita.rb
[ INFO ] Execution of setup completed successfully
```

## デプロイ後の確認
OLVMセットアップ完了しましたので、これからWebUIへ接続を行い
セットアップ直後の設定状況を確認していきます。

接続先は以下となりますが、接続元が名前解決できていることが前提で必要となります。
（OLVMセットアップ時に表示されます。）
〇URL
　http://<OLVM-FQDN>:80/ovirt-engine
　https://<OLVM-FQDN>:443/ovirt-engine

今回確認は前回のセルフホステッドエンジン方式と比較して、以下の内容をWebUIへログインして確認します。
〇OLVM用の **仮想マシン** と **ストレージドメイン**

1.作業端末にてWebブラウザを起動します。

2.ブラウザのアドレスバーに下記を入力します。
http://<OLVM-FQDN>:80/ovirt-engine
https://<OLVM-FQDN>:443/ovirt-engine

3."管理ポータル"を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/28eb5344-dc4a-acde-42b1-16926f71a2aa.png)

4.ユーザー名、パスワードを入力し"ログイン"を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/b2a18bdd-6d0b-7acb-8750-a3a01f8fc421.png)

5.[コンピュート]→[仮想マシン]を選択し、仮想マシン一覧にOLVM用仮想マシンが存在しないことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/685aa87d-7a6e-1f20-d531-cb5169327747.png)

6.[ストレージ]→[ドメイン]を選択し、ドメイン一覧にOLVM用のストレージドメインが存在しないことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/5ca7742b-c53b-23fb-c207-895ce03eef0d.png)

## 注意すべき点
OLVM用OSセットアップで" **en_US.UTF-8** "を使用可能なロケールに追加するために、
" **glibc-langpack-en** "をインストールしたかと思います。
もしインストールしていないとどうなるかというと、OLVMのインストールで以下の様な<font color="red">**エラーが出る**</font>ことを確認しています。
```ruby:qiita.rb
..
..
[ INFO ] Creating PostgreSQL 'engine' database
[ ERROR ] Failed to execute stage 'Misc configuration': ロケール名"en_US.UTF-8"は不正です
..
..
```
その為、忘れずに英語ロケールのインストールを行って下さい！

## 最後に
以上で、OLVM-スタンドアロン方式でのインストールが完了となります。
Oracle KVM、OLVMを構築する際は環境に合わせてのセットアップ実施および<font color="red">**十分な検証**</font>を行うことを推奨いたします。

Oracle KVMのセットアップ、OLVMのデプロイ/インストールが完了となります！次回以降はOLVMの様々な機能をご紹介させて頂きます！

当社は、インフラサービスに特化し、Oracle KVMだけでなく、VMware vSphere/ESXiやMicrosoft Hyper-Vといった多種多様な仮想基盤に対応可能です。
遠慮なく何でもご相談ください！