第 20 章 在 IBM Z 实例中配置已安装的 Linux


有关 IBM Z 上的 Linux 的更多信息,请参阅 第 22 章 IBM Z 参考 中列出的出版物。此处介绍了一些最常见的任务。

20.1. 添加 DASD

DASD(直接访问存储设备)是 IBM Z 常用的存储类型。有关使用这些存储设备的其他信息,请访问 IBM 知识库,网址为 http://www-01.ibm.com/support/knowledgecenter/linuxonibm/com.ibm.linux.z.lgdd/lgdd_t_dasd_wrk.html.
以下是如何在线设置 DASD 的示例,对其进行格式化,并持久更改。
注意
如果在 z/VM 中运行,请确保设备已附加或连接到 Linux 系统。
CP ATTACH EB1C TO *
要连接一个您可以访问的最小磁盘,请运行以下命令:
CP LINK RHEL7X 4B2E 4B2E MR
DASD 4B2E LINKED R/W
有关 命令的详情,请参阅 z/VM:CP 命令和实用程序参考,SC24-6175

20.1.1. 动态设置 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. 使用 命令 切换到代表该卷的 /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 的说明,请参考 第 20.1.3 节 “在线永久设置 DASD”。当您使用 DASD 时,请使用 /dev/disk/by-path/ 中的 持久设备符号链接。如需了解有关一致地参考存储设备的不同方式的更多信息,请参阅《 Red Hat Enterprise Linux 7 存储管理指南》 中关于持久性存储设备命名的章节。

20.1.2. 使用低级格式化准备新的 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
auto-creating one partition for the whole disk...
writing volume label...
writing VTOC...
checking !
wrote NATIVE!
rereading partition table...
DASD 在线后(低级格式化后),它可以和 Linux 中的其它磁盘一样使用。例如,您可以在分区上创建文件系统、LVM 物理卷或交换空间,例如 /dev/disk/by-path/ccw-0.0.4b2e-part1。除了 dasdfmtfdasd 命令外,切勿使用完整的 DASD 设备(dev/dasdb )。如果您想要使用整个 DASD,创建一个覆盖整个驱动器的分区,如上例中的 fdasd
要在以后添加额外磁盘而不破坏现有磁盘条目,如 /etc/fstab,请使用 /dev/disk/by-path/ 中的 持久设备符号链接。

20.1.3. 在线永久设置 DASD

以上说明描述了如何在运行的系统中动态激活 DASD。但是这种更改不具有持久性,重启后无法保留。在您的 Linux 系统中使对 DASD 配置的修改具有持久性取决于 DASD 是否属于 root 文件系统。initramfs 在启动过程中需要非常早激活 root 文件系统所需的 DASD 才能挂载根文件系统。
对于持久性设备配置,会以透明的方式处理 The cio_ignore 命令,您不需要从忽略列表中手动释放设备。

20.1.3.1. DASD 是根文件系统的一部分

要修改来添加作为 root 文件系统一部分的 DASD 的唯一文件是 /etc/zipl.conf。然后运行 zipl 引导装载程序工具。不需要重新创建 initramfs
有一个引导选项可在引导过程早期激活 DASD: rd.dasd=。这个选项使用直接访问存储设备(DASD)适配器设备总线标识符。如果需要多个 DASD,可以多次指定参数,或使用逗号分开的总线 ID 列表。要指定一个 DASD 范围,指定第一个和最后一个总线 ID。
以下是一个系统的 zipl.conf 示例,它使用两个 DASD 分区中的物理卷用于 LVM 卷组 vg_devel1,其中包含逻辑卷 lv_root 作为 root 文件系统。
[defaultboot]
default=linux
target=/boot/

