2.4. PostgreSQL 要求
Red Hat Ansible Automation Platform 使用 PostgreSQL 13。
- 在将 PostgreSQL 用户密码保存到数据库前,会使用 SCRAM-SHA-256 安全散列算法对其进行处理。
-
要确定您的自动化控制器实例是否可以访问数据库,则可以使用
awx-manage check_db
命令。
服务 | 必填 | 备注 |
---|---|---|
每个自动化控制器 | 40 GB 专用硬盘空间 |
|
每个自动化中心 | 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
其他资源
有关调整 PostgreSQL 服务器的详情,请查看 PostgreSQL 文档。
2.4.1. 设置外部(客户支持)数据库
红帽不支持使用外部(客户支持)数据库,但客户使用它。以下有关 inital 配置的指导只从产品安装角度提供,以避免相关的支持请求。
要在外部 PostgreSQL 兼容数据库中创建用于自动化控制器的数据库、用户和密码,请使用以下步骤。
流程
安装,然后连接到具有超级用户权限的 PostgreSQL 兼容数据库服务器。
# psql -h <db.example.com> -U superuser -p 5432 -d postgres <Password for user superuser>:
其中:
-h hostname --host=hostname
指定运行服务器的机器的主机名。如果该值以斜杠开头,它将用作 Unix-domain 套接字的目录。
-d dbname --dbname=dbname
指定要连接到的数据库的名称。这等同于将
dbname
指定为命令行中的第一个非选项参数。dbname
可以是连接字符串。如果是,则连接字符串参数会覆盖任何冲突的命令行选项。-U username --username=username
以用户
用户名
而非默认值连接到数据库。(您必须有权限才能这样做。)-
使用分配给用户的
createDB
或管理员角色,创建用户、数据库和密码。如需更多信息,请参阅 数据库角色。 将数据库凭据和主机详情作为外部数据库添加到自动化控制器清单文件。
以下示例中使用了默认值:
[database] pg_host='db.example.com' pg_port=5432 pg_database='awx' pg_username='awx' pg_password='redhat'
运行安装程序。
如果您将 PostgreSQL 数据库与自动化控制器搭配使用,则数据库由 connect 用户所有,且必须为其分配
createDB
或管理员角色。- 检查您是否能够使用用户、密码和数据库名称连接到创建的数据库。
-
检查用户的权限,该用户应具有
createDB
或 administrator 角色。
在此过程中,您必须检查外部数据库覆盖。如需更多信息,请参阅 https://access.redhat.com/articles/4010491
2.4.2. Ansible Automation Platform PostgreSQL 数据库的基准测试存储性能
以下流程描述了如何对存储系统的写入/读取 IOPS 性能进行基准测试,以检查是否满足最低 Ansible Automation Platform PostgreSQL 数据库要求。
先决条件
您已安装了 Flexible I/O Tester (fio) 存储性能基准工具。
要安装 fio,以 root 用户身份运行以下命令:
# yum -y install fio
您有足够的磁盘空间来存储 fio 测试数据日志文件。
该流程中显示的示例至少需要 60GB 磁盘空间在
/tmp
目录中:-
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=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
查看结果:
在基准命令编写的日志文件中,搜索以
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 […]
您必须根据您自己的业务需求、应用程序工作负载和新需求审核、监控和重新查看日志文件。