4.13. 在 Satellite 中使用外部数据库
Satellite 安装过程包括在与 Satellite 服务器相同的主机上安装 PostgreSQL 数据库。在某些 Satellite 部署中,使用外部数据库而不是默认的本地数据库有助于服务器负载。
4.13.1. 使用外部数据库配置 Satellite 服务器 复制链接链接已复制到粘贴板!
运行 satellite-installer 命令,用于安装 Satellite 服务器,还要在服务器上安装 PostgreSQL 数据库。但是,您可以将 Satellite 服务器配置为改用外部数据库。移到外部数据库分发工作负载,并可减少整个 Satellite 内存用量。
红帽不提供对外部数据库维护的支持或工具。如果您使用外部数据库部署 Satellite,则需要自己支持和维护外部数据库。
如果您计划在以下情况下使用 Satellite 部署,请考虑使用外部数据库:
- 频繁的远程执行任务。这需要在 PostgreSQL 中有大量记录,并生成繁重的数据库工作负载。
- 来自频繁存储库同步或内容视图发布的高磁盘 I/O 工作负载。这要求 Satellite 在 PostgreSQL 中为每个作业创建一个记录。
- 大量主机。
- 大量同步内容。
4.13.2. PostgreSQL 作为外部数据库注意事项 复制链接链接已复制到粘贴板!
Foreman、Katello 和 Candlepin 使用 PostgreSQL 数据库。如果要将 PostgreSQL 用作外部数据库,可以帮助您确定此选项是否适合您的 Satellite 配置。Satellite 支持 PostgreSQL 版本 13。
外部 PostgreSQL 的优点
- 在 Satellite 上增加可用内存和可用 CPU
-
在 PostgreSQL 数据库中将
shared_buffers设置为一个高数字的灵活性,而不会干扰 Satellite 上的其他服务 - 在不影响 Satellite 操作的情况下,调整 PostgreSQL 服务器系统的灵活性
外部 PostgreSQL 的缺点
- 增加了部署复杂性,导致故障排除更困难
- 外部 PostgreSQL 服务器是一个额外的系统来补丁和维护
- 如果 Satellite 或 PostgreSQL 数据库服务器出现硬件或存储故障,则 Satellite 无法正常工作
- 如果 Satellite 服务器和数据库服务器之间存在延迟,则性能可能会会受到影响
如果您怀疑 Satellite 上的 PostgreSQL 数据库会导致性能问题,请使用 Satellite 6 中的信息:如何启用 postgres 查询日志记录来检测运行查询的速度,以确定您是否有缓慢的查询。超过一秒的查询通常是由大型安装的性能问题造成的,而迁移到外部数据库可能并不能提供帮助。如果您有较慢的查询,请联系红帽支持团队。
4.13.3. 安装 PostgreSQL 复制链接链接已复制到粘贴板!
您只能在内部数据库安装过程中安装 satellite-installer 工具安装的相同版本的 PostgreSQL。Satellite 支持 PostgreSQL 版本 13。
先决条件
- 准备的主机必须满足 Satellite 存储要求。
- 准备的主机启用了基本操作系统存储库。
流程
在您的新数据库服务器中安装 PostgreSQL:
dnf install postgresql-server postgresql-contrib
# dnf install postgresql-server 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 请注意,需要调整外部 PostgreSQL 的默认配置,才能使用 Satellite。以下是推荐进行的外部数据库配置调整:
- 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 在文件末尾添加以下行以使用 SCRAM 进行身份验证:
password_encryption=scram-sha-256
password_encryption=scram-sha-256Copy 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 scram-sha-256
host all all Satellite_ip/32 scram-sha-256Copy 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 端口:
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 创建三个数据库和专用角色:一个用于 Foreman,一个用于 Candlepin,另一个用于 Pulp:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 退出
postgres用户:\q
# \qCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Satellite 服务器中,测试您可以访问数据库。如果连接成功,命令会返回
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.13.4. 将 Satellite 服务器配置为使用外部数据库 复制链接链接已复制到粘贴板!
使用 satellite-installer 命令配置 Satellite 以连接到外部 PostgreSQL 数据库。
前提条件
- 您已在 Red Hat Enterprise Linux 服务器上安装和配置了 PostgreSQL 数据库。
流程
要为 Satellite 配置外部数据库,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要为这些外部数据库启用安全套接字层(SSL)协议,请添加以下选项:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow