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

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

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

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

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


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

第2回で基盤となるOracle Linux KVMの構築は完了しましたので、今回はOracle Linux KVMにおいて管理を行うOLVMをセルフホステッドエンジン方式でデプロイするための要件、構築について解説していきます。
セルフホステッドエンジン方式の簡単な構成図を以下に示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/3e3b6573-17af-ee07-e76d-6498ef02a9ac.png)

## 環境
今回ご説明するにあたり使用したOracleKVMのOSとバージョン、OLVM(ovirt)のバージョンを以下に示します。
| 製品 | バージョン |
|:-----------|:-----------|
| Oracle Linux  | 8.8  |
| KVM Version  | 6.1.1 - 8.module+el8.8.0+21161+70fb2747  |
| Oracle Linux Virtulaization Manager/ovirt  | 	4.4.10.7-1.0.25.el8  |

## 要件
セルフホステッドエンジン方式においての要件がございますので、以下に示します。
その他ファイアウォールのポート等、詳細についてはOracle公式サイトの["5 自己ホスト・エンジンのデプロイメント"](https://docs.oracle.com/cd/F30061_01/getstart/getstarted-hosted-engine-deploy.html#hosted-engine-deploy)を参照してください。
| 項番 | 要件 |
|:-----------|:-----------|
| １  | Oracle Linux 8.5以上  |
|  ２ | OSインストール時のベース環境は"最小インストール"を選択すること  |
|  ３ | Oracle KVMに5 GB以上の/var/tmpディレクトリが存在していること  |
|  ４ | OLVM用のストレージドメインとして使用する74GiB以上の記憶域が準備できていること※1  |
| ５  | KVM,OLVMの完全修飾ドメイン名で名前解決可能であること※2  |
|  ６ | yum.oracle.comへアクセスが可能であること※3  |
| ７  | Oracle Linux Virtualization Managerリリース4.4パッケージであること  |
| ８  | firewalld.serviceが有効で起動していること  |
| ９  | SELinuxが有効であること※4  |
|  １０ | dnf-utilsがインストールされていること  |
|  １１ | 2台以上のOracle KVM Hostが存在していること※5 |

※1：OLVM用ストレージドメインを作成する際に、glusterfs, iscsi, fc, nfsの設定が必要となります。
※2：名前解決が出来ない場合、デプロイに失敗します。
※3：デフォルトの設定状態でインターネット接続がない場合、<font color="Red"> **デプロイに失敗** </font>します。
※4：公式に記載はありませんが、SELinuxが有効化されていない場合、<font color="Red"> **デプロイに失敗** </font>します。
※5：Oracle KVMが1台のみの場合、KVM停止と併せてOLVMの停止が必要となります。

## 構築手順
手順を実施するにあたり、Oracle KVMのセットアップは完了している前提で進めさせて頂きます。

## OLVMデプロイ
OLVMのデプロイはcockpitを使用したデプロイ方法とコマンドラインを使用した方法の2種類存在しています。
今回はコマンドラインを使用したデプロイ方法を解説致します。
手順詳細はOracle 公式サイトの["コマンドラインを使用したデプロイ"](https://docs.oracle.com/cd/F30061_01/getstart/getstarted-hosted-engine-deploy.html#he-deploy-cli)をご参照ください。
```ruby:qiita.rb
1.OLVMデプロイの実行
# hosted-engine --deploy
```
デプロイを実行後は対話式で設定値を入力していきます。
設定を行う中でも重要となる項目を以下の表に示します。
| No.	 | 項目 | 内容 |
|:-|:-|:-|
|  1 |  Data center [Default] | OLVMが稼働するデータセンター名  |
|   2| 	Cluster [Default]  | OLVMが稼働するクラスター名  |
|   3|  Engine VM FQDN [] |  OLVMのFQDN名 |
|  4 |  Engine VM domain [domain-name] | OLVMのドメイン名  |
|  5 | Enter root password that will be used for the engine appliance:Confirm appliance root password:  | OLVMのrootユーザーのパスワード  |
|  6 | 	SSH public key []  |  公開鍵の指定。不要であれば空欄でEnter |
|  7 | Do you want to enable ssh access for the root user? (yes, no, without-password)  |  rootユーザーのSSH接続方式 |
|  8 | How should the engine VM network be configured? (DHCP, Static)[DHCP]  | OLVMのIPアドレス設定方法  |
|  9 | Please enter the IP address to be used for the engine VM []  | OLVMのIPアドレス ※Staticを指定した場合のみ  |
|  10 | Engine VM DNS (leave it empty to skip) [xxx.xxx.xxx.xxx,yyy.yyy.yyy.yyy]  |  OLVMで設定するDNSサーバ。複数ある場合は","を使用 |
|  11 | Enter engine admin password:Confirm engine admin password:  | OLVMのadminユーザーのパスワード  |
|  12 | Please provide the hostname of this host on the management network [kvm hostname]  | Oracle KVMのホスト名  |

1～12まで設定の入力を進めると、暫くの間インストールが進みますので待機します。
気を付けたい点としては以下となります。
**・データセンターとクラスター名**
OLVMデプロイ後に作成されるデータセンター名とクラスター名となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/bb2c7bf7-6cd3-35f0-ff23-2cb8d2709785.png)

**・rootユーザーとadminユーザーの違い**
5で設定するrootユーザーは<font color="Red">  **OSへログインする** </font>際のユーザーで、
12で設定するadminユーザーは<font color="Red">  **OLVM(WebUI)へログインする** </font>ユーザーとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/93203eee-59b5-fed1-bc3c-93398812cd54.png)

