硬件要求

下表概述了 x86-64、ARM 和 s390x 体系结构上的 SUSE Manager 服务器与代理的硬件和软件要求。

有关 SUSE Manager for Retail 硬件要求,请参见 Retail Requirements

1. 服务器要求

SLE Micro 5.5 是容器主机的操作系统,具有如下可用磁盘空间要求:

  • 至少 100 GB 用于基础安装

  • 再加上至少 130 GB 用于储存库数据

默认情况下,SUSE Manager 服务器容器将软件包存储在 /var/lib/containers/storage/volumes/var-spacewalk/ 目录中。如果此目录耗尽了磁盘空间,储存库同步将会失败。请根据您要镜像的客户端和储存库来估算 /var/lib/containers/storage/volumes/var-spacewalk/ 目录所需的空间量。

有关文件系统和分区细节的详细信息,请参见 永久性存储和权限 和本指南的安装和部署相关章节中的详细安装说明。

Table 1. 服务器硬件要求
硬件 细节 建议

CPU

x86-64、ARM 或 s390x

至少 4 个专用 64 位 CPU 核心

RAM

至少

16 GB

建议

32 GB

磁盘空间

/(根目录)

20 GB

/var/lib/containers/storage/volumes/var-pgsql

至少 50 GB

/var/lib/containers/storage/volumes/var-spacewalk

至少所需的存储空间:100 GB(实施的检查功能将校验是否满足此要求)

* 每个 SUSE 产品和 Package Hub 需要 50 GB

为每个 Red Hat 产品提供 360 GB

/var/lib/containers/storage/volumes/var-cache

至少 10 GB 空间。 为每个 SUSE 产品增加 100 MB 空间,为每个 Red Hat 或其他产品增加 1 GB 空间。 如果服务器用于服务器间同步 (ISS),请考虑将空间翻倍

默认情况下,映像有一个 20 GB 的 / 分区。SLE Micro 5.5 的云映像只有一个 5 GB 的 / 分区。两者都完美地适用于 SUSE Manager。只要外部存储被挂载到 /var/lib/containers/storage/volumes,SUSE Manager 就不需要或不使用 / 分区上的存储空间,而是将其留给容器主机自身的管理。

SUSE Manager 性能取决于硬件资源、网络带宽、客户端与服务器之间的延迟,等等。

根据所用体验和部署方式的不同,SUSE Manager 服务器与足够数量的代理配套使用时,建议每个服务器处理的客户端不要超过 10,000 个,以便获得最佳性能。当客户端数量超过 10,000 个时,强烈建议改为使用集线器设置并咨询相关专业人员。即使优化了设置并配备了充足的代理,数量如此庞大的客户端也可能导致发生性能问题。

有关如何管理大量客户端的详细信息,请参见 Multiple Servers with Hub to Manage Large Scale Deployments

2. 代理要求

Table 2. 代理硬件要求
硬件 细节 建议

CPU

x86-64, ARM

至少 2 个专用 64 位 CPU 核心

RAM

至少

2 GB

建议

8 GB

磁盘空间

/(根目录)

至少 40 GB

/var/lib/containers/storage/volumes/srv-www

至少 100 GB

应该根据您要使用的 ISO 发行套件映像、容器和引导储存库的数量来计算存储要求。

/var/lib/containers/storage/volumes/var-cache (Squid)

至少 100 GB

默认情况下,SUSE Manager 代理容器将软件包缓存在 /var/lib/containers/storage/volumes/var-cache/ 目录中。如果可用空间不足,代理将去除旧的未使用软件包,并将其替换为较新的软件包。

鉴于这种行为:

  • 代理上的 /var/lib/containers/storage/volumes/var-cache/ 目录越大,代理与 SUSE Manager 服务器之间的流量就越少。

  • 使代理上的 /var/lib/containers/storage/volumes/var-cache/ 目录与 SUSE Manager 服务器上的 /var/lib/containers/storage/volumes/var-spacewalk/ 保持相同的大小,可以避免在首次同步后出现大量的流量。

  • SUSE Manager 服务器上的 /var/lib/containers/storage/volumes/var-cache/ 目录相比代理上的目录可能较小。有关大小估算的指导,请参见服务器要求一节。

