4.4. PostgreSQL の要件
Red Hat Ansible Automation Platform は PostgreSQL13 を使用します。
- PostgreSQL ユーザーパスワードは、データベースに保存する前に SCRAM-SHA-256 のセキュアハッシュアルゴリズムでハッシュ化されます。
-
Automation Controller のインスタンスがデータベースにアクセスできるかどうかを判断するには、
awx-manage check_dbコマンドを使用します。
| サービス | 必須 | 注記 |
|---|---|---|
| 各 Automation Controller | 40 GB の専用ハードディスクスペース |
|
| 各 Automation Hub | 60 GB の専用ハードディスクスペース | ストレージボリュームは、最小ベースライン 1500 IOPS で評価される必要があります。 |
| データベース | 20 GB の専用ハードディスクスペース |
|
PostgreSQL の設定
必要に応じて、PostgreSQL データベースを、Red Hat Ansible Automation Platform インストーラーで管理されていない個別ノードとして設定できます。Ansible Automation Platform インストーラーがデータベースサーバーを管理する場合は、大半のワークロードで一般的に推奨されているデフォルト値を使用してサーバーを設定します。ただし、スタンドアロンのデータベースサーバーノードの PostgreSQL 設定を調整できます。ansible_memtotal_mb は、データベースサーバーの合計メモリーサイズになります。
max_connections == 1024 shared_buffers == ansible_memtotal_mb*0.3 work_mem == ansible_memtotal_mb*0.03 maintenance_work_mem == ansible_memtotal_mb*0.04
max_connections == 1024
shared_buffers == ansible_memtotal_mb*0.3
work_mem == ansible_memtotal_mb*0.03
maintenance_work_mem == ansible_memtotal_mb*0.04
関連情報
PostgreSQL サーバーのチューニングの詳細は、PostgreSQL のドキュメント を参照してください。
4.4.1. 外部 (お客様がサポートする) データベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat は外部 (お客様がサポートする) データベースの使用をサポートしていませんが、外部データベースはお客様によって使用されています。以下の初期設定に関するガイダンスは、関連するサポートリクエストを回避するために、製品インストールの観点からのみ提供されています。
Automation Controller で使用するために、外部の PostgreSQL 準拠データベースにデータベース、ユーザー、およびパスワードを作成するには、次の手順に従います。
手順
PostgreSQL 準拠のデータベースサーバーをインストールし、スーパーユーザー権限で接続します。
psql -h <db.example.com> -U superuser -p 5432 -d postgres <Password for user superuser>:
# psql -h <db.example.com> -U superuser -p 5432 -d postgres <Password for user superuser>:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
-h hostname --host=hostname
-h hostname --host=hostnameCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーが実行されているマシンのホスト名を指定します。値がスラッシュで始まる場合、その値は Unix ドメインソケットのディレクトリーとして使用されます。
-d dbname --dbname=dbname
-d dbname --dbname=dbnameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 接続するデータベースの名前を指定します。これは、コマンドラインで最初の非オプション引数として
dbnameを指定するのと同等です。dbnameには接続文字列を指定できます。その場合、接続文字列パラメーターにより、競合するコマンドラインオプションがオーバーライドされます。-U username --username=username
-U username --username=usernameCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトではなく、ユーザー
usernameとしてデータベースに接続します。(これを行うには権限が必要です。)-
ユーザーに割り当てられた
createDBまたは管理者ロールを使用して、ユーザー、データベース、およびパスワードを作成します。詳細は、Database Roles を参照してください。 データベース認証情報とホストの詳細を、外部データベースとして Automation Controller インベントリーファイルに追加します。
次の例ではデフォルト値が使用されています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インストーラーを実行します。
Automation Controller で PostgreSQL データベースを使用する場合、データベースは接続ユーザーが所有するものであり、
createDBまたは管理者ロールがそのユーザーに割り当てられている必要があります。- 作成したデータベースにユーザー名、パスワード、データベース名で接続できることを確認します。
-
ユーザーの権限を確認します。ユーザーには
createDBまたは管理者ロールが必要です。
この手順の実行中、外部データベースの範囲を確認する必要があります。詳細は、https://access.redhat.com/articles/4010491 を参照してください。
4.4.2. Ansible Automation Platform PostgreSQL データベースのストレージパフォーマンスのベンチマーク リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、ストレージシステムの書き込み/読み取り IOPS パフォーマンスをベンチマークして、Ansible Automation Platform PostgreSQL データベースの最小要件が満たされているかを確認する方法について説明します。
前提条件
Flexible I/O Tester (fio) ストレージパフォーマンスベンチマークツールがインストールされている。
fio をインストールするには、root ユーザーとして次のコマンドを実行します。
yum -y install fio
# yum -y install fioCopy to Clipboard Copied! Toggle word wrap Toggle overflow fio テストデータのログファイルを保存するために十分なディスク容量がある。
この手順に示す例では、
/tmpディレクトリーに少なくとも 60GB のディスク領域が必要です。-
numjobsは、コマンドによって実行されるジョブの数を設定します。 -
size=10Gは、各ジョブによって生成されるファイルサイズを設定します。
テストデータの量を減らすには、
sizeパラメーターの値を調整します。-
手順
ランダムな書き込みテストを実行します。
fio --name=write_iops --directory=/tmp --numjobs=3 --size=10G \ --time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \ --verify=0 --bs=4K --iodepth=64 --rw=randwrite \ --group_reporting=1 > /tmp/fio_benchmark_write_iops.log \ 2>> /tmp/fio_write_iops_error.log
$ fio --name=write_iops --directory=/tmp --numjobs=3 --size=10G \ --time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \ --verify=0 --bs=4K --iodepth=64 --rw=randwrite \ --group_reporting=1 > /tmp/fio_benchmark_write_iops.log \ 2>> /tmp/fio_write_iops_error.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow ランダムな読み取りテストを実行します。
fio --name=read_iops --directory=/tmp \ --numjobs=3 --size=10G --time_based --runtime=60s --ramp_time=2s \ --ioengine=libaio --direct=1 --verify=0 --bs=4K --iodepth=64 --rw=randread \ --group_reporting=1 > /tmp/fio_benchmark_read_iops.log \ 2>> /tmp/fio_read_iops_error.log
$ fio --name=read_iops --directory=/tmp \ --numjobs=3 --size=10G --time_based --runtime=60s --ramp_time=2s \ --ioengine=libaio --direct=1 --verify=0 --bs=4K --iodepth=64 --rw=randread \ --group_reporting=1 > /tmp/fio_benchmark_read_iops.log \ 2>> /tmp/fio_read_iops_error.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 結果を確認します。
ベンチマークコマンドによって書き込まれたログファイルで、
iopsで始まる行を検索します。この行は、テストの最小値、最大値、および平均値を表示します。次の例は、ランダム読み取りテストのログファイル内の行を表示しています。
cat /tmp/fio_benchmark_read_iops.log read_iops: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64 […] iops : min=50879, max=61603, avg=56221.33, stdev=679.97, samples=360 […]
$ cat /tmp/fio_benchmark_read_iops.log read_iops: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64 […] iops : min=50879, max=61603, avg=56221.33, stdev=679.97, samples=360 […]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 独自のビジネス要件、アプリケーションのワークロード、および新しい要求に応じて、ログファイルを確認、監視、再検討する必要があります。