Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 25 章 在 System z 实例中配置安装的 Linux

有关 System z 中 Linux 的详情请参考 第 27 章 IBM System z 参考 中的读物。这里描述的是最常见的任务。

25.1. 添加 DASD

本小节解释了如何在线设定直接访问存储设备(DASD)、格式化该设备以及如何确定永久添加到系统中,以便在重启后自动可用。

注意

如果在 z/VM 中运行,需要保证已将设备添加或者连接到 Linux 系统。
CP ATTACH EB1C TO *
链接到有访问问题的微盘,例如:
CP LINK RHEL6X 4B2E 4B2E MR
DASD 4B2E LINKED R/W
有关这些命令的详情请查看《z/VM: CP 命令和程序参考,SC24-6175》

25.1.1. 在线动态设定 DASD

以下步骤论述了如何动态(非永久性)让 DASD 在线。这是配置新 DASD 的第一步,之后的步骤将解释如何使其永久可用。

过程 25.1. 使用 VMCP 驱动程序在 IBM System z 中添加 DASD

  1. 启用 VMCP 驱动程序:
    # modprobe vmcp
  2. 使用 cio_ignore 命令从忽略的设备列表中删除 DASD,并使其出现在 Linux 中:
    # cio_ignore -r DeviceNumber
    使用 DASD 的设备号替换 DeviceNumber。例如:
    # cio_ignore -r 0102
  3. 将该磁盘与虚拟机链接:
    # vmcp 'link * DeviceNumber DeviceNumber rw'
    使用 DASD 的设备号替换 DeviceNumber
  4. 将该设备设定为在线。使用以下命令格式:
    # # chccwdev -e DeviceNumber
    使用 DASD 的设备号替换 DeviceNumber
  5. 使用 lsdasd 命令确认该磁盘:
    # lsdasd
    Bus-ID     Status      Name      Device  Type  BlkSz  Size      Blocks
    ==============================================================================
    0.0.0100   active      dasda     94:0    ECKD  4096   2347MB    600840
    0.0.0301   active      dasdb     94:4    FBA   512    512MB     1048576
    0.0.0300   active      dasdc     94:8    FBA   512    256MB     524288
    0.0.0101   active      dasdd     94:12   ECKD  4096   2347MB    600840
    0.0.0200   active      dasde     94:16   ECKD  4096   781MB     200160
    0.0.0102   active      dasdf     94:20   ECKD  4096   2347MB    600840
    
    在上述示例中,设备 0102(在 Bus-ID 卷中显示为 0.0.0102)可作为 /dev/dasdf 访问。
如果按以上步骤,新 DASD 只能附加到当前会话中。就是说重启系统后不会附加该 DASD。有关永久添加存储设备的详情请查看 第 25.1.2 节 “在线设定永久 DASD ”
还可以在《Red Hat Enterprise Linux 6,System z 中的 Linux:设备驱动程序、功能及命令》一章查看更多信息。

25.1.2. 在线设定永久 DASD

第 25.1.1 节 “在线动态设定 DASD” 中的步骤论述了如何在运行的系统中动态激活 DASD。此类变化不会持久,重启后 DASD 就不再被添加到该系统。本小节所述步骤假设已动态添加 DASD。
在 Linux 系统中永久配置 DASD 的方法要看 DASD 是否属于 root(/)文件系统。那些 root 文件系统需要的 DASD 应在引导过程的早期使用 initramfs 激活,以便可以挂在到 root 文件系统。不属于 root 文件系统的 DASD 可稍后激活,这样可以简化配置过程。
为持久设备配置以透明方式处理忽略设备(cio_ignore)列表。不需要手动从忽略列表中释放涩会被。

25.1.2.1. 作为 Root 文件系统一部分的 DASD

如果要添加新的 DASD 作为 root 文件系统的一部分,则必须编辑 zipl 引导装载程序配置,然后重新生成 initramfs 以便重启后更改可以生效。以下步解释了要采取的步骤。

过程 25.2. 持久添加 DASD 作为 Root 设备

  1. 使用纯文本编辑器(比如 Vim)编辑 /etc/dasd.conf 配置文件,并将 DASD 配置作为一行添加到这个文件中。可参考该文件中描述之前配置设备的部分。有效配置行应类似如下:
    0.0.0102 use_diag=0 readonly=0 erplog=0 failfast=0
    
  2. 编辑 /etc/zipl.conf 配置文件。示例 zipl.conf 文件类似如下:
    [defaultboot]
    default=linux
    target=/boot/
    [linux]
      image=/boot/vmlinuz-2.6.32-19.el6.s390x
      ramdisk=/boot/initramfs-2.6.32-19.el6.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,!0.0.0009"
    
    记录 parameters= 行中的多个 rd_DASD= 选项。必须在这一行中使用同样的语法添加新的 DASD - rd_DASD= 关键字,后接设备 ID 及用口号分开的选项列表。详情请查看《System z 中的 Linux:Red Hat Enterprise Linux 6 中的设备驱动程序、功能和命令》中 DASD 设备驱动程序一章中的 dasd= 参数描述。
  3. 下一步是重建 initrd
    # mkinitrd -f /boot/initramfs-2.6.32-71.el6.s390x.img `uname -r`
  4. 然后使用 zipl 命令重建引导装载程序配置。可以使用 -V 选项获得更详细的输出结果:
    # 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.el6.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_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,!0.0.0009'
      initial ramdisk...: /boot/initramfs-2.6.32-19.el6.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.
    
完成此步骤后,会持久添加新的 DASD,并作为 root 文件系统的一部分使用。但该 root 文件系统仍需要扩展至这个新的 DASD。如果系统使用 LVM 逻辑卷作为 root 文件系统,则需要将这个卷(以及包含该卷的卷组)扩展至新 DASD。可以使用内置的 pvcreatevgextendlvextend 命令为 LVM 创建物理卷,同时分别扩展现有卷组及 root 逻辑卷。详情请查看 第 25.1.5 节 “将现有 LVM 卷扩展到包含新存储设备”

25.1.3. 不作为 Root 文件系统一部分的 DASD

DASD 不是 root 文件系统的一部分,就是说要在 /etc/dasd.conf 中永久配置 data disks。每行包含一个 DASD。每行都以 DASD 的设备总线 ID 开始,后接以空格或者 tab 字符间隔的选项。选项由 key-value 对组成,其中 key 和 value 值以等号分开。
key 与 DASD 可能包含的所有有效 sysfs 属性对应。value 可写为 key 的 sysfs 属性。/etc/dasd.conf 中的条目是活跃的,并在将 DASD 添加到系统中时使用 udev 配置。在引导时,会添加所有系统可见的 DASD 并触发 udev
/etc/dasd.conf 内容示例:
0.0.0207
0.0.0200 use_diag=1 readonly=1
只有在系统重启后,或者使用系统的 I/O 配置动态添加新 DASD(即将 DASD 附加到 z/VM 中)后,修改的 /etc/dasd.conf 才会生效。也可以为之前不活跃的 DASD 在 /etc/dasd.conf 中触发激活新条目,方法是执行以下命令:

过程 25.3. 将 DASD 永久附加为非 root 设备

  • uevent 属性写入该设备触发激活:
    echo add > /sys/bus/ccw/devices/device.bus,ID/uevent
    例如:
    echo add > /sys/bus/ccw/devices/0.0.021a/uevent

25.1.4. 使用低级格式化准本新 DASD

下一步是让 DASD 上线并对其格式化(如有必要)。以下论述了所需步骤。

警告

这个过程将清除该磁盘中的所有现有数据。执行该步骤前请确定备份所有数据。

