5.9. 在 64 位 IBM Z 中配置 Linux 实例

这部分论述了在 64 位 IBM Z 上安装 Red Hat Enterprise Linux 的大多数常见任务。

5.9.1. 添加 DASD

直接访问存储设备(DASD)是 64 位 IBM Z 常用的存储类型。如需更多信息,请参阅 IBM 知识库中的 使用 DASD。以下示例是关于如何在线设置 DASD,对其进行格式化,并使更改持久的。

如果在 z/VM 中运行,请确认设备已经被附加或者连接到 Linux 系统。

CP ATTACH EB1C TO *

要连接一个您可以访问的最小磁盘,请运行以下命令:

CP LINK RHEL7X 4B2E 4B2E MR
DASD 4B2E LINKED R/W

5.9.2. 在线动态设定 DASD

本节包含有关在线设置 DASD 的信息。

流程

  1. 使用 cio_ignore 程序从忽略的设备列表中删除 DASD,并使其在 Linux 中可见:

    # cio_ignore -r device_number

    使用 DASD 的设备号替换 device_number。例如:

    # cio_ignore -r 4b2e
  2. 设置设备在线。使用以下命令格式:

    # chccwdev -e device_number

    使用 DASD 的设备号替换 device_number。例如:

    # chccwdev -e 4b2e

    另外,也可以使用 sysfs 属性在线设定该设备:

    1. 使用 cd 命令将 /sys/ 的目录改为代表那个卷的目录:

      # cd /sys/bus/ccw/drivers/dasd-eckd/0.0.4b2e/
      # ls -l
      total 0
      -r--r--r--  1 root root 4096 Aug 25 17:04 availability
      -rw-r--r--  1 root root 4096 Aug 25 17:04 cmb_enable
      -r--r--r--  1 root root 4096 Aug 25 17:04 cutype
      -rw-r--r--  1 root root 4096 Aug 25 17:04 detach_state
      -r--r--r--  1 root root 4096 Aug 25 17:04 devtype
      -r--r--r--  1 root root 4096 Aug 25 17:04 discipline
      -rw-r--r--  1 root root 4096 Aug 25 17:04 online
      -rw-r--r--  1 root root 4096 Aug 25 17:04 readonly
      -rw-r--r--  1 root root 4096 Aug 25 17:04 use_diag
    2. 检查这个设备是否已经在线:

      # cat online
      0
    3. 如果不在线,请输入以下命令使它在线:

      # echo 1 > online
      # cat online
      1
  3. 请确认哪个块正在被访问:

    # ls -l
    total 0
    -r--r--r--  1 root root 4096 Aug 25 17:04 availability
    lrwxrwxrwx  1 root root    0 Aug 25 17:07 block -> ../../../../block/dasdb
    -rw-r--r--  1 root root 4096 Aug 25 17:04 cmb_enable
    -r--r--r--  1 root root 4096 Aug 25 17:04 cutype
    -rw-r--r--  1 root root 4096 Aug 25 17:04 detach_state
    -r--r--r--  1 root root 4096 Aug 25 17:04 devtype
    -r--r--r--  1 root root 4096 Aug 25 17:04 discipline
    -rw-r--r--  1 root root    0 Aug 25 17:04 online
    -rw-r--r--  1 root root 4096 Aug 25 17:04 readonly
    -rw-r--r--  1 root root 4096 Aug 25 17:04 use_diag

    如示例所示,/dev/dasdb 正在访问设备 4B2E。

这些指令为当前会话在线设置 DASD,但在重启后不会保留。

有关如何永久在线设置 DASD 的详情,请参阅 持久在线设置 DASD。当使用 DASD 时,请使用 /dev/disk/by-path/ 中的持久设备符号链接。

5.9.3. 准备使用低级格式化的新 DASD

磁盘在线后,返回 /root 目录并低级格式化该设备。这在 DASD 的整个生命周期中只需要 一 次:

