在 Red Hat OpenShift 虚拟化中部署虚拟机的最佳实践
了解在 OpenShift 虚拟化中部署新虚拟机以及将现有虚拟机从 VMware vSphere 导入 OpenShift 容器平台上的 OpenShift 虚拟化的最佳实践。
虚拟机性能
在 OpenShift Virtualization 中创建新的 VM 时,您需要考虑访问模式以及将在 VM 上运行的工作负载的性能(IOP 和吞吐量)要求。这将影响您需要在 OpenShift 容器平台中的 OpenShift 虚拟化上运行的虚拟机数量以及您需要为虚拟机磁盘使用的存储类型。
您要为虚拟机磁盘选择的存储类型受以下因素影响:
-
工作负载数据访问所需的协议访问
-
您需要的访问模式(RWO 与 RWX)
-
您的工作负载所需的性能特征
有关更多详细信息,请参阅下面的存储配置部分。
VM 工作负载的高可用性
OpenShift Virtualization 支持 VM 的实时迁移。实时迁移允许正在运行的虚拟机实例 (VMI) 移动到另一个节点,而不会中断工作负载。迁移有助于集群升级期间或任何需要耗尽节点以进行维护或配置更改时的平稳过渡。实时迁移需要使用提供 ReadWriteMany (RWX) 访问模式的共享存储解决方案。 VM 磁盘应由提供 RWX 访问模式的存储选项支持。 OpenShift Virtualization 将检查 VMI 是否可实时迁移,如果是,则 evictionStrategy 将设置为 LiveMigrate。看"Red Hat 文档中关于实时迁移部分"了解详情。
使用支持RWX访问模式的驱动程序非常重要。有关哪些ONTAP驱动程序支持 RWX 访问模式的更多详细信息,请参阅下面的存储配置部分。
存储配置
Trident CSI 配置器提供了多个驱动程序(nas、nas-economy、nas-flexgroup、san 和 san-economy),用于配置由NetApp存储选项支持的存储。
使用的协议: * nas 驱动程序使用 NAS 协议(NFS 和 SMB) * san 驱动程序使用 iSCSI 或 NVMe/TCP 协议
以下内容可以帮助您根据工作负载要求和存储利用率决定如何配置存储。
-
nas 驱动程序在一个 FlexVolume 上创建一个持久卷 (PV)。
-
nas-economy 驱动程序在共享 FlexVolume 上的 qtree 上创建一个 PV。 (每 200 个 PV 对应一个 FlexVolume,可配置在 50 到 300 之间)
-
nas-flexgroup 驱动程序在一个FlexGroup上的一个 PV 上创建
-
san 驱动程序在专用 FlexVolume 上的 LUN 上创建一个 PV
-
san-economy 驱动程序在共享 FlexVolume 上的 LUN 上创建一个 PV(每 100 个 PV 创建一个 FlexVolume,可配置为 50 到 200 之间)
下图说明了这一点。

