2.4. PostgreSQL 要求


Red Hat Ansible Automation Platform 使用 PostgreSQL 13。

  • 在将 PostgreSQL 用户密码保存到数据库前,会使用 SCRAM-SHA-256 安全散列算法对其进行处理。
  • 要确定您的自动化控制器实例是否可以访问数据库,则可以使用 awx-manage check_db 命令。
表 2.2. 数据库
服务必填备注

每个自动化控制器

40 GB 专用硬盘空间

  • 有专用的 20 GB 的 /var/ 目录。
  • 存储卷的最低基础线必须被定为 1500 IOPS。
  • 项目存储在控制和混合节点上,作业持续时间也存储在执行节点上。如果集群有很多大型项目,请考虑在 /var/lib/awx/projects 中使用两倍的 GB,以避免磁盘空间错误。
  • 建议大于 150 GB

每个自动化中心

60 GB 专用硬盘空间

存储卷的最低基础线必须被定为 1500 IOPS。

数据库

20 GB 专用硬盘空间

  • 建议大于 150 GB
  • 存储卷必须为高基线 IOPS 进行评级 (1500 或更多)。
  • 所有自动化控制器数据都存储在数据库中。通过管理的主机数量、作业运行数量、事实缓存中存储的 fact 数量以及单个作业中的任务数量,数据库存储会增加。例如,一个 playbook 在 250 个主机中每小时运行一次(一天 24 次),20 个任务每周会在数据库中存储超过 800000 个事件。
  • 如果没有为数据库保留足够空间,旧的作业和 fact 将需要定期清理。如需更多信息,请参阅自动控制器管理指南中的管理作业

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 兼容数据库中创建用于自动化控制器的数据库、用户和密码,请使用以下步骤。

流程

  1. 安装,然后连接到具有超级用户权限的 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

    以用户 用户名 而非默认值连接到数据库。(您必须有权限才能这样做。)

  2. 使用分配给用户的 createDB 或管理员角色,创建用户、数据库和密码。如需更多信息,请参阅 数据库角色
  3. 将数据库凭据和主机详情作为外部数据库添加到自动化控制器清单文件。

    以下示例中使用了默认值:

    [database]
    pg_host='db.example.com'
    pg_port=5432
    pg_database='awx'
    pg_username='awx'
    pg_password='redhat'
  4. 运行安装程序。

    如果您将 PostgreSQL 数据库与自动化控制器搭配使用,则数据库由 connect 用户所有,且必须为其分配 createDB 或管理员角色。

  5. 检查您是否能够使用用户、密码和数据库名称连接到创建的数据库。
  6. 检查用户的权限,该用户应具有 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 参数的值。

流程

  1. 运行随机写入测试:

    $ 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
  2. 运行随机读测试:

    $ 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
  3. 查看结果:

    在基准命令编写的日志文件中,搜索以 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
    […]

    您必须根据您自己的业务需求、应用程序工作负载和新需求审核、监控和重新查看日志文件。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.