第 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,请按照以下步骤执行:
- 使用 cio_ignore 工具从忽略的设备列表中删除 DASD,并使其在 Linux 中可见:
# cio_ignore -r device_number
使用 DASD 的设备号替换 device_number。例如:# cio_ignore -r 4b2e
- 设置设备在线。使用以下命令格式:
# chccwdev -e device_number
使用 DASD 的设备号替换 device_number。例如:# chccwdev -e 4b2e
另外,也可以使用 sysfs 属性在线设定该设备:- 使用 命令 切换到代表该卷的 /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 - 检查这个设备是否已经在线:
#
cat online 0 - 如果不在线,请输入以下命令使它在线:
#
echo 1 > online#
cat online 1
- 请确认哪个块正在被访问:
#
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
。除了 dasdfmt 和 fdasd 命令外,切勿使用完整的 DASD 设备(dev/das
db )。如果您想要使用整个 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
中触发新条目激活:
- 使用 cio_ignore 工具从忽略的设备列表中删除 DASD,并使其在 Linux 中可见:
#
cio_ignore -r device_number例如:#
cio_ignore -r 021a - 通过写入设备的
uevent
属性来触发激活:#
echo add > /sys/bus/ccw/devices/device-bus-ID/uevent例如:#
echo add > /sys/bus/ccw/devices/0.0.021a/uevent