章 17. 在 IBM System z 事例中配置已安裝的 Linux 系統

欲取得更多有關於 System z 上使用 Linux 的相關資訊,請參閱列在M〈章 19, IBM System z 參考資料〉中的出版品。最普遍進行的工作皆詳述於此。

17.1. 新增 DASD

下列為如何將 DASD 設為啟用、將其格式化,保留其變更的範例。

注意

請確定裝置已經接上,如果您的 Linux 系統正在 z/VM 下執行,請確定裝置已經連上系統。
CP ATTACH EB1C TO *
若要將某個磁碟連接至您可存取的磁碟上,請使用下列指令:
CP LINK RHEL7X 4B2E 4B2E MR 
DASD 4B2E LINKED R/W
請查看 z/VM: CP Commands and Utilities Reference, SC24-6175,以取得有關於指令的詳情。

17.1.1. 動態式地將 DASD 設為啟用

若要將 DASD 設為啟用,請依照下列步驟進行:
  1. 請使用 cio_ignore 工具程式來將 DASD 由忽略裝置的清單中移除,並使其能讓 Linux 偵測到:
    # cio_ignore -r device_number
    請將 device_number 取代為 DASD 的裝置號碼。例如:
    # cio_ignore -r 4b2e
  2. 將裝置設為啟用。請使用下列格式的指令:
    # chccwdev -e device_number
    請將 device_number 取代為 DASD 的裝置號碼。例如:
    # 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. 檢查它被哪個區塊的 devnode 所存取:
    # 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
    如此範例中所顯示的,4B2E 裝置是作為 /dev/dasdb 被系統存取的。
這些指示會將 DASD 連上目前的 session,不過這並非永續性的,並且無法在重新開機後保持此狀態。若要將 DASD 設為可永續性地保持啟用狀態,請參閱〈節 17.1.3, “永續性地將 DASD 設為啟用”〉。當您在使用 DASD 時,請使用 /dev/disk/by-path/ 下的永續性裝置符號連結。

17.1.2. 以低層格式化準備新的 DASD

當磁碟啟用之後,請切換回 /root 目錄並低層格式化裝置。在 DASD 的有效生命週期間,您只需如此作一次。
# cd
# 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 實體卷冊,或是 swap 空間,例如 /dev/disk/by-path/ccw-0.0.4b2e-part1。請勿使用完整的 DASD 裝置(dev/dasdb)於任何指令,除非使用 dasdfmtfdasd 指令。若您希望使用整個 DASD,請如以上 fdasd 範例中所示,建立一個佔用了整個磁碟的分割區。
若要在之後不影響既有磁碟項目(比方說 /etc/fstab)的情況下,新增額外的磁碟,請使用 /dev/disk/by-path/ 下的永續性裝置符號連結。

17.1.3. 永續性地將 DASD 設為啟用

以上指示描述了如何動態式地在一部執行中的系統上啟用 DASD。然而,此類型的變更並非永續性的變更,並且無法在重新開機後維持其狀態。要使 DASD 配置的變更能夠在您的系統上保有永續性,取決於該 DASD 是否屬於 root 檔案系統。root 檔案系統所需的這些 DASD,需要在開機程序非常早期的步驟中,由 initramfs 啟用,以便掛載 root 檔案系統。
當使用永續性裝置配置時,Cio_ignore 指令會自動被處理,並且您無須手動式地將裝置由忽略清單中移除。

17.1.3.1. 屬於 Root 檔案系統一部分的 DASD

要新增屬於 root 檔案系統一部分的 DASD,您唯一需要修改的檔案為 /etc/zipl.conf。接著請執行 zipl 開機載入程式工具。您無須重新建立 initramfs
開機早期有個開機選項能用來啟用 DASD:rd.dasd=。此選項接受一列以逗號區隔開的清單做為輸入。該清單包含裝置的 bus ID 和選用性的額外參數,這些參數包含了與 DASD sysfs 屬性相應的金鑰值配對。
以下為一部系統的 zipl.conf 範例,它在兩個 DASD 的分割區上使用了實體卷冊來作為一個 LVM 卷冊群組 vg_devel1,它包含了 root 檔案系統的 lv_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 的分割區上新增另一個裝置 bus ID 為 0.0.202b 的實體卷冊。若要這麼作,只需將 rd.dasd=0.0.202b 附加至 zipl.conf 中,boot kernel 的參數行即可:
[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"
請執行 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.

17.1.3.2. 不屬於 Root 檔案系統一部分的 DASD

不屬於 root 檔案系統一部分的 DASD(也就是資料磁碟),將永續性地配至於 /etc/dasd.conf 檔案中。它一行包含了一個 DASD。每行皆以 DASD 的裝置 bus ID 作為起始。此外,每行亦可包含以空格或 tab 字元隔開的選項。選項包含了金鑰值配對,並且金鑰和數值則會以一個等號(=)區隔開來。
金鑰與 DASD 可能擁有的任何有效 sysfs 屬性相應。數值會被寫入金鑰的 sysfs 屬性。當 DASD 被新增至系統時,/etc/dasd.conf 中的項目會由 udev 啟動與配置。在開機時,所有系統可見的 DASD 將會被新增並且啟動 udev
/etc/dasd.conf 的範例內容:
0.0.0207
0.0.0200 use_diag=1 readonly=1
/etc/dasd.conf 的修改只有在重新啟動系統,或是透過更改系統 I/O 配置來動態式新增 DASD 時(也就是說在 z/VM 上,DASD 已連接),才會生效。此外,您亦可透過下列指令來為 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