# cd /root
# dasdfmt -b 4096 -d cdl -p /dev/disk/by-path/ccw-0.0.4b2e
Drive Geometry: 10017 Cylinders * 15 Heads =  150255 Tracks

I am going to format the device /dev/disk/by-path/ccw-0.0.4b2e in the following way:
Device number of device : 0x4b2e
Labelling device        : yes
Disk label              : VOL1
Disk identifier         : 0X4B2E
Extent start (trk no)   : 0
Extent end (trk no)     : 150254
Compatible Disk Layout  : yes
Blocksize               : 4096

--->> ATTENTION! <<---
All data of that device will be lost.
Type "yes" to continue, no will leave the disk untouched: yes
cyl    97 of  3338 |#----------------------------------------------|   2%

当进度条达到结尾格式化完成时,dasdfmt 会打印以下输出:

Rereading the partition table...
Exiting...

现在,使用 fdasd 对 DASD 进行分区。您最多可在 DASD 中创建三个分区。在我们的示例中,我们创建一个覆盖整个磁盘的分区:

# fdasd -a /dev/disk/by-path/ccw-0.0.4b2e
reading volume label ..: VOL1
reading vtoc ..........: ok

auto-creating one partition for the whole disk...
writing volume label...
writing VTOC...
rereading partition table...

DASD 在线后(低级格式化后),它可以和 Linux 中的其它磁盘一样使用。例如:您可以在其分区(例如 /dev/disk/by-path/ccw-0.0.4b2e-part1)上创建文件系统、LVM 物理卷或交换空间。除了 dasdfmtfdasd 命令,不要使用完整的 DASD 设备(dev/dasdb)。如果您想要使用整个 DASD,创建一个覆盖整个驱动器的分区,如上例中的 fdasd

要在以后添加附加磁盘而不破坏现有磁盘条目,例如 /etc/fstab,请使用 /dev/disk/by-path/ 中的永久设备符号链接。

5.9.4. 在线永久设定 DASD

以上说明描述了如何在运行的系统中动态激活 DASD。但是这种更改不具有持久性,重启后无法保留。在您的 Linux 系统中使对 DASD 配置的修改具有持久性取决于 DASD 是否属于 root 文件系统。在启动过程中需要 initramfs 非常早地激活 root 文件系统所需的 DASD 才能挂载根文件系统。

对于持久性设备配置,cio_ignore 命令会被透明处理,您不需要从忽略列表中手动释放设备。

5.9.5. DASD 是 root 文件系统 一 部分

在 Red Hat Enterprise Linux 9 中更改了添加 DASD 作为 root 文件系统一部分的文件。运行以下命令可以找到要编辑的新文件,而不编辑 /etc/zipl.conf 文件:

# machine_id=$(cat /etc/machine-id)
# kernel_version=$(uname -r)
# ls /boot/loader/entries/$machine_id-$kernel_version.conf

有一个引导选项可在引导过程早期激活 DASD: rd.dasd=。这个选项使用直接访问存储设备(DASD)适配器设备总线标识符。如果需要多个 DASD,可以多次指定参数,或使用逗号分开的总线 ID 列表。要指定一个 DASD 范围,指定第一个和最后一个总线 ID。以下是一个系统的 /boot/loader/entries/4ab74e52867b4f998e73e06cf23fd761-4.18.0-80.el8.s390x.conf 文件示例。它使用两个 DASD 分区中的物理卷用于 LVM 卷组 vg_devel1,其中包括一个逻辑卷 lv_root 用于 root 文件系统。

title Red Hat Enterprise Linux (4.18.0-80.el8.s390x) 8.0 (Ootpa)
version 4.18.0-80.el8.s390x
linux /boot/vmlinuz-4.18.0-80.el8.s390x
initrd /boot/initramfs-4.18.0-80.el8.s390x.img
options root=/dev/mapper/vg_devel1-lv_root crashkernel=auto rd.dasd=0.0.0200 rd.dasd=0.0.0207 rd.lvm.lv=vg_devel1/lv_root rd.lvm.lv=vg_devel1/lv_swap cio_ignore=all,!condev rd.znet=qeth,0.0.0a00,0.0.0a01,0.0.0a02,layer2=1,portno=0
id rhel-20181027190514-4.18.0-80.el8.s390x
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel

