第 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
- 启用
VMCP
驱动程序:#
modprobe vmcp
- 使用
cio_ignore
命令从忽略的设备列表中删除 DASD,并使其出现在 Linux 中:#
cio_ignore -r DeviceNumber
使用 DASD 的设备号替换 DeviceNumber。例如:#
cio_ignore -r 0102
- 将该磁盘与虚拟机链接:
#
vmcp 'link * DeviceNumber DeviceNumber rw'
使用 DASD 的设备号替换 DeviceNumber。 - 将该设备设定为在线。使用以下命令格式:
#
# chccwdev -e DeviceNumber
使用 DASD 的设备号替换 DeviceNumber。 - 使用
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 设备
- 使用纯文本编辑器(比如 Vim)编辑
/etc/dasd.conf
配置文件,并将 DASD 配置作为一行添加到这个文件中。可参考该文件中描述之前配置设备的部分。有效配置行应类似如下:0.0.0102 use_diag=0 readonly=0 erplog=0 failfast=0
- 编辑
/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=
参数描述。 - 下一步是重建
initrd
:#
mkinitrd -f /boot/initramfs-2.6.32-71.el6.s390x.img `uname -r`
- 然后使用
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。可以使用内置的
pvcreate
、vgextend
和 lvextend
命令为 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
- 使用
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。 - 使用
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。 - 使用
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
),dasdfmt
和 fdasd
命令除外。如果您想要使用整个 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
- 使用
pvcreate
命令为 DASD 中的 LVM 创建新物理卷:#
pvcreate /dev/DeviceName
重要
必须将设备名指定为分区 - 例如:/dev/dasdf1
。请勿指定整个块设备。 - 使用
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
现包含整个物理卷,该物理卷不属于任何卷组。 - 使用
vgextend
命令扩展现有卷组,该卷组中包含要使用新 DASD 的卷:#
vgextend VolumeGroup PhysicalVolume
使用要扩展的卷组名称替换 VolumeGroup,使用物理卷名称替换 PhysicalVolume(例如:/dev/dasdf1
)。 - 使用
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
使用 pvs
、vgs
、和 lvs
命令在这个过程的任何一步中查看现有 LVM 物理卷、卷组以及逻辑卷。