**・rootユーザーのSSH接続方式** 
6,7で設定をするrootユーザーのSSH接続設定ですが、それぞれの項目は以下となります。
| 項目 | 内容 |
|:-|:-|
|yes   |  rootユーザーの<font color="Red">  **パスワード** </font>によるSSH接続の<font color="Red">  **許可** </font> |
| no  | rootユーザーのSSH<font color="Red">  **接続不可** </font>  |
| without-password  |  rootユーザーの<font color="Red">  **公開鍵** </font>によるSSH接続の<font color="Red">  **許可** </font> |

ここからはOLVMを配置するストレージドメインの設定を行います。
今回の環境ではiSCSIを使用します。
| No. | 項目 | 内容 |
|:-|:-|:-|
| 13  |  Please specify the storage you would like to use (glusterfs, iscsi, fc, nfs)[nfs] | OLVMのディスク配置先となるストレージドメイン"hosted_storage"のストレージタイプ  |
| 14  | Please specify the iSCSI portal IP address:  | iscsiターゲットサーバーのIPアドレス  |
|  15 | Please specify the iSCSI portal port [3260]:  | iscsiターゲットサーバーのポート番号  |
|  16 | Please specify the iSCSI discover user:  | iscsiターゲットサーバーのディスカバリー用ユーザ  |
|  17 | Please specify the iSCSI discover password:  | iscsiターゲットサーバーのディスカバリー用ユーザのパスワード  |
|  18 | Please specify the iSCSI portal login user:  | iscsiターゲットサーバーのポータルログインユーザ  |
|  19 |  	Please specify the iSCSI portal login password: |  iscsiターゲットサーバーのポータルログインユーザのパスワード |
|  20 | 	Please select a target (n) [n]:  |  対象のiscsiターゲット[番号] |
|  21 | Please select the destination LUN (n) [n]  |  対象のLUN[番号] |
|  22 |  Please specify the size of the VM disk in GiB: [38] |  OLVMに割り当てるディスクサイズ |

主要な設定項目は以上となります。
重要部分以外は項目の記載をしておりませんが、合計で40個程度の設定を行います。

もし、ストレージドメインの作成の途中で失敗をしてしまった場合、再度同様のストレージ(今回の場合はLUN)でストレージドメインの作成を行うと、
中途半端にデータが残っている影響で失敗する場合があります。その場合はLUNを再作成するなどしてから実行をしてみてください。

OLVMデプロイを行う際の設定は以上です。
また、OLVMのデプロイ自体は<font color="Red">  **約1時間程度** </font>かかります。

デプロイ成功時は最後に下記が出力されます。
**[ INFO ] Hosted Engine successfully deployed**

<font color="Red">  **注意すべき点** </font>を以下に記載します。
セルフホステッドエンジン方式の場合、デプロイされたOLVM(仮想マシン)の **IPv6** は自動で設定されていますが、
<font color="Red">  **IPv6を無効化しない** </font>ようにしてください。

**（Oracle公式より抜粋）** 
ノート:Oracle Linux Virtualization Managerでは、Managerを実行しているコンピュータまたは仮想マシンのIPv6を有効のままにしておく必要があります。
ManagerマシンのIPv6は、システムで使用しない場合でも無効にしないでください。

## デプロイ後の確認
OLVMデプロイ完了するとOLVMは起動された状態となっているので、WebUIへログインを行い、
今回は仮想マシンOLVM **"HostedEngine"** とストレージドメイン **"hosted_storage"** を確認します。
WebUIへ接続するにあたり、作業端末がOLVMのFQDN名の名前解決が出来ている必要がありますので、設定をしてください。

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

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

3."管理ポータル"を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/0942368a-e87e-e416-11cd-4da0ad43a6d4.png)

4.ユーザー名、パスワードを入力し"ログイン"を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/b80aff91-5b4b-d518-f241-0a4dac1f5736.png)

5.[コンピュート]→[仮想マシン]を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/cc3325e6-481e-6e33-d135-2f2b9b6c03bb.png)

6.仮想マシン一覧を確認します。
※"HostedEngine"がOLVMとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/34563710-bcab-bf50-516b-b9760b81a0bd.png)

7.[ストレージ]→[ドメイン]を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/1b1a1827-fca1-7d35-c55a-5106b643adc5.png)

8.ストレージドメインの一覧を確認します。
"hosted_storage"がOLVM用のストレージドメインとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/274545a7-0f7f-5c06-0f4b-89cdac967a96.png)

## 最後に
以上でOracle KVMの構築からOLVMインストール、OLVMデプロイ後の確認が完了となります。
最初デプロイ開始時にも確認されますが、途中でセッションが切れてしまうと<font color="Red">  **最初からやり直し** </font>となってしまう為、デプロイを始めたらセッションが切れないようにだけ注意してください。
もしOLVMのデプロイに<font color="Red">  **失敗した場合** </font>は<font color="Red">  **以下の手順を実行** </font>してから再度デプロイを行うようにしてください。
```ruby:qiita.rb
1.ホスト・エンジンのクリーン・アップ・コマンドを実行します。
# /usr/sbin/ovirt-hosted-engine-cleanup

2.記憶域を削除します。
# rm -rf <storage_repo>/*

3.ローカルの一時ホスト・エンジン仮想マシンの作成後にデプロイメントに失敗した場合は、
　ローカルの仮想マシン・リポジトリのクリーン・アップが必要になる場合があります。
# rm -rf /var/tmp/localvm*
```
次回はもう1つのOLVM構築方法となるスタンドアロン方式でのOLVMインストールについて投稿を予定しております！
最近は、Oracle KVM/OLVMを使用した仮想基盤の設計・構築などが非常に多くなっており、実績もナレッジも増えてきている状況ですので気軽にご相談ください！