在带有设备总线 ID 为 0.0.202b 的第三个 DASD 分区上添加另一个物理卷。为此,请将 rd.dasd=0.0.202b 添加到 /boot/loader/entries/4ab74e52867b4f998e73e06cf23fd761-4.18.0-32.el8.s390x.conf 中引导内核的参数行:

title Red Hat Enterprise Linux (4.18.0-80.el8.s390x) 8.0 (Ootpa)
version 4.18.0-80.el8.s390x
linux /boot/vmlinuz-4.18.0-80.el8.s390x
initrd /boot/initramfs-4.18.0-80.el8.s390x.img
options root=/dev/mapper/vg_devel1-lv_root crashkernel=auto rd.dasd=0.0.0200 rd.dasd=0.0.0207 rd.dasd=0.0.202b rd.lvm.lv=vg_devel1/lv_root rd.lvm.lv=vg_devel1/lv_swap cio_ignore=all,!condev rd.znet=qeth,0.0.0a00,0.0.0a01,0.0.0a02,layer2=1,portno=0
id rhel-20181027190514-4.18.0-80.el8.s390x
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
警告

请确定配置文件中的内核命令行长度不超过 896 字节。否则引导装载程序无法被保存,安装将失败。

运行 zipl 来对下一个 IPL 应用配置文件的更改:

# zipl -V
Using config file '/etc/zipl.conf'
Using BLS config file '/boot/loader/entries/4ab74e52867b4f998e73e06cf23fd761-4.18.0-80.el8.s390x.conf'
Target device information
  Device..........................: 5e:00
  Partition.......................: 5e:01
  Device name.....................: dasda
  Device driver name..............: dasd
  DASD device number..............: 0201
  Type............................: disk partition
  Disk layout.....................: ECKD/compatible disk layout
  Geometry - heads................: 15
  Geometry - sectors..............: 12
  Geometry - cylinders............: 13356
  Geometry - start................: 24
  File system block size..........: 4096
  Physical block size.............: 4096
  Device size in physical blocks..: 262152
Building bootmap in '/boot'
Building menu 'zipl-automatic-menu'
Adding #1: IPL section '4.18.0-80.el8.s390x' (default)
  initial ramdisk...: /boot/initramfs-4.18.0-80.el8.s390x.img
  kernel image......: /boot/vmlinuz-4.18.0-80.el8.s390x
  kernel parmline...: 'root=/dev/mapper/vg_devel1-lv_root crashkernel=auto rd.dasd=0.0.0200 rd.dasd=0.0.0207 rd.dasd=0.0.202b rd.lvm.lv=vg_devel1/lv_root rd.lvm.lv=vg_devel1/lv_swap cio_ignore=all,!condev rd.znet=qeth,0.0.0a00,0.0.0a01,0.0.0a02,layer2=1,portno=0'
  component address:
    kernel image....: 0x00010000-0x0049afff
    parmline........: 0x0049b000-0x0049bfff
    initial ramdisk.: 0x004a0000-0x01a26fff
    internal loader.: 0x0000a000-0x0000cfff
Preparing boot menu
  Interactive prompt......: enabled
  Menu timeout............: 5 seconds
  Default configuration...: '4.18.0-80.el8.s390x'
Preparing boot device: dasda (0201).
Syncing disks...
Done.

5.9.6. DASD 不是 root 文件系统的一部分

不是 root 文件系统(即 数据磁盘 )一部分的直接访问存储设备(DASD)会在 /etc/dasd.conf 文件中永久配置。这个文件每行包含一个 DASD,其中每行都以 DASD 的总线 ID 开头。

