4.12. Satellite での外部データベースの使用
Red Hat Satellite のインストールプロセスの一部として、satellite-installer コマンドは PostgreSQL のデータベースを Satellite と同じサーバー上にインストールします。Satellite のデプロイメントによっては、デフォルトのローカルにあるデータベースの代わりに外部データベースを使用すると、サーバーの負荷が軽減される場合があります。
Red Hat では、外部データベースのメンテナンスのサポートやそのためのツールは提供していません。これにはバックアップ、アップグレード、データベースのチューニングが含まれます。外部データベースをサポートし、管理する自社のデータベース管理者が必要です。
Satellite 用に外部データベースを作成して使用するには、以下の手順を実行します。
- 「外部データベース用のホストの準備」。外部データベースをホストするように Red Hat Enterprise Linux 8 サーバーを準備します。
- 「PostgreSQL のインストール」。Satellite、Candlepin、Pulp のデータベースを使用して PostgreSQL を準備し、それらを所有する専用ユーザーを配置します。
-
「外部データベースを使用するための Satellite Server の設定」 新規データベースを参照するように
satellite-installerのパラメーターを編集し、satellite-installerを実行します。
4.12.1. 外部データベースとして PostgreSQL を使用する際の注意点 リンクのコピーリンクがクリップボードにコピーされました!
Foreman、Katello、および Candlepin は PostgreSQL データベースを使用します。PostgreSQL を外部データベースとして使用する場合は、以下の情報を参照してお使いの Satellite 設定にこのオプションが適しているかどうかを判別してください。Satellite は PostgreSQL バージョン 12 をサポートします。
外部 PostgreSQL の利点
- Satellite 上の空きメモリーと空き CPU が増えます。
-
PostgreSQL データベースで
shared_buffersを高い値に設定しても、Satellite 上の他のサービスの妨げるリスクがありません。 - Satellite 操作にマイナスの影響をもたらすことなく PostgreSQL サーバーのシステムを調整する柔軟性が得られます。
外部 PostgreSQL のデメリット
- デプロイメントの複雑性が増し、問題解決がより困難になります。
- 外部 PostgreSQL サーバーの場合は、パッチおよびメンテナンス対象に新たなシステムが加わることになります。
- Satellite または PostgreSQL データベースサーバーのいずれかにハードウェアまたはストレージ障害が発生すると、Satellite が機能しなくなります。
- Satellite Server とデータベースサーバーの間でレイテンシーが発生すると、パフォーマンスに影響が出ます。
お使いの Satellite 上の PostgreSQL データベースが原因でパフォーマンスの低下が生じている可能性がある場合は、Satellite 6: How to enable postgres query logging to detect slow running queries を参照して時間のかかっているクエリーがあるかどうか判定します。1 秒以上かかるクエリーがある場合は、通常、大規模インストールのパフォーマンスが原因であることが多く、外部データベースに移行しても問題解決が期待できません。時間のかかっているクエリーがある場合は、Red Hat サポートチームまでお問い合わせください。
4.12.2. 外部データベース用のホストの準備 リンクのコピーリンクがクリップボードにコピーされました!
新しくプロビジョニングされたシステムに最新の Red Hat Enterprise Linux 8 をインストールして、外部データベースをホストします。
Red Hat Enterprise Linux のサブスクリプションでは、外部データベースと Satellite を併用する場合に、正しいサービスレベルアグリーメントが提供されません。外部データベースに使用するベースオペレーティングシステムにも、Satellite サブスクリプションをアタッチする必要があります。
前提条件
- 準備したホストが Satellite の ストレージ要件 を満たしている。
手順
- Satellite Infrastructure サブスクリプションの割り当て の手順に従って、Satellite サブスクリプションをサーバーに割り当てます。
すべてのリポジトリーを無効にし、以下のリポジトリーのみを有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のモジュールを有効にします。
dnf module enable satellite:el8
# dnf module enable satellite:el8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記モジュール
satellite:el8を有効にすると、postgresql:10およびruby:2.5との競合に関する警告が表示されます。これは、これらのモジュールが Red Hat Enterprise Linux 8 でデフォルトのモジュールバージョンに設定されているためです。モジュールsatellite:el8には、モジュールpostgresql:12およびruby:2.7への依存関係があり、satellite:el8モジュールで有効になります。これらの警告はインストールプロセスの失敗の原因にはならないため、安全に無視できます。Red Hat Enterprise Linux 8 のモジュールとライフサイクルストリームの詳細は、Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。
4.12.3. PostgreSQL のインストール リンクのコピーリンクがクリップボードにコピーされました!
インストール可能な PostgreSQL は、内部データベースのインストール中に satellite-installer ツールでインストールされたものと同じバージョンの PostgreSQL のみになります。Satellite は PostgreSQL バージョン 12 をサポートします。
手順
PostgreSQL をインストールするには、以下のコマンドを入力します。
dnf install postgresql-server postgresql-evr postgresql-contrib
# dnf install postgresql-server postgresql-evr postgresql-contribCopy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL を初期化するには、以下のコマンドを入力します。
postgresql-setup initdb
# postgresql-setup initdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/lib/pgsql/data/postgresql.confファイルで以下を行います。vi /var/lib/pgsql/data/postgresql.conf
# vi /var/lib/pgsql/data/postgresql.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite で機能するには、外部 PostgreSQL のデフォルト設定を調整する必要があることに注意してください。基本的に推奨される外部データベース設定の調整は次のとおりです。
- checkpoint_completion_target: 0.9
- max_connections: 500
- shared_buffers: 512MB
- work_mem: 4MB
#を削除して、着信接続をリッスンするようにします。listen_addresses = '*'
listen_addresses = '*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow /var/lib/pgsql/data/pg_hba.confファイルを編集します。vi /var/lib/pgsql/data/pg_hba.conf
# vi /var/lib/pgsql/data/pg_hba.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の行をファイルに追加します。
host all all Satellite_ip/32 md5
host all all Satellite_ip/32 md5Copy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL サービスを起動し、有効にするには、以下のコマンドを実行します。
systemctl enable --now postgresql
# systemctl enable --now postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 外部 PostgreSQL サーバーで postgresql ポートを開きます。
firewall-cmd --add-service=postgresql
# firewall-cmd --add-service=postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を永続化します。
firewall-cmd --runtime-to-permanent
# firewall-cmd --runtime-to-permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow postgresユーザーに切り替え、PostgreSQL クライアントを起動します。su - postgres -c psql
$ su - postgres -c psqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 3 つのデータベースと専用のロールを作成します。1 つは Satellite 用、1 つは Candlepin 用、もう 1 つは Pulp 用です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pulp データベースに接続します。
postgres=# \c pulpcore You are now connected to database "pulpcore" as user "postgres".
postgres=# \c pulpcore You are now connected to database "pulpcore" as user "postgres".Copy to Clipboard Copied! Toggle word wrap Toggle overflow hstoreエクステンションを作成します。pulpcore=# CREATE EXTENSION IF NOT EXISTS "hstore"; CREATE EXTENSION
pulpcore=# CREATE EXTENSION IF NOT EXISTS "hstore"; CREATE EXTENSIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow postgresユーザーをログアウトします。\q
# \qCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite Server から、データベースにアクセスできることをテストします。接続に成功した場合には、コマンドは
1を返します。PGPASSWORD='Foreman_Password' psql -h postgres.example.com -p 5432 -U foreman -d foreman -c "SELECT 1 as ping" PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping" PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"
# PGPASSWORD='Foreman_Password' psql -h postgres.example.com -p 5432 -U foreman -d foreman -c "SELECT 1 as ping" # PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping" # PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.12.4. 外部データベースを使用するための Satellite Server の設定 リンクのコピーリンクがクリップボードにコピーされました!
satellite-installer コマンドを使用して Satellite が外部の PostgreSQL データベースに接続するように設定します。
前提条件
- Red Hat Enterprise Linux サーバーに PostgreSQL データベースをインストールおよび設定していること。
手順
Satellite の外部データベースを設定するには以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらの外部データベースに対して Secure Sockets Layer (SSL) プロトコルを有効にするには、次のオプションを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow