レック・テクノロジー・コンサルティング株式会社TECH BLOG

OLVMとen_US.UTF-8

初めに

インフラ技術部のIです。
今回も引き続き、Oracle KVM/OLVMについての投稿となります。

第1回:Oracle KVMとOLVMについて
第2回:Oracle KVM 要件と構築について
第3回:OLVM構築 - セルフホステッドエンジン方式
第4回:OLVM構築 - スタンドアロン方式
※まだご覧になられていない場合、ぜひご覧ください!

今回は番外編として、OLVMをスタンドアロン方式でインストールする際に必要となるen_US.UTF-8について、詳しく記載いたします。

環境

今回説明するにあたり使用したOSやOLVM(ovirt)のバージョンを以下に示します。

製品 バージョン
Oracle Linux(KVM,OLVM共通) 8.8
Oracle Linux Virtulaization Manager/ovirt 4.4.10.7-1.0.25.el8

概要

今回の記事の内容をざっくり説明すると、以下の4点となります。

  1. 1.en_US.UTF-8はどこで使われるのか
  2. 2.セルフホステッドエンジン方式とスタンドアロン方式では何が違うのか
  3. 3.OLVM(WebUI)で表示される言語はどうなるのか
  4. 4.OLVMインストール以外でも何か使用されたり設定が必要なのか

1.en_US.UTF-8はどこで使われるのか

前回のOLVM構築 - スタンドアロン方式でも記載させて頂きましたが、
OLVM用のOSにen_US.UTF-8が存在していないと、OLVMインストール時に以下の様なエラーが出力されて失敗してしまいます。

..
..
[ INFO ] Creating PostgreSQL 'engine' database
[ ERROR ] Failed to execute stage 'Misc configuration': ロケール名"en_US.UTF-8"は不正です
..
..

"システムにen_US.UTF-8が認識できない、存在していない"というエラー内容となっています。
上記を踏まえてen_US.UTF-8はOLVMインストールを行う時に何に使用されているのか、またOracle公式に記載されているのか等を説明いたします。

まず初めに、en_US.UTF-8の要件についてはOracle公式の要件一覧には記載されていません
ただし、OLVMの元となっているovirtインストールガイドには以下の様に記載があります。

Installing oVirt as a standalone Manager with local databases
Appendix A: Preparing a Local Manually Configured PostgreSQL Database
engine-setupおよびengine-backup --mode=restoreコマンドは、システムロケールが異なる場合でも、en_US.UTF8ロケールでのシステムエラーメッセージのみをサポートします。

そして、OLVMインストール時にどこで使用されているかというと、oVirtインストールドキュメント内の手順にも記載されているようにPostgresqlデータベース"engine"を作成する際にen_US.UTF-8が使用されています。
具体的には以下の様なコマンドでOLVMインストール時にDBを作成します。

(コマンド例)

postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';

その為、OLVMインストール時にen_US.UTF-8が必要となっています。

2.セルフホステッドエンジン方式とスタンドアロン方式の違い

次にOLVM構築方式の違いでどのように変わるのかについて説明をいたします。

・セルフホステッドエンジン:仮想マシンとしてデプロイ
・スタンドアロン:OSをインストール後に、OLVMをOSへインストール

OLVM構築という点で両者では上記の様な違いがあります。

スタンドアロン方式では、日本ではOSインストール時において言語を日本語でインストールすることが多いかと思います。
その場合、OSロケールがLANG=ja_JP.UTF-8として設定されるため追加でen_US.UTF-8が必要となってしまいます。

言語を英語でインストールした場合はen_US.UTF-8がインストールされて且つOSロケールへ設定されるため
言語パッケージのインストールは不要となります。

セルフホステッドエンジン方式ではどうなっているのかというと、OSロケールはen_US.UTF-8で設定されてデプロイされ、データベースも構築されるため、仮想基盤となるOracle KVMでの設定は不要となっています。

最後にそれぞれのPostgresqlデータベースを以下に示します。

20.png

3.OLVM(WebUI)での表示言語


OSロケールやDBをen_US.UTF-8にしてしまった時、OLVM(WebUI)の言語はどうなるのかが気になってしまう所かと思います。

結論、WebUIの表示言語については全く関係ありません

Oracle公式サイトには以下の記載があります。

3.インストールおよび構成 - 管理ポータルへのログイン - ログイン
管理ポータル(WebUI)は、複数の言語で表示できます。 デフォルトの言語は、Webブラウザのロケールに基づきます。

14.png

4.その他追加設定の要否

結論、設定が必要となる項目があります。

先程記載させて頂いた、ovirt側のインストールサマリの注意事項となります。

engine-setupおよびengine-backup --mode=restoreコマンドは、システムロケールが異なる場合でも、en_US.UTF8ロケールで
 のシステムエラーメッセージのみをサポートします。
・postgresql.confファイルのロケール設定はen_US.UTF8に設定されていなければなりません。

OLVMインストール以外にもOLVMのリストアを行う場合にpostgresql.confen_US.UTF-8が設定されている必要があります。
※OLVMのリストアについての詳細は記載いたしません。

設定されていないと以下の様にOLVMリストアを行う際にエラーとなります。


FATAL : lc_messages is set to an unsupported value in postgresql.conf. Please set it to en_US.UTF-8 and restart postgresql.

上記はlc_messagesをen_US.UTF-8で設定してpostgresqlを再起動してくださいというエラー内容となります。

具体的に修正すべき設定ファイルおよび設定項目を以下に示します。
[ファイル]
/var/lib/pgsql/data/postgresql.conf
[項目]
lc_messages = 'en_US.UTF-8'

PostgreSQLの設定項目についての詳細は以下をご確認ください。
PostgreSQL 15.4文書 - 24.1. ロケールのサポート

最後に

OLVMとen_US.UTF-8の関係性については以上となります。
弊社では日頃よりOracle KVMやOLVMの検証を自社環境で行っており、その経験を活かしてお客様へのOracle KVM、OLVMの導入を対応させて頂いております。

なにかお困りごとがあれば、ぜひお気軽にご相談ください!

この記事をシェアする

  • Facebook
  • X
  • Pocket
  • Line
  • Hatena
  • Linkedin

資料請求・お問い合わせはこちら

ページトップへ戻る