在向 /etc/dasd.conf 文件添加 DASD 时,请使用键值对来指定每个条目的选项。使用等号(=)分隔键及其值。添加多个选项时,请使用空格或 tab 来分隔各个选项。

/etc/dasd.conf 文件示例

0.0.0207
0.0.0200 use_diag=1 readonly=1

/etc/dasd.conf 文件的更改在系统重启后或通过更改系统的 I/O 配置(即,DASD 被连接在 z/VM 下)来动态添加新 DASD 后生效。

另外,要激活添加到 /etc/dasd.conf 文件中的 DASD,请完成以下步骤:

  1. 从忽略的设备列表中删除 DASD,并使用 cio_ignore 工具使其可见:

    # cio_ignore -r device_number

    其中 device_number 是 DASD 设备号。

    例如,如果设备号是 021a,请运行:

    # cio_ignore -r 021a
  2. 通过写入设备的 uevent 属性来激活 DASD:

    # echo add > /sys/bus/ccw/devices/dasd-bus-ID/uevent

    其中 dasd-bus-ID 是 DASD 的总线 ID。

    例如,如果总线 ID 是 0.0.021a,请运行:

    # echo add > /sys/bus/ccw/devices/0.0.021a/uevent

5.9.7. FCP LUN 是 root 文件系统的一部分

在 Red Hat Enterprise Linux 9 中更改了添加作为 root 文件系统一部分的 FCP LUN 的唯一文件。运行以下命令可以找到要编辑的新文件,而不编辑 /etc/zipl.conf 文件:

# machine_id=$(cat /etc/machine-id)
# kernel_version=$(uname -r)
# ls /boot/loader/entries/$machine_id-$kernel_version.conf

Red Hat Enterprise Linux 提供在引导过程早期激活 FCP LUN 的参数: rd.zfcp=。该值是一个包含 FCP 设备总线 ID 的用逗号分隔的列表,目标 WWPN 为前缀为 0x 的 16 位十六进制数,以及前缀为 0x ,右边填充为 0 ,有 16 位十六进制数的 FCP LUN。

只有 zFCP 设备没有被配置为 NPIV 模式,或者 zfcp.allow_lun_scan=0 内核模块参数禁用了 auto LUN 扫描时,或安装 RHEL-9.0 或更低的版本时,才需要 WWPN 和 FCP LUN 值:否则,可以省略它们,例如 rd.zfcp=0.0.4000。以下是一个系统的 /boot/loader/entries/4ab74e52867b4f998e73e06cf23fd761-5.14.0-55.el9.s390x.conf 文件示例。这个系统使用一个 FCP 附加的 SCSI 磁盘中的一个带有两个路径的物理卷,用于一个 LVM 卷组 vg_devel1,它包括了一个用于 root 文件系统的逻辑卷 lv_root

title Red Hat Enterprise Linux (5.14.0-55.el9.s390x) 9.0 (Plow)
version 5.14.0-55.el9.s390x
linux /boot/vmlinuz-5.14.0-55.el9.s390x
initrd /boot/initramfs-5.14.0-55.el9.s390x.img
options root=/dev/mapper/vg_devel1-lv_root crashkernel=auto rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a000000000 rd.zfcp=0.0.fcd0,0x5105074308c2aee9,0x401040a000000000 rd.lvm.lv=vg_devel1/lv_root rd.lvm.lv=vg_devel1/lv_swap cio_ignore=all,!condev rd.znet=qeth,0.0.0a00,0.0.0a01,0.0.0a02,layer2=1,portno=0
id rhel-20181027190514-5.14.0-55.el9.s390x
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
  1. 要在另外一个物理卷上添加一个带有 FCP LUN 0x401040a300000000 的 FCP 附加的 SCSI 磁盘中的一个分区,使用已存在于物理卷中的相同的两个路径,将 rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000rd.zfcp=0.0.fcd0,0x5105074308c2aee9,0x401040a300000000 添加到 /boot/loader/entries/4ab74e52867b4f998e73e06cf23fd761-5.14.0-55.el9.s390x.conf 中您的引导内核的参数行中。例如:
