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 主机适配器的示例。

流程

  1. 取以下 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"
  2. 运行以下命令,将规则转换为 Base64 编码:

    $ base64 /path/to/file/
  3. 将以下 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
    1
    您在机器配置文件中定义的角色。
    2
    您在上一步中生成的 Base64 编码字符串。
    3
    udev 规则所在的路径。

16.9.1.2. 配置 FCP LUN

以下是如何通过添加 udev 规则来配置 FCP LUN 的示例。您可以添加新的 FCP LUN,或为已使用多路径配置的 LUN 添加附加路径。

流程

  1. 以下 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"
  2. 运行以下命令,将规则转换为 Base64 编码:

    $ base64 /path/to/file/
  3. 将以下 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
    1
    您在机器配置文件中定义的角色。
    2
    您在上一步中生成的 Base64 编码字符串。
    3
    udev 规则所在的路径。

16.9.1.3. 配置 DASD

以下是如何通过添加 udev 规则来配置 DASD 设备的示例。

流程

  1. 以下 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"
  2. 运行以下命令,将规则转换为 Base64 编码:

    $ base64 /path/to/file/
  3. 将以下 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
    1
    您在机器配置文件中定义的角色。
    2
    您在上一步中生成的 Base64 编码字符串。
    3
    udev 规则所在的路径。

16.9.1.4. 配置 qeth

以下是如何通过添加 udev 规则来配置 qeth 设备的示例。

流程

  1. 取以下 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"
  2. 运行以下命令,将规则转换为 Base64 编码:

    $ base64 /path/to/file/
  3. 将以下 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
    1
    您在机器配置文件中定义的角色。
    2
    您在上一步中生成的 Base64 编码字符串。
    3
    udev 规则所在的路径。

16.9.2. 手动配置附加设备

本节中的任务描述了如何在 IBM Z® 或 IBM® LinuxONE 环境中手动配置附加设备。此配置方法在节点重启后保留,但不是 OpenShift Container Platform 原生的,如果您替换该节点,则需要重新执行这些步骤。

先决条件

  • 以具有管理特权的用户身份登录集群。
  • 该设备必须可供节点使用。
  • 在 z/VM 环境中,设备必须附加到 z/VM 客户机。

流程

  1. 运行以下命令,通过 SSH 连接到节点:

    $ ssh <user>@<node_ip_address>

    您还可以运行以下命令为节点启动 debug 会话:

    $ oc debug node/<node_name>
  2. 要使用 chzdev 命令启用设备,请输入以下命令:

    $ sudo chzdev -e <device>

其他资源

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 路径,它带有上述任一方法。

流程

  1. 运行以下命令,通过 SSH 连接到节点:

    $ ssh <user>@<node_ip_address>

    您还可以运行以下命令为节点启动 debug 会话:

    $ oc debug node/<node_name>
  2. 要启用多路径,请运行以下命令:

    $ sudo /sbin/mpathconf --enable
  3. 要启动 multipathd 守护进程,请运行以下命令:

    $ sudo multipath
  4. 可选: 要使用 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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.