3.3. 配置传输协议
部署使用不同的传输协议来连接卷。Block Storage 服务(cinder)支持以下传输协议:
- iSCSI
- 光纤频道(FC)
- NVMe over TCP (NVMe-TCP)
- NFS
- Red Hat Ceph Storage RBD
使用卷(如块存储服务(cinder)卷和备份服务)的 control plane 服务可能需要支持 Red Hat OpenShift Container Platform (RHOCP)集群来使用 iscsid
和 multipathd
模块,具体取决于使用的存储阵列。
这些模块必须在执行这些卷的服务的所有节点上可用。要使用这些传输协议,请创建一个
MachineConfig
CR 来定义这些模块的执行位置。如需有关 MachineConfig
的更多信息,请参阅了解 Machine Config operator。
使用 MachineConfig
更改节点的配置会导致节点重新引导。在应用 'MachineConfig' 以确保 RHOCP 工作负载的完整性之前,请咨询您的 RHOCP 管理员。
本节中的步骤旨在指导这些协议的一般配置。存储后端供应商将提供有关如何连接到其特定解决方案的配置信息。
除了特定于协议的配置外,红帽建议配置多路径,而不考虑使用的传输协议。完成传输协议配置后,请参阅为流程 配置多路径。
这些服务会在 EDPM 节点上自动启动。
3.3.1. 配置 iSCSI 协议
从 RHOCP 节点连接到 iSCSI 卷需要 iSCSI 启动器服务。iscsid
service 模块必须有一个实例用于正常 RHOCP 使用、OpenShift CSI 插件用法和 RHOSO 服务。将 MachineConfig
应用到适用的节点,以配置节点以使用 iSCSI 协议。
如果 iscsid
服务模块已在运行,则不需要这个过程。
流程
创建
MachineConfig
CR,为iscsid
模块配置节点。以下示例在所有 RHOCP worker 节点上启动带有默认配置的
iscsid
服务:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker service: cinder name: 99-worker-cinder-enable-iscsid spec: config: ignition: version: 3.2.0 systemd: units: - enabled: true name: iscsid.service
- 保存该文件。
应用
MachineConfig
CR 文件。$ oc apply -f <machine_config_file> -n openstack
-
将
<machine_config_file
> 替换为MachineConfig
CR 文件的名称。
-
将
3.3.2. 配置光纤通道协议
不需要额外的节点配置来使用 Fibre Channel 协议连接到卷。虽然所有使用 Fibre Channel 的节点都有一个主机总线适配器(HBA)卡。除非 RHOCP 部署中的所有 worker 节点都有一个 HBA 卡,否则您必须在 control plane 配置中使用 nodeSelector
来选择要卷和备份服务的节点,以及使用块存储服务为其存储后端的镜像服务实例。
3.3.3. 配置 NVMe over TCP (NVMe-TCP)协议
从 RHOCP 节点连接到 NVMe-TCP 卷需要 nvme
内核模块。
流程
创建
MachineConfig
CR,为nvme
内核模块配置节点。以下示例使用所有 RHOCP worker 节点中的默认配置启动
nvme
内核模块:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker service: cinder name: 99-worker-cinder-load-nvme-fabrics spec: config: ignition: version: 3.2.0 storage: files: - path: /etc/modules-load.d/nvme_fabrics.conf overwrite: false mode: 420 user: name: root group: name: root contents: source: data:,nvme-fabrics%0Anvme-tcp
- 保存该文件。
应用
MachineConfig
CR 文件。$ oc apply -f <machine_config_file> -n openstack
-
将
<machine_config_file
> 替换为MachineConfig
CR 文件的名称。
-
将
节点重启后,验证
nvme-fabrics
模块是否已加载并支持主机上的 ANA :cat /sys/module/nvme_core/parameters/multipath
注意虽然 ANA 不使用 Linux 多路径设备映射器,但
multipathd
必须正在运行,以便 Compute 节点能够在将卷连接到实例时使用多路径。
3.3.4. 配置多路径
在 RHOCP 节点上配置多路径需要 MachineConfig
CR,用于在节点上创建一个 multipath.conf
文件并启动该服务。
此流程中提供的示例只创建最小的 multipath.conf
文件。生产部署可能要求根据您的环境添加特定的硬件供应商。请咨询适当的系统管理员以获取部署所需的任何值。
流程
创建
MachineConfig
CR 来配置节点多路径。以下示例创建了
multipath.conf
文件,并在所有 RHOCP 节点上启动multipathd
模块:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker service: cinder name: 99-worker-cinder-enable-multipathd spec: config: ignition: version: 3.2.0 storage: files: - path: /etc/multipath.conf overwrite: false mode: 384 user: name: root group: name: root contents: source: data:,defaults%20%7B%0A%20%20user_friendly_names%20no%0A%20%20recheck_wwid%20yes%0A%20%20skip_kpartx%20yes%0A%20%20find_multipaths%20yes%0A%7D%0A%0Ablacklist%20%7B%0A%7D systemd: units: - enabled: true name: multipathd.service
注意以下是本例创建的
multipath.conf
的内容:defaults { user_friendly_names no recheck_wwid yes skip_kpartx yes find_multipaths yes } blacklist { }
- 保存该文件。
应用
MachineConfig
CR 文件。$ oc apply -f <machine_config_file> -n openstack
将
<machine_config_file
> 替换为MachineConfig
CR 文件的名称。注意在 RHOSO 部署中,默认启用
use_multipath_for_image_xfer
配置选项。