title Red Hat Enterprise Linux (5.14.0-55.el9.s390x) 9.0 (Plow)
version 5.14.0-55.el9.s390x
linux /boot/vmlinuz-5.14.0-55.el9.s390x
initrd /boot/initramfs-5.14.0-55.el9.s390x.img
options root=/dev/mapper/vg_devel1-lv_root crashkernel=auto rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a000000000 rd.zfcp=0.0.fcd0,0x5105074308c2aee9,0x401040a000000000 rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000 rd.zfcp=0.0.fcd0,0x5105074308c2aee9,0x401040a300000000 rd.lvm.lv=vg_devel1/lv_root rd.lvm.lv=vg_devel1/lv_swap cio_ignore=all,!condev rd.znet=qeth,0.0.0a00,0.0.0a01,0.0.0a02,layer2=1,portno=0
id rhel-20181027190514-5.14.0-55.el9.s390x
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
警告

请确定配置文件中的内核命令行长度不超过 896 字节。否则引导装载程序无法被保存,安装将失败。

  • 运行 dracut -f 以更新目标内核的初始 RAM 磁盘。
  • 运行 zipl 来对下一个 IPL 应用配置文件的更改:
# zipl -V
Using config file '/etc/zipl.conf'
Using BLS config file '/boot/loader/entries/4ab74e52867b4f998e73e06cf23fd761-5.14.0-55.el9.s390x.conf'
Run /lib/s390-tools/zipl_helper.device-mapper /boot
Target device information
Device..........................: fd:00
Partition.......................: fd:01
Device name.....................: dm-0
Device driver name..............: device-mapper
Type............................: disk partition
Disk layout.....................: SCSI disk layout
Geometry - start................: 2048
File system block size..........: 4096
Physical block size.............: 512
Device size in physical blocks..: 10074112
Building bootmap in '/boot/'
Building menu 'zipl-automatic-menu'
Adding #1: IPL section '5.14.0-55.el9.s390x' (default)
kernel image......: /boot/vmlinuz-5.14.0-55.el9.s390x
kernel parmline...: 'root=/dev/mapper/vg_devel1-lv_root crashkernel=auto rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a000000000 rd.zfcp=0.0.fcd0,0x5105074308c2aee9,0x401040a000000000 rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000 rd.zfcp=0.0.fcd0,0x5105074308c2aee9,0x401040a300000000 rd.lvm.lv=vg_devel1/lv_root rd.lvm.lv=vg_devel1/lv_swap cio_ignore=all,!condev rd.znet=qeth,0.0.0a00,0.0.0a01,0.0.0a02,layer2=1,portno=0'
initial ramdisk...: /boot/initramfs-5.14.0-55.el9.s390x.img component address:
kernel image....: 0x00010000-0x007a21ff
parmline........: 0x00001000-0x000011ff
initial ramdisk.: 0x02000000-0x028f63ff
internal loader.: 0x0000a000-0x0000a3ff
Preparing boot device: dm-0.
Detected SCSI PCBIOS disk layout.
Writing SCSI master boot record.
Syncing disks...
Done.

5.9.8. FCP LUN 不是 root 文件系统的一部分

不是 root 文件系统一部分的 FCP LUN,比如数据磁盘,会在 /etc/zfcp.conf 中永久配置。每行包含一个 FCP LUN。每行都包含 FCP 适配器的设备总线 ID、目标 WWPN 为前缀为 0x 的 16 位十六进制数,以及前缀为 0x ,右边填充为 0 ,有 16 位十六进制数的 FCP LUN,由空格或标签页分开。

只有在 zFCP 设备没有在 NPIV 模式下配置,或者 auto LUN 扫描被 zfcp.allow_lun_scan=0 内核模块参数被禁用或安装 RHEL-9.0 或更低版本时,才需要 WWPN 和 FCP LUN 值。否则,可以省略它们,并且只强制使用设备总线 ID。

