16.9. 在 IBM Z 或 IBM LinuxONE 环境中配置附加设备
安装 OpenShift Container Platform 后,您可以在使用 z/VM 安装的 IBM Z® 或 IBM® LinuxONE 环境中为集群配置额外的设备。可以配置以下设备:
- 光纤通道协议 (FCP) 主机
- FCP LUN
- DASD
- qeth
您可以使用 Machine Config Operator (MCO) 添加 udev 规则来配置设备,也可以手动配置设备。
此处描述的步骤只适用于 z/VM 安装。如果您在 IBM Z® 或 IBM® LinuxONE 基础架构中使用 RHEL KVM 安装集群,在设备添加到 KVM 客户端后,在 KVM 客户端中不需要额外的配置。但是,在 z/VM 和 RHEL KVM 环境中,需要应用以下步骤来配置 Local Storage Operator 和 Kubernetes NMState Operator。
其他资源
16.9.1. 使用 Machine Config Operator (MCO) 配置附加设备
本节中的任务描述了如何使用 Machine Config Operator (MCO) 在 IBM Z® 或 IBM® LinuxONE 环境中配置附加设备的功能。使用 MCO 配置设备是持久性的,但只允许计算节点的特定配置。MCO 不允许 control plane 节点有不同的配置。
先决条件
- 以具有管理特权的用户身份登录集群。
- 该设备必须可供 z/VM 客户机使用。
- 该设备已经附加。
-
该设备不包含在
cio_ignore
列表中,可在内核参数中设置。 已使用以下 YAML 创建
MachineConfig
对象文件:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: name: worker0 spec: machineConfigSelector: matchExpressions: - {key: machineconfiguration.openshift.io/role, operator: In, values: [worker,worker0]} nodeSelector: matchLabels: node-role.kubernetes.io/worker0: ""
16.9.1.1. 配置光纤通道协议 (FCP) 主机
以下是如何通过添加 udev 规则来使用 N_Port 标识符虚拟化 (NPIV) 配置 FCP 主机适配器的示例。
流程
取以下 udev 规则
441-zfcp-host-0.0.8000.rules
示例:ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.8000", DRIVER=="zfcp", GOTO="cfg_zfcp_host_0.0.8000" ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="zfcp", TEST=="[ccw/0.0.8000]", GOTO="cfg_zfcp_host_0.0.8000" GOTO="end_zfcp_host_0.0.8000" LABEL="cfg_zfcp_host_0.0.8000" ATTR{[ccw/0.0.8000]online}="1" LABEL="end_zfcp_host_0.0.8000"
运行以下命令,将规则转换为 Base64 编码:
$ base64 /path/to/file/
将以下 MCO 示例配置集复制到 YAML 文件中:
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker0 1 name: 99-worker0-devices spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;base64,<encoded_base64_string> 2 filesystem: root mode: 420 path: /etc/udev/rules.d/41-zfcp-host-0.0.8000.rules 3
16.9.1.2. 配置 FCP LUN
以下是如何通过添加 udev 规则来配置 FCP LUN 的示例。您可以添加新的 FCP LUN,或为已使用多路径配置的 LUN 添加附加路径。
流程
以下 udev 规则示例
41-zfcp-lun-0.0.8000:0x500507680d760026:0x00bc000000000000.rules
:ACTION=="add", SUBSYSTEMS=="ccw", KERNELS=="0.0.8000", GOTO="start_zfcp_lun_0.0.8207" GOTO="end_zfcp_lun_0.0.8000" LABEL="start_zfcp_lun_0.0.8000" SUBSYSTEM=="fc_remote_ports", ATTR{port_name}=="0x500507680d760026", GOTO="cfg_fc_0.0.8000_0x500507680d760026" GOTO="end_zfcp_lun_0.0.8000" LABEL="cfg_fc_0.0.8000_0x500507680d760026" ATTR{[ccw/0.0.8000]0x500507680d760026/unit_add}="0x00bc000000000000" GOTO="end_zfcp_lun_0.0.8000" LABEL="end_zfcp_lun_0.0.8000"
运行以下命令,将规则转换为 Base64 编码:
$ base64 /path/to/file/
将以下 MCO 示例配置集复制到 YAML 文件中:
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker0 1 name: 99-worker0-devices spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;base64,<encoded_base64_string> 2 filesystem: root mode: 420 path: /etc/udev/rules.d/41-zfcp-lun-0.0.8000:0x500507680d760026:0x00bc000000000000.rules 3
16.9.1.3. 配置 DASD
以下是如何通过添加 udev 规则来配置 DASD 设备的示例。
流程
以下 udev 规则
41-dasd-eckd-0.0.4444.rules
示例:ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.4444", DRIVER=="dasd-eckd", GOTO="cfg_dasd_eckd_0.0.4444" ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="dasd-eckd", TEST=="[ccw/0.0.4444]", GOTO="cfg_dasd_eckd_0.0.4444" GOTO="end_dasd_eckd_0.0.4444" LABEL="cfg_dasd_eckd_0.0.4444" ATTR{[ccw/0.0.4444]online}="1" LABEL="end_dasd_eckd_0.0.4444"
运行以下命令,将规则转换为 Base64 编码:
$ base64 /path/to/file/
将以下 MCO 示例配置集复制到 YAML 文件中:
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker0 1 name: 99-worker0-devices spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;base64,<encoded_base64_string> 2 filesystem: root mode: 420 path: /etc/udev/rules.d/41-dasd-eckd-0.0.4444.rules 3
16.9.1.4. 配置 qeth
以下是如何通过添加 udev 规则来配置 qeth 设备的示例。
流程
取以下 udev 规则
41-qeth-0.0.1000.rules
示例:ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="qeth", GOTO="group_qeth_0.0.1000" ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.1000", DRIVER=="qeth", GOTO="group_qeth_0.0.1000" ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.1001", DRIVER=="qeth", GOTO="group_qeth_0.0.1000" ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.1002", DRIVER=="qeth", GOTO="group_qeth_0.0.1000" ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="0.0.1000", DRIVER=="qeth", GOTO="cfg_qeth_0.0.1000" GOTO="end_qeth_0.0.1000" LABEL="group_qeth_0.0.1000" TEST=="[ccwgroup/0.0.1000]", GOTO="end_qeth_0.0.1000" TEST!="[ccw/0.0.1000]", GOTO="end_qeth_0.0.1000" TEST!="[ccw/0.0.1001]", GOTO="end_qeth_0.0.1000" TEST!="[ccw/0.0.1002]", GOTO="end_qeth_0.0.1000" ATTR{[drivers/ccwgroup:qeth]group}="0.0.1000,0.0.1001,0.0.1002" GOTO="end_qeth_0.0.1000" LABEL="cfg_qeth_0.0.1000" ATTR{[ccwgroup/0.0.1000]online}="1" LABEL="end_qeth_0.0.1000"
运行以下命令,将规则转换为 Base64 编码:
$ base64 /path/to/file/
将以下 MCO 示例配置集复制到 YAML 文件中:
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker0 1 name: 99-worker0-devices spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;base64,<encoded_base64_string> 2 filesystem: root mode: 420 path: /etc/udev/rules.d/41-dasd-eckd-0.0.4444.rules 3
16.9.2. 手动配置附加设备
本节中的任务描述了如何在 IBM Z® 或 IBM® LinuxONE 环境中手动配置附加设备。此配置方法在节点重启后保留,但不是 OpenShift Container Platform 原生的,如果您替换该节点,则需要重新执行这些步骤。
先决条件
- 以具有管理特权的用户身份登录集群。
- 该设备必须可供节点使用。
- 在 z/VM 环境中,设备必须附加到 z/VM 客户机。
流程
运行以下命令,通过 SSH 连接到节点:
$ ssh <user>@<node_ip_address>
您还可以运行以下命令为节点启动 debug 会话:
$ oc debug node/<node_name>
要使用
chzdev
命令启用设备,请输入以下命令:$ sudo chzdev -e <device>
其他资源
- chzdev - 配置 IBM Z® 设备 (IBM® 文档)
- 持久设备配置 (IBM® 文档)
16.9.3. RoCE 网卡
不需要启用 RoCE (通过融合以太网)网卡,并在节点上可用时使用 Kubernetes NMState Operator 配置其接口。例如,如果 RoCE 网卡在 z/VM 环境中附加,或者在 RHEL KVM 环境中通过。
16.9.4. 为 FCP LUN 启用多路径
本节中的任务描述了如何在 IBM Z® 或 IBM® LinuxONE 环境中手动配置附加设备。此配置方法在节点重启后保留,但不是 OpenShift Container Platform 原生的,如果您替换该节点,则需要重新执行这些步骤。
在 IBM Z® 和 IBM® LinuxONE 中,您只能在在安装过程中为它配置集群时启用多路径。如需更多信息,请参阅在 IBM Z® 和 IBM® LinuxONE 上安装使用 z/VM 的集群"安装 RHCOS 并启动 OpenShift Container Platform bootstrap 过程"。
先决条件
- 以具有管理特权的用户身份登录集群。
- 您已配置了多个 LUN 路径,它带有上述任一方法。
流程
运行以下命令,通过 SSH 连接到节点:
$ ssh <user>@<node_ip_address>
您还可以运行以下命令为节点启动 debug 会话:
$ oc debug node/<node_name>
要启用多路径,请运行以下命令:
$ sudo /sbin/mpathconf --enable
要启动
multipathd
守护进程,请运行以下命令:$ sudo multipath
可选: 要使用 fdisk 格式化多路径设备,请运行以下命令:
$ sudo fdisk /dev/mapper/mpatha
验证
要验证设备是否已分组,请运行以下命令:
$ sudo multipath -II
输出示例
mpatha (20017380030290197) dm-1 IBM,2810XIV size=512G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw -+- policy='service-time 0' prio=50 status=enabled |- 1:0:0:6 sde 68:16 active ready running |- 1:0:1:6 sdf 69:24 active ready running |- 0:0:0:6 sdg 8:80 active ready running `- 0:0:1:6 sdh 66:48 active ready running