3. 数据库要求

PostgreSQL 是唯一受支持的数据库。不支持使用远程 PostgreSQL 数据库或装有 PostgreSQL 数据库的远程文件系统(例如 NFS)。换句话说,PostgreSQL 应该位于 SUSE Manager 可用的最快的存储设备上。

由于存在潜在性能问题,我们不建议从 SUSE Manager 远程运行 PostgreSQL 数据库。虽然这种环境在很多情况下是可行的甚至非常稳定,但如果发生问题,始终存在丢失数据的风险。

如果发生这种情况,SUSE 可能无法提供帮助。

4. 永久性存储和权限

默认情况下,在部署容器时会创建永久性卷。

但是,建议将 SUSE Manager 的储存库和数据库存储在单独的存储设备上。这种设置有助于避免生产环境中丢失数据。

必须在部署容器之前设置存储设备。有关更多细节,请参见永久性容器卷

SUSE Manager 需要三个不同的卷:

  • 数据库卷:/var/lib/containers/storage/volumes/var-pgsql

  • 通道卷:/var/lib/containers/storage/volumes/var-spacewalk

  • 缓存:/var/lib/containers/storage/volumes/var-cache

我们建议使用 XFS 作为所有卷的文件系统类型。此外,对于本地安装,请考虑使用逻辑卷管理 (LVM) 来管理磁盘。用于存储储存库的磁盘大小取决于您要使用 SUSE Manager 管理的发行套件和通道数目。请参见本节中的表格来估算所需大小。

在 SUSE Manager 服务器上,使用以下命令找到所有可用的存储设备:

hwinfo --disk | grep -E "Device File:"

使用 lsblk 命令查看每个设备的名称和大小。

结合设备名使用 mgr-storage-server 命令将外部磁盘设置为数据库和储存库的位置:

mgr-storage-server <channel_devicename> [<database_devicename>]

外部存储卷将设置为挂载到 /manager_storage/pgsql_storage 的 XFS 分区。

可对通道数据和数据库使用同一个存储设备。但不建议这样做,因为不断增长的通道储存库可能会填满存储,从而给数据库完整性带来风险。使用独立的存储设备还可以提高性能。如果您想要使用单个存储设备,请结合单个设备名参数运行 mgr-storage-server

如果您正在安装代理,mgr-storage-proxy 命令只采用单个设备名参数,并将外部存储位置设置为 Squid 缓存。

为 SUSE Manager 服务器和代理创建磁盘分区时,请确保正确设置权限。

对于 /var/lib/containers/storage/volumes/var-pgsql

  • 拥有者:读取、写入、执行

  • 组:读取、执行

  • 用户:无

对于 /var/lib/containers/storage/volumes/var-spacewalk

  • 拥有者:读取、写入、执行

  • 组:读取、写入、执行

  • 用户:读取、执行

使用以下命令检查权限:

ls -l /var/lib/containers/storage/volumes/var-pgsql /var/lib/containers/storage/volumes/var-spacewalk

输出应如下所示:

/var/lib/containers/storage/volumes/var-pgsql:
total 0
drwxr-x--- 1 10556 10556 48 Apr 19 14:33 _data

/var/lib/containers/storage/volumes/var-spacewalk:
total 0
drwxr-xr-x 1 10552 root 30 Apr 19 14:34 _data

如果需要,请使用以下命令更改权限:

chmod 750 /var/lib/containers/storage/volumes/var-pgsql
chmod 775 /var/lib/containers/storage/volumes/var-spacewalk

对于拥有者,请使用以下命令:

chown postgres:postgres /var/lib/containers/storage/volumes/var-pgsql
chown wwwrun:www /var/lib/containers/storage/volumes/var-spacewalk