在系统中添加 FCP 适配器时,/etc/zfcp.conf 中的条目会被激活并由 udev 配置。在引导时,会添加系统可见的所有 FCP 适配器并触发 udev

/etc/zfcp.conf 内容示例:

0.0.fc00 0x5105074308c212e9 0x401040a000000000
0.0.fc00 0x5105074308c212e9 0x401040a100000000
0.0.fc00 0x5105074308c212e9 0x401040a300000000
0.0.fcd0 0x5105074308c2aee9 0x401040a000000000
0.0.fcd0 0x5105074308c2aee9 0x401040a100000000
0.0.fcd0 0x5105074308c2aee9 0x401040a300000000
0.0.4000
0.0.5000

只有重启系统后或通过更改系统的 I/O 配置(例如,z/VM 下连接的通道)来动态添加新 FCP 通道后,对 /etc/zfcp.conf 的修改才会生效。另外,可以执行以下命令为之前没有激活的 FCP 适配器激活 /etc/zfcp.conf 中的新条目:

  1. 使用 zfcp_cio_free 实用程序从忽略的设备列表中删除 FCP 适配器,并使其在 Linux 中可见:

    # zfcp_cio_free
  2. 要将 /etc/zfcp.conf 中的添加应用到正在运行的系统,请运行:

    # zfcpconf.sh

5.9.9. 添加 qeth 设备

qeth 网络设备驱动程序支持 QDIO 模式、HiperSockets、z/VM 客户机 LAN 和 z/VM VSWITCH 中的 64 位 IBM Z OSA-Express 功能。

有关 qeth 设备驱动程序命名方案的更多信息,请参阅 自定义引导参数

5.9.10. 动态添加 qeth 设备

本节包含了如何动态添加 qeth 设备的信息。

流程

  1. 决定是否载入 qeth 设备驱动程序模块。以下示例显示了载入的 qeth 模块:

    # lsmod | grep qeth
    qeth_l3                69632  0
    qeth_l2                49152  1
    qeth                  131072  2 qeth_l3,qeth_l2
    qdio                   65536  3 qeth,qeth_l3,qeth_l2
    ccwgroup               20480  1 qeth

    如果 lsmod 命令的输出显示 qeth 模块还没有被加载,请运行 modprobe 命令去加载它们:

    # modprobe qeth
  2. 使用 cio_ignore 程序从忽略的设备列表中删除网络通道,并使其出现在 Linux 中:

    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id

    使用代表网络设备的三个设备总线 ID 替换 read_device_bus_idwrite_device_bus_iddata_device_bus_id例如,如果 read_device_bus_id0.0.f500write_device_bus_id0.0.f501data_device_bus_id0.0.f502

    # cio_ignore -r 0.0.f500,0.0.f501,0.0.f502
  3. 使用 znetconf 工具来检测并列出网络设备的候选配置:

    # znetconf -u
    Scanning for network devices...
    Device IDs                 Type    Card Type      CHPID Drv.
    ------------------------------------------------------------
    0.0.f500,0.0.f501,0.0.f502 1731/01 OSA (QDIO)        00 qeth
    0.0.f503,0.0.f504,0.0.f505 1731/01 OSA (QDIO)        01 qeth
    0.0.0400,0.0.0401,0.0.0402 1731/05 HiperSockets      02 qeth
  4. 选择您要使用的配置,并使用 znetconf 啦应用配置,并将配置的组设备上线来作为网络设备。

    # znetconf -a f500
    Scanning for network devices...
    Successfully configured device 0.0.f500 (encf500)
  5. 另外,您还可以在将组群设备设置为在线前传递参数:

    # znetconf -a f500 -o portname=myname
    Scanning for network devices...
    Successfully configured device 0.0.f500 (encf500)

    现在可以继续配置 encf500 网络接口。