此外,驱动程序支持的访问模式也不同。
-
ONTAP nas 驱动程序支持**
-
文件系统访问和 RWO、ROX、RWX、RWOP 访问模式。
-
-
ONTAP SAN 驱动程序支持原始块以及文件系统模式**
-
在原始块模式下,可以支持RWO,ROX,RWX,RWOP访问模式。
-
在文件系统模式下,只允许 RWO、RWOP 访问模式。
-
OpenShift 虚拟化虚拟机的实时迁移需要磁盘具有 RWX 访问模式。因此,选择原始块卷模式下的 nas 驱动程序或 san 驱动程序来创建由ONTAP支持的 PVC 和 PV 非常重要。
存储配置最佳实践
专用存储虚拟机 (SVM)
存储虚拟机 (SVM) 为ONTAP系统上的租户提供隔离和管理分离。将 SVM 专用于 OpenShift 容器和 OpenShift 虚拟化 VM 可以实现权限委派,并可以应用限制资源消耗的最佳实践。
限制 SVM 上的最大卷数
为了防止Trident消耗存储系统上所有可用的卷,您应该对 SVM 设置限制。您可以从命令行执行此操作:
vserver modify -vserver <svm_name> -max-volumes <num_of_volumes>
最大卷值是跨ONTAP集群中所有节点(而不是单个ONTAP节点)配置的总卷。因此,您可能会遇到某些情况,即ONTAP集群节点的Trident配置卷可能比其他节点多得多或少得多。为避免这种情况,请确保将集群中每个节点的相同数量的聚合分配给Trident使用的 SVM。
限制Trident创建的卷的最大大小
您可以在ONTAP中为每个 SVM 设置最大卷大小限制:
-
使用 vserver create 命令创建 SVM 并设置存储限制:
vserver create -vserver vserver_name -aggregate aggregate_name -rootvolume root_volume_name -rootvolume-security-style {unix|ntfs|mixed} -storage-limit value
-
要修改现有 SVM 的存储限制,请执行以下操作:
vserver modify -vserver vserver_name -storage-limit value -storage-limit-threshold-alert percentage
|
无法为包含数据保护卷、 SnapMirror关系中的卷或MetroCluster配置中的任何 SVM 配置存储限制。 |
除了控制存储阵列的卷大小之外,您还应该利用 Kubernetes 功能。
-
要配置Trident可以创建的卷的最大大小,请使用 backend.json 定义中的 limitVolumeSize 参数。
-
要配置用作 ontap-san-economy 和 ontap-nas-economy 驱动程序的池的 FlexVols 的最大大小,请在 backend.json 定义中使用 limitVolumePoolSize 参数。
使用 SVM QOS 策略
将服务质量 (QoS) 策略应用于 SVM,以限制Trident配置卷可消耗的 IOPS 数量。这有助于防止使用Trident配置存储的工作负载影响Trident SVM 之外的工作负载。
ONTAP QoS 策略组为卷提供 QoS 选项,并允许用户定义一个或多个工作负载的吞吐量上限。有关 QoS 策略组的更多信息,请参阅"ONTAP 9.15 QoS 命令"
限制 Kubernetes 集群成员的存储资源访问
使用命名空间 限制对Trident创建的 NFS 卷和 iSCSI LUN 的访问是 Kubernetes 部署安全态势的关键组成部分。这样做可以防止不属于 Kubernetes 集群的主机访问卷并可能意外修改数据。
此外,容器中的进程可以访问挂载到主机的存储,但该存储并非为容器准备的。使用命名空间为资源提供逻辑边界可以避免这个问题。然而,
重要的是要理解命名空间是 Kubernetes 中资源的逻辑边界。因此,确保在适当的时候使用命名空间来提供分离至关重要。但是,特权容器运行时所具有的主机级权限比正常容器要多得多。因此,使用以下命令禁用此功能"Pod 安全策略"。
使用专用导出策略 对于具有专用基础设施节点或无法安排用户应用程序的其他节点的 OpenShift 部署,应使用单独的导出策略来进一步限制对存储资源的访问。这包括为部署到这些基础设施节点的服务(例如,OpenShift Metrics 和 Logging 服务)以及部署到非基础设施节点的标准应用程序创建导出策略。
Trident可以自动创建和管理出口政策。这样, Trident将其提供的卷的访问限制到 Kubernetes 集群中的节点,并简化了节点的添加/删除。
但是,如果您选择手动创建导出策略,则使用处理每个节点访问请求的一个或多个导出规则来填充它。
禁用应用程序 SVM 的 showmount 部署到 Kubernetes 集群的 pod 可以针对数据 LIF 发出 showmount -e 命令并接收可用挂载列表,包括它无权访问的挂载。为防止这种情况,请使用以下 CLI 禁用 showmount 功能:
vserver nfs modify -vserver <svm_name> -showmount disabled
|
有关存储配置和Trident使用最佳实践的更多详细信息,请参阅"Trident文档" |
OpenShift 虚拟化 - 调整和扩展指南
Red Hat 已记录"OpenShift 集群扩展建议和限制"。
|
需要有效的 Red Hat 订阅才能访问上述内容。 |
调整指南包含许多调整参数的信息,包括:
-
调整参数以一次性或批量创建多个虚拟机
-
虚拟机实时迁移
-
通过包含工作负载类型来定制虚拟机模板
支持的限制记录了在 OpenShift 上运行虚拟机时测试的对象最大值
虚拟机最大数量包括
-
每个虚拟机的最大虚拟 CPU
-
每个虚拟机的最大和最小内存
-
每个虚拟机的最大单个磁盘大小
-
每个虚拟机的最大热插拔磁盘数量
主机最大值包括 * 同时实时迁移(每个节点和每个集群)
集群最大值包括 * 定义的虚拟机的最大数量
从 VMware 环境迁移虚拟机
OpenShift 虚拟化迁移工具包是 Red Hat 提供的操作员,可从 OpenShift 容器平台的 OperatorHub 获得。该工具可用于从 vSphere、Red Hat Virtualization、OpenStack 和 OpenShift Virtualization 迁移虚拟机。
关于从 VSphere 迁移虚拟机的详细信息,请参阅"工作流程 > Red Hat OpenShift 虚拟化与NetApp ONTAP"
您可以从 CLI 或迁移 Web 控制台配置各种参数的限制。下面给出了一些示例
-
最大并发虚拟机迁移数设置可同时迁移的最大虚拟机数量。默认值为 20 个虚拟机。
-
预复制间隔(分钟)控制在启动热迁移之前请求新快照的间隔。默认值为 60 分钟。
-
快照轮询间隔(秒)确定系统在 oVirt 热迁移期间检查快照创建或删除状态的频率。默认值是 10 秒。
如果您在同一迁移计划中从 ESXi 主机迁移超过 10 台虚拟机,则必须增加主机的 NFC 服务内存。否则,迁移将会失败,因为 NFC 服务内存限制为 10 个并行连接。有关更多详细信息,请参阅 Red Hat 文档:"增加 ESXi 主机的 NFC 服务内存"
这是使用虚拟化迁移工具包将 10 台虚拟机从 VSphere 中的同一主机成功并行迁移到 OpenShift 虚拟化的示例。
同一 ESXi 主机上的虚拟机

首先制定从 VMware 迁移 10 台虚拟机的计划

迁移计划已开始执行

所有 10 台虚拟机均已成功迁移

OpenShift 虚拟化中所有 10 台虚拟机均处于运行状态
