3.9. Satellite での外部データベースの使用
Red Hat Satellite のインストールプロセスの一環として、satellite-installer コマンドは、Satellite と同じサーバーに MongoDB および PostgreSQL データベースをインストールします。特定の Satellite デプロイメントでは、外部データベースを使用するとサーバーの負荷を軽減できます。ただし、Satellite Server のパフォーマンスに影響を与える可能性のある要因は多数あります。外部データベースに移動しても、特定の問題は解決されない可能性があります。
外部データベースに MongoDB と PostgreSQL のどちらのデータベースが使用できるか (または両方使用できるか) については、要件によって異なります。
Red Hat では、外部データベースのメンテナンスのサポートやそのためのツールは提供していません。これにはバックアップ、アップグレード、データベースのチューニングが含まれます。外部データベースを使用するお客様には、データベースをサポートおよび保守するための独自のデータベース管理者が必要です。
お使いの Satellite デプロイメントで外部データベースを必要とする場合は、以下の情報を使用して、Satellite から外部データベースに参照するように設定します。
3.9.1. 外部データベースとして MongoDB を使用する際の注意点 リンクのコピーリンクがクリップボードにコピーされました!
Pulp は MongoDB データベースを使用します。MongoDB を外部データベースとして使用する場合、次の情報はこのオプションが Satellite 設定に適しているかどうかを判断するのに役立ちます。
外部 MongoDB の利点
- Satellite 上の空きメモリーと空き CPU が増えます。
- Satellite 操作にマイナスの影響をもたらすことなく MongoDB サーバーのシステムを調整する柔軟性が得られます。
外部 MongoDB のマイナス点
- デプロイメントの複雑性が増し、問題解決がより困難になります。
- 外部 MongoDB サーバーの場合は、パッチおよびメンテナンス対象に新たなシステムが加わることになります。
- Satellite または Mongo データベースサーバーのいずれかにハードウェアまたはストレージ障害が発生すると、Satellite が機能しなくなります。
- Satellite と外部データベースサーバーの間でレイテンシーが発生すると、パフォーマンスに影響が出る可能性があります。
Mongo データベースが遅いと思われる場合は、Red Hat サポートに問い合わせてトラブルシューティングを行うことができます。Satellite 6 で設定上の問題または既存のパフォーマンス上の問題が発生している可能性があり、外部データベースサーバーに移行しても解決しない可能性があります。Red Hat サポートは、既存の既知の問題を調査し、Satellite エンジニアリングチームと協力して根本原因を特定することができます。
3.9.2. 外部データベースとして PostgreSQL を使用する際の注意点 リンクのコピーリンクがクリップボードにコピーされました!
Foreman、Katello、および Candlepin は PostgreSQL データベースを使用します。PostgreSQL を外部データベースとして使用する場合、次の情報はこのオプションが Satellite 設定に適しているかどうかを判断するのに役立ちます。
外部 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 サポートチームまでお問い合わせください。
3.9.3. 概要 リンクのコピーリンクがクリップボードにコピーされました!
Satellite 用にリモートデータベースを作成して使用するには、以下の手順を実行します。
- 使用「ストレージの要件とガイドライン」外部データベースのストレージ要件を計画する
- PostgreSQL で Foreman および Candlepin 用のデータベースを準備し、Foreman と Candlepin の所有権を持つ専用ユーザーを作成します。
-
pulp_databaseを所有するpulpユーザーで MongoDB を準備します。 - 最初の手順に従い、Satellite をインストールし、データベースが Satellite からアクセスできることを確認します。
-
新しいデータベースを指すように
satellite-installerのパラメーターを編集し、satellite-installerを実行します。
データベースをインストールするための Red Hat Enterprise Linux Server 7 の準備
最新の Red Hat Enterprise Linux Server 7 を搭載し、ストレージ要件を満たす新規にプロビジョニングされたシステムが必要です。「ストレージの要件とガイドライン」。
Red Hat Software Collections および Red Hat Enterprise Linux のサブスクリプションでは、外部データベースと Satellite を併用する場合に、正しいサービスレベルアグリーメントが提供されません。外部データベースに使用するベースシステムに Satellite サブスクリプションを接続する必要もあります。
- Satellite サブスクリプションの識別とホストへの接続 の手順に従って、Satellite サブスクリプションをサーバーに接続します。
MongoDB および PostgreSQL サーバーを Red Hat Enterprise Linux Server 7 にインストールするには、すべてのリポジトリーを無効にし、以下のリポジトリーのみを有効にする必要があります。
subscription-manager repos --disable '*' subscription-manager repos --enable=rhel-server-rhscl-7-rpms \ --enable=rhel-7-server-rpms
# subscription-manager repos --disable '*' # subscription-manager repos --enable=rhel-server-rhscl-7-rpms \ --enable=rhel-7-server-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.9.4. MongoDB のインストール リンクのコピーリンクがクリップボードにコピーされました!
インストール可能な MongoDB は、内部データベースのインストール中に satellite-installer ツールでインストールされたものと同じバージョンの MongoDB のみになります。MongoDB はサポート対象のバージョンであれば、Red Hat Software Collections (RHSCL) リポジトリーからまたは外部ソースからインストールすることが可能です。Satellite は MongoDB バージョン 3.4 をサポートしています。
MongoDB をインストールするには、以下のコマンドを入力します。
yum install rh-mongodb34 rh-mongodb34-syspaths
# yum install rh-mongodb34 rh-mongodb34-syspathsCopy to Clipboard Copied! Toggle word wrap Toggle overflow rh-mongodb34 サービスを起動して有効にします。
systemctl start rh-mongodb34-mongod systemctl enable rh-mongodb34-mongod
# systemctl start rh-mongodb34-mongod # systemctl enable rh-mongodb34-mongodCopy to Clipboard Copied! Toggle word wrap Toggle overflow pulp_database データベース用に、MongoDB に Pulp ユーザーを作成します。
mongo pulp_database \ --eval "db.createUser({user:'pulp',pwd:'pulp_password',roles:[{role:'dbOwner', db:'pulp_database'},{ role: 'readWrite', db: 'pulp_database'}]})"# mongo pulp_database \ --eval "db.createUser({user:'pulp',pwd:'pulp_password',roles:[{role:'dbOwner', db:'pulp_database'},{ role: 'readWrite', db: 'pulp_database'}]})"Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/opt/rh/rh-mongodb34/mongod.confファイルでバインド IP を指定します。bindIp: your_mongodb_server_bind_IP,::1
bindIp: your_mongodb_server_bind_IP,::1Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/opt/rh/rh-mongodb34/mongod.confファイルを編集してsecurityセクションの認証を有効にします。security: authorization: enabled
security: authorization: enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow rh-mongodb34-mongodサービスを再起動します。systemctl restart rh-mongodb34-mongod
# systemctl restart rh-mongodb34-mongodCopy to Clipboard Copied! Toggle word wrap Toggle overflow MongoDB にポート 27017 を開きます。
firewall-cmd --add-port=27017/tcp firewall-cmd --runtime-to-permanent
# firewall-cmd --add-port=27017/tcp # firewall-cmd --runtime-to-permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite Server から、データベースにアクセスできることをテストします。接続が成功すると、コマンドから
1が返ります。scl enable rh-mongodb34 " mongo --host mongo.example.com \ -u pulp -p pulp_password --port 27017 --eval 'ping:1' pulp_database"
# scl enable rh-mongodb34 " mongo --host mongo.example.com \ -u pulp -p pulp_password --port 27017 --eval 'ping:1' pulp_database"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.9.5. PostgreSQL のインストール リンクのコピーリンクがクリップボードにコピーされました!
インストール可能な PostgreSQL は、内部データベースのインストール中に satellite-installer ツールでインストールされたものと同じバージョンの PostgreSQL のみになります。Satellite は、Red Hat Enterprise Linux Server 7 リポジトリーを通じて利用可能な特定のバージョンの PostgreSQL のみをサポートします。バージョンがサポートされている限り、rhel-7-server-rpms リポジトリーまたは外部ソースを使用して PostgreSQL をインストールできます。サポートされているバージョンの PostgreSQL が含まれているリポジトリーと、サポートされているバージョンの詳細は、パッケージマニフェスト を参照してください。
PostgreSQL をインストールするには、以下のコマンドを入力します。
yum install postgresql-server
# yum install postgresql-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL サービスを初期化して起動し、有効にするには、以下のコマンドを実行します。
postgresql-setup initdb systemctl start postgresql systemctl enable postgresql
# postgresql-setup initdb # systemctl start postgresql # systemctl enable postgresqlCopy 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 #を削除して、着信接続をリッスンするようにします。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_server_ip/24 md5
host all all satellite_server_ip/24 md5Copy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL サービスを再起動して、変更を適用します。
systemctl restart postgresql
# systemctl restart postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 外部 PostgreSQL サーバーで postgresql ポートを開きます。
firewall-cmd --add-service=postgresql firewall-cmd --runtime-to-permanent
# firewall-cmd --add-service=postgresql # 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 Satellite と Candlepin 用にそれぞれ、データベース、および専用ロールを作成します。
CREATE USER "foreman" WITH PASSWORD 'Foreman_Password'; CREATE USER "candlepin" WITH PASSWORD 'Candlepin_Password'; CREATE DATABASE foreman OWNER foreman; CREATE DATABASE candlepin OWNER candlepin;
CREATE USER "foreman" WITH PASSWORD 'Foreman_Password'; CREATE USER "candlepin" WITH PASSWORD 'Candlepin_Password'; CREATE DATABASE foreman OWNER foreman; CREATE DATABASE candlepin OWNER candlepin;Copy 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='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"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite 用にリモートデータベースをインストールして設定するには以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
データベースのステータスを照会できます。たとえば、--only を指定して次のコマンドを入力し、postgresql または rh-mongodb34-mongod を追加します。
PostgreSQL の場合は、以下のコマンドを実行します。
foreman-maintain service status --only postgresql
# foreman-maintain service status --only postgresql
MongoDB の場合は、以下のコマンドを実行します。
foreman-maintain service status --only rh-mongodb34-mongod
# foreman-maintain service status --only rh-mongodb34-mongod