另外,您可以使用 sysfs 属性设定设备在线,如下:

  1. 创建 qeth 组设备:

    # echo read_device_bus_id,write_device_bus_id,data_device_bus_id > /sys/bus/ccwgroup/drivers/qeth/group

    例如:

    # echo 0.0.f500,0.0.f501,0.0.f502 > /sys/bus/ccwgroup/drivers/qeth/group
  2. 下一步,通过查找读取频道来验证 qeth 组设备是否已被正确创建:

    # ls /sys/bus/ccwgroup/drivers/qeth/0.0.f500

    根据您的系统设置情况以及您所需要的功能设置其他参数和特性,例如:

    • portno
    • layer2
    • portname
  3. 将在线 sysfs 属性写入 1 将设备设置为在线:

    # echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
  4. 然后确认该设备状态:

    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
    											1

    返回值为 1 表示设备在线,返回值 0 表示设备离线。

  5. 查找分配给该设备的接口名称:

    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/if_name
    encf500

    现在可以继续配置 encf500 网络接口。

    s390utils 软件包提供的以下命令可以显示 qeth 设备的重要设置:

    # lsqeth encf500
    Device name                     : encf500
    -------------------------------------------------
    card_type               : OSD_1000
    cdev0                   : 0.0.f500
    cdev1                   : 0.0.f501
    cdev2                   : 0.0.f502
    chpid                   : 76
    online                  : 1
    portname                : OSAPORT
    portno                  : 0
    state                   : UP (LAN ONLINE)
    priority_queueing       : always queue 0
    buffer_count            : 16
    layer2                  : 1
    isolation               : none

5.9.11. 永久添加 qeth 设备

要使新的 qeth 设备持久,请为新接口创建一个配置文件。网络接口配置文件放置在 /etc/NetworkManager/system-connections/ 目录中。

网络配置文件使用命名规范 device.nmconnection,其中 device 是之前创建的 qeth 组设备中 interface-name 文件中的值,如 enc9a0。对于持久性设备配置,cio_ignore 命令会被透明处理,您不需要从忽略列表中手动释放设备。

如果同一类型的另一个设备的配置文件已存在,请将其复制成新名称,并编辑它:

# cd /etc/NetworkManager/system-connections/
# cp enc9a0.nmconnection enc600.nmconnection

要了解网络设备的 ID,请使用 lsqeth 工具:

# lsqeth -p
devices                    CHPID interface        cardtype       port chksum prio-q'ing rtr4 rtr6 lay'2 cnt
-------------------------- ----- ---------------- -------------- ---- ------ ---------- ---- ---- ----- -----
0.0.09a0/0.0.09a1/0.0.09a2 x00   enc9a0    Virt.NIC QDIO  0    sw     always_q_2 n/a  n/a  1     64
0.0.0600/0.0.0601/0.0.0602 x00   enc600    Virt.NIC QDIO  0    sw     always_q_2 n/a  n/a  1     64

如果您没有定义类似的设备,请创建一个新文件。使用这个示例:

[connection]
type=ethernet
interface-name=enc600

[ipv4]
address1=10.12.20.136/24,10.12.20.1
dns=10.12.20.53;
method=manual

[ethernet]
mac-address=00:53:00:8f:fa:66

编辑新的 enc600.nmconnection 文件,如下所示:

  1. 确保新连接文件归 root:root 所有:

    # chown root:root /etc/NetworkManager/system-connections/enc600.nmconnection
  2. 在此文件中添加更多详细信息,或者根据您的连接要求修改这些参数。
  3. 保存该文件。
  4. 重新载入连接配置文件:

    # nmcli connection reload
  5. 要查看新添加的连接的完整详情,请输入:

    # nmcli connection show enc600