[linux]
image=/boot/vmlinuz-2.6.32-19.el7.s390x
ramdisk=/boot/initramfs-2.6.32-19.el7.s390x.img
parameters="root=/dev/mapper/vg_devel1-lv_root rd.dasd=0.0.0200,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.0207,use_diag=0,readonly=0,erplog=0,failfast=0  rd_LVM_LV=vg_devel1/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!condev"
假设您要在第三个 DASD 的分区中添加另一个物理卷,其设备总线 ID 为 0.0.202b。要做到这一点,在 zipl .conf 中引导内核的参数行中添加rd.dasd=0. 0.202b
[defaultboot]
default=linux
target=/boot/

[linux]
image=/boot/vmlinuz-2.6.32-19.el7.s390x
ramdisk=/boot/initramfs-2.6.32-19.el7.s390x.img
parameters="root=/dev/mapper/vg_devel1-lv_root rd.dasd=0.0.0200,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.0207,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.202b  rd_LVM_LV=vg_devel1/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!condev"
警告
确保 /etc/zipl.conf 中的内核命令行长度不超过 896 个字节。否则引导装载程序无法被保存,安装将失败。
运行 zipl 以对下一个 IPL 应用 /etc/zipl.conf 的更改:
# zipl -V
Using config file '/etc/zipl.conf'
Target device information
Device..........................: 5e:00
Partition.......................: 5e:01
Device name.....................: dasda
DASD device number..............: 0201
Type............................: disk partition
Disk layout.....................: ECKD/compatible disk layout
Geometry - heads................: 15
Geometry - sectors..............: 12
Geometry - cylinders............: 3308
Geometry - start................: 24
File system block size..........: 4096
Physical block size.............: 4096
Device size in physical blocks..: 595416
Building bootmap in '/boot/'
Building menu 'rh-automatic-menu'
Adding #1: IPL section 'linux' (default)
kernel image......: /boot/vmlinuz-2.6.32-19.el7.s390x
kernel parmline...: 'root=/dev/mapper/vg_devel1-lv_root rd.dasd=0.0.0200,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.0207,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.202b rd_LVM_LV=vg_devel1/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!condev'
initial ramdisk...: /boot/initramfs-2.6.32-19.el7.s390x.img
component address:
kernel image....: 0x00010000-0x00a70fff
parmline........: 0x00001000-0x00001fff
initial ramdisk.: 0x02000000-0x022d2fff
internal loader.: 0x0000a000-0x0000afff
Preparing boot device: dasda (0201).
Preparing boot menu
Interactive prompt......: enabled
Menu timeout............: 15 seconds
Default configuration...: 'linux'
Syncing disks...
Done.

20.1.3.2. DASD 不是根文件系统的一部分

DASD 不是 root 文件系统的一部分,即 数据磁盘,在 /etc/dasd.conf 中永久配置。每行包含一个 DASD。每行都以 DASD 的设备总线 ID 开头。(可选)每一行可以继续使用以空格或制表符分隔的选项。选项由键值对组成,其中键和值用等号分隔。
键对应于 DASD 可以具有的任何有效 sysfs 属性。该值将写入密钥的 sysfs 属性。当将 DASD 添加到系统时,/etc/dasd.conf 中的条目会被激活并由 udev 配置。在引导时,系统可见的所有 DASD 都会被添加并触发 udev
/etc/dasd.conf 的内容示例:
0.0.0207
0.0.0200 use_diag=1 readonly=1
只有重启系统后或通过更改系统的 I /O 配置(即,DASD 在 z/VM 下附加)动态添加新 DASD 后修改 /etc/dasd.conf 才会生效。另外,您可以执行以下命令为之前未激活的 DASD 在 /etc/dasd.conf 中触发新条目激活:
  1. 使用 cio_ignore 工具从忽略的设备列表中删除 DASD,并使其在 Linux 中可见:
    # cio_ignore -r device_number
    例如:
    # cio_ignore -r 021a
  2. 通过写入设备的 uevent 属性来触发激活:
    # echo add > /sys/bus/ccw/devices/device-bus-ID/uevent
    例如:
    # echo add > /sys/bus/ccw/devices/0.0.021a/uevent
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.