第 14 章 在 IBM Z 或 IBM (R) Linux 环境中配置附加设备

安装 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。

14.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: ""

14.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 规则所在的路径。

14.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 规则所在的路径。

14.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 规则所在的路径。

14.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 规则所在的路径。