在重启系统后,对 enc600.nmconnection 文件的更改会生效,通过更改系统的 I/O 配置(例如,在 z/VM 下附加)或重新载入网络连接来动态添加新网络设备通道。或者,您可以执行以下命令来触发网络通道的 enc600.nmconnection 的激活,其之前还没有被激活:

  1. 使用 cio_ignore 程序从忽略的设备列表中删除网络通道,并使其出现在 Linux 中:

    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id

    使用代表网络设备的三个设备总线 ID 替换 read_device_bus_id,write_device_bus_id,data_device_bus_id。例如,如果 read_device_bus_id0.0.0600,则 write_device_bus_id0.0.0601data_device_bus_id0.0.0602

    #  cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
  2. 要触发激活更改的 uevent,请执行:

    # echo add > /sys/bus/ccw/devices/read-channel/uevent

    例如:

    # echo add > /sys/bus/ccw/devices/0.0.0600/uevent
  3. 检查网络设备状态:

    # lsqeth
  4. 如果默认路由信息已更改,您还必须相应地更新 /etc/NetworkManager/system-connections/<profile_name>.nmconnection 文件的 [ipv4][ipv6] 部分中的 ipaddress1 参数:

    [ipv4]
    address1=10.12.20.136/24,10.12.20.1
    [ipv6]
    address1=2001:db8:1::1,2001:db8:1::fffe
  5. 现在启动新的接口:

    # nmcli connection up enc600
  6. 检查接口的状态:

    # ip addr show enc600
    3: enc600:  <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 3c:97:0e:51:38:17 brd ff:ff:ff:ff:ff:ff
    10.12.20.136/24 brd 10.12.20.1 scope global dynamic enc600
    valid_lft 81487sec preferred_lft 81487sec
    inet6 1574:12:5:1185:3e97:eff:fe51:3817/64 scope global noprefixroute dynamic
    valid_lft 2591994sec preferred_lft 604794sec
    inet6 fe45::a455:eff:d078:3847/64 scope link
    valid_lft forever preferred_lft forever
  7. 检查新接口的路由:

    # ip route
    default via 10.12.20.136 dev enc600 proto dhcp src
  8. 使用 ping 程序 ping 网关或者新设备子网中的另一台主机确认您的更改:

    # ping -c 1 10.12.20.136
    PING 10.12.20.136 (10.12.20.136) 56(84) bytes of data.
    64 bytes from 10.12.20.136: icmp_seq=0 ttl=63 time=8.07 ms
  9. 如果默认路由信息被改变了,需要更新相应的 /etc/sysconfig/network

其他资源

  • nm-settings-keyfile 手册页

5.9.12. 为网络 root 文件系统配置 64 位 IBM Z 网络设备

要添加访问 root 文件系统所需的网络设备,您只需要修改引导选项。引导选项可在参数文件中,但 /etc/zipl.conf 文件不再包含引导记录说明。使用以下命令可以定位需要修改的文件:

# machine_id=$(cat /etc/machine-id)
# kernel_version=$(uname -r)
# ls /boot/loader/entries/$machine_id-$kernel_version.conf

Dracut 是提供 initramfs 中用于替换 initrd 的功能的 mkinitrd 成功程序,提供了一个引导参数以在引导过程早期在 64 位 IBM Z 中激活网络设备: rd.znet=

作为输入,此参数采用以逗号分隔的 NETTYPE (qeth、lcs、ctc)、两个(lcs、ctc)或三个(qeth)设备总线 ID 的列表,以及由网络设备 sysfs 属性对应的键值对组成的可选的其它参数。这个参数配置和激活 64 位 IBM Z 网络硬件。对 IP 地址和其他具体网络的配置与其他平台 一 样。详情请查看 dracut 文档。

在 boot 中明确处理网络通道的 cio_ignore 命令。

通过 NFS 通过网络访问的 root 文件系统引导选项示例:

root=10.16.105.196:/nfs/nfs_root cio_ignore=all,!condev rd.znet=qeth,0.0.0a00,0.0.0a01,0.0.0a02,layer2=1,portno=0,portname=OSAPORT ip=10.16.105.197:10.16.105.196:10.16.111.254:255.255.248.0:nfs‑server.subdomain.domain:enc9a0:none rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us