硬件要求

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

基于 ppc64le 或 s390x 体系结构的 SUSE Multi-Linux Manager 安装无法使用安全引导来引导网络客户端。存在此限制是因为 shim 引导加载程序不适用于这两种体系结构。

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

1. 服务器要求

容器主机的操作系统为 SL Micro 6.1 或 SUSE Linux Enterprise Server 15 SP7。

在下文中,仅当 SUSE Linux Enterprise Server 作为已安装的主机操作系统会产生影响时,才会明确提及该系统;否则,我们将使用 SL Micro 或直接统称“主机操作系统”。

操作系统为 SL Micro 的容器主机的可用磁盘空间要求如下:

  • 至少 100 GB 用于基础安装

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

使用 SUSE Linux Enterprise Server 操作系统时,所需的磁盘空间可能要多很多,具体取决于所选软件的数量。

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

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

Table 1. 服务器硬件要求
硬件 详细信息 建议

CPU

x86-64、ARM、ppc64le 或 s390x

至少 4 个专用 64 位 CPU 核心

RAM

至少

16 GB

建议

32 GB

磁盘空间

/(根目录)

40 GB

/var/lib/containers/storage/volumes

至少 150 GB(取决于产品数量)

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

至少 50 GB

交换空间

额外配置交换空间有助于提升系统性能。SUSE 建议使用交换文件而非交换分区。有关交换空间的详细信息,请参见 交换空间

8 到 12 GB

默认情况下,映像有一个 40 GB 的 / 分区。SL Micro 6.1 的云映像只有一个 5 GB 的 / 分区。两者均与 SUSE Multi-Linux Manager 完美兼容。只要将外部存储设备挂载到 /var/lib/containers/storage/volumes,SUSE Multi-Linux Manager 便无需或不会使用 / 分区的存储资源,而是交由容器主机自行管理该部分存储空间。

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

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

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

2. 代理要求

容器主机的操作系统为 SL Micro 6.1 或 SUSE Linux Enterprise Server 15 SP7。

最低要求适用于快速测试安装,例如包含一个客户端的代理。如果您想要使用生产环境,请使用建议的值开始操作。

Table 2. 代理硬件要求
硬件 详细信息 建议

CPU

x86-64、ARM

至少 2 个专用 64 位 CPU 核心

建议

与最低要求相同

RAM

至少

2 GB

建议

8 GB

磁盘空间

/(根目录)

至少 40 GB

/var/lib/containers/storage/volumes

至少 100 GB

交换空间

额外配置交换空间有助于提升系统性能。SUSE 建议使用交换文件而非交换分区。有关交换空间的详细信息,请参见 交换空间

4 到 8 GB

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

鉴于这种行为:

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

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

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

一般情况下,SUSE 建议将缓存目录的值调整为可用空间的 80 %。在服务器上生成代理配置时会设置 cache_dir 值。无法直接在 squid.conf 中设置该选项。

3. 交换空间

不同系统的工作负载各不相同。无论 RAM 总容量是多少,对于工作负载较大或波动不定的系统而言,额外配置交换空间均有助于提升性能。建议将交换空间部署在可用的最快存储设备上(例如 SSD)。SUSE 建议使用交换文件而非交换分区。

有关交换空间大小建议,请参见上文表格。

以下外壳命令片段可创建一个 8GiB 大小的交换文件。

BtrFS 文件系统中的交换文件会导致无法创建该卷的快照。在下面的示例中,/var 已排除在 Snapper 快照范围之外,因此使用 /var/swap 创建交换文件是安全的。

## setup swapfile at /var/swap
# run following as a root user

# allocate 8GiB for swap file
fallocate -l 8G /var/swap
# ensure CoW is disabled for the swap file
chattr +C /var/swap
# allow only root access
chmod 600 /var/swap
# make swap file based on allocated file
mkswap /var/swap
# activate swap use for the running system
swapon /var/swap
# activate swap during the next boots
echo "/var/swap swap swap defaults 0 0" >> /etc/fstab

4. 数据库要求

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

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

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

5. 永久性存储和权限

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

但建议您将卷存储在一个或多个单独的存储设备上。这种设置有助于避免生产环境中丢失数据。此操作可在部署容器后再进行。

最好在首次部署容器之后设置存储设备。有关更多细节,请参见 永久性容器卷

我们建议使用 XFS 作为所有卷的文件系统类型。用于存储储存库的磁盘大小取决于您要使用 SUSE Multi-Linux Manager 管理的发行套件和通道数目。请参见本节中的表格来估算所需大小。

请勿为 Cobbler 或 PostgreSQL 使用 NFS 格式的存储空间,此外在 SELinux 环境中也不要使用 NFS。这些场景不受支持。

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

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

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

使用 mgr-storage-server 命令并加上设备名,可将外部磁盘设置为数据存储位置,您还可以选择指定服务器自身的磁盘用于数据库:

mgr-storage-server <storage-disk-device> [<database-disk-device>]

例如:

mgr-storage-server /dev/nvme1n1 /dev/nvme2n1

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

此命令将在 /var/lib/containers/storage/volumes 中创建永久性存储卷。

有关详细信息,请参见 永久性容器卷

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

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

6. 逻辑卷管理 (LVM)

对于所有类型的虚拟机 (VM),通常都不需要 LVM,也不建议使用。磁盘设置是虚拟的,因此卷可以使用单独的磁盘,这也是建议的做法。

对于其他部署,也建议为卷使用单独的磁盘。

在 SUSE Multi-Linux Manager 服务器的容器主机上,mgr-storage-server 命令会将 /var/lib/containers/storage/volumes 目录的完整内容迁移到单独的磁盘,并将其重新挂载到 /var/lib/containers/storage/volumes

(可选)如果指定了第二个设备名称,mgr-storage-server 会将 /var/lib/containers/storage/volumes/var-pgsql 数据库目录的内容迁移到另一块单独的磁盘,并将该磁盘重新挂载到 /var/lib/containers/storage/volumes/var-pgsql

同样地,在 SUSE Multi-Linux Manager 代理的容器主机上,mgr-storage-proxy 命令会将 /var/lib/containers/storage/volumes 目录的完整内容迁移到单独的磁盘,并将该磁盘重新挂载到 /var/lib/containers/storage/volumes