过程 25.4. 格式化 DASD

  1. 使用 dasdfmt 命令清除 DASD 中的所有现有数据。使用 DASD 设备号替换 DeviceNumber。提示确认前(如以下示例所示),输入 yes 执行。
    # dasdfmt -b 4096 -d cdl -p /dev/disk/by-path/ccw-0.0.DeviceNumber
    Drive Geometry: 10017 Cylinders * 15 Heads =  150255 Tracks
    
    I am going to format the device /dev/disk/by-path/ccw-0.0.0102 in the following way:
       Device number of device : 0x4b2e
       Labelling device        : yes
       Disk label              : VOL1
       Disk identifier         : 0X0102
       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...
    
    有关 dasdfmt 命令的语法详情请查看 dasdfmt(8) man page。
  2. 使用 fdasd 命令在 DASD 中写入新的 Linux 兼容分区表。使用 DASD 的设备号替换 DeviceNumber
    # fdasd -a /dev/disk/by-path/ccw-DeviceNumber
    auto-creating one partition for the whole disk...
    writing volume label...
    writing VTOC...
    checking !
    wrote NATIVE!
    rereading partition table...
    
    这个示例使用 -a 选项创建跨整个磁盘的单一分区。也可以使用其他布局,在一个 DASD 中最多可创建三个分区。有关 fdasd 命令及可用选项语法详情请查看 fdasd(8) man page。
  3. 使用 fdisk 创建新分区。使用 DASD 的设备名称替换 DeviceName
    # fdisk /dev/DeviceName
    执行 fdisk 后,会在终端显示一系列提示。这些提示可用于操作磁盘分区表、创建新分区或编辑现有分区。有关 fdisk 使用详情请查看 fdisk(8) man page。
DASD 在线后(低级格式化后),可将其作为 Linux 中的其他磁盘一样使用。例如:可创建文件系统、LVM 物理卷或者其分区中的 swap 空间,例如 /dev/disk/by-path/ccw-0.0.4b2e-part1。绝不要为某个任务使用全部 DASD 设备(dev/dasdb),dasdfmtfdasd 命令除外。如果您想要使用整个 DASD,请按照上述 fdasd 示例生成一个覆盖整个驱动器的分区。

注意

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

25.1.5. 将现有 LVM 卷扩展到包含新存储设备

如果系统使用 LVM,则需要扩展现有卷组以及一个或多个逻辑卷,以便其包含使用本章前面的内容所添加的新 DASD。否则,虽然可以将 DASD 添加到系统中,但却无法使用。
下面的过程解释了如何使用新 DASD 的全部容量扩展现有逻辑卷。如果要在多个逻辑卷中使用新 DASD,则需要在这个分区中创建多个 LVM 物理卷,并在要扩展的每个逻辑卷(和卷组)中重复这个步骤。这个步骤假设已按照 第 25.1.1 节 “在线动态设定 DASD” 中的要求动态添加先 DASD,然后如 第 25.1.2.1 节 “作为 Root 文件系统一部分的 DASD” 所述永久添加它,并准备用于 root 卷,同时如 第 25.1.4 节 “使用低级格式化准本新 DASD” 所述将其格式化,并在其中生成单一分区。

过程 25.5. 扩展现有逻辑卷以便使用新 DASD

  1. 使用 pvcreate 命令为 DASD 中的 LVM 创建新物理卷:
    # pvcreate /dev/DeviceName

    重要

    必须将设备名指定为分区 - 例如:/dev/dasdf1。请勿指定整个块设备。
  2. 使用 pvs 命令列出现有物理卷,以便确定已创建该物理卷:
    # pvs
    PV                 VG             Fmt  Attr PSize   PFree
     /dev/dasda2        vg_local       lvm2 a--    1,29g       0
     /dev/dasdd1        vg_local       lvm2 a--    2,29g       0
     /dev/dasdf1                       lvm2 a--    2,29g    2,29g
     /dev/mapper/mpathb vgextnotshared lvm2 a--  200,00g 1020,00m
    
    如上例所示,/dev/dasdf1 现包含整个物理卷,该物理卷不属于任何卷组。
  3. 使用 vgextend 命令扩展现有卷组,该卷组中包含要使用新 DASD 的卷:
    # vgextend VolumeGroup PhysicalVolume
    使用要扩展的卷组名称替换 VolumeGroup,使用物理卷名称替换 PhysicalVolume(例如:/dev/dasdf1)。
  4. 使用 lvextend 命令扩展要使用新 DASD 的逻辑卷:
    # lvextend -L +Size /dev/mapper/VolumeGroup-LogicalVolume
    例如:
    # lvextend -L +2G /dev/mapper/vg_local-lv_root
    Extending logical volume lv_root to 2,58 GiB
    Logical volume lv_root successfully resized
    
完成这个过程后,会扩展现有逻辑卷,使其包含新的 DASD 以及之前为其分配的存储设备。还可以作为 root 使用 pvsvgs、和 lvs 命令在这个过程的任何一步中查看现有 LVM 物理卷、卷组以及逻辑卷。