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

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

25.1. 新增 DASD

這部分解釋了如何啟用、格式化直接存取儲存裝置(DASD),以及如何確認它是否已永續性連上系統,使它在重新開機後依然能使用。

注意

請確定裝置已經接上,如果您的 Linux 系統正在 z/VM 下執行,請確定裝置已經連上系統。
CP ATTACH EB1C TO *
若要將某個磁碟連接至您可存取的磁碟上,請使用下列指令:
CP LINK RHEL6X 4B2E 4B2E MR
DASD 4B2E LINKED R/W
欲取得這些指令的詳細資訊,請參閱《z/VM: CP Commands and Utilities Reference, SC24-6175》。

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

下列程序詳述了如何動態式啟用 DASD(非永續性)。這是配置新 DASD 的第一個步驟;之後的步驟將會解釋如何設定其永續性。

過程 25.1. 新增 DASD 磁碟至使用了 VMCP 驅動程式的 IBM System z 上

  1. 啟用 VMCP 驅動程式:
    # modprobe vmcp
  2. 請使用 cio_ignore 指令來將 DASD 由忽略裝置的清單中移除,並使其能讓 Linux 偵測到:
    # cio_ignore -r DeviceNumber
    DeviceNumber 替換為 DASD 的裝置序號。例如:
    # cio_ignore -r 0102
  3. 將磁碟連上虛擬機器:
    # vmcp 'link * DeviceNumber DeviceNumber rw'
    DeviceNumber 替換為 DASD 的裝置序號。
  4. 將裝置設為啟用。請使用下列格式的指令:
    # # chccwdev -e DeviceNumber
    DeviceNumber 替換為 DASD 的裝置序號。
  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 僅會在目前的 session 中連上。這代表當您重新啟動系統之後,DASD 將不會維持連上的狀態。欲取得有關於永久連接儲存裝置上的相關資訊,請參閱〈節 25.1.2, “永續性地將 DASD 設為啟用”〉。
您亦可在《Linux on System z Device Drivers, Features, and Commands on Red Hat Enterprise Linux 6》中的 DASD 章節中找到更多相關資訊。

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,以及用逗號分隔開的選項清單。詳情請見〈Linux on System z Device Drivers, Features, and Commands on Red Hat Enterprise Linux 6〉一章中對 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。這可以透過內建的 pvcreatevgextend 以及 lvextend 指令來分別建立 LVM 的實體卷冊、展開現有的卷冊群組,並展開 root 邏輯卷冊。詳情請見〈節 25.1.5, “展開現有 LVM 卷冊為新的儲存裝置”〉。

25.1.3. 不屬於 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 中,先前尚未啟用的一個新項目:

過程 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 上的所有既有資料。將 DeviceNumber 替換為 DASD 的裝置編號。當被提示進行確認時(顯示於以下範例中)請輸入 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 指令將新的、與 Linux 相容的分割表寫至 DASD。請以 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 建立新分割區。請以 DAS 的裝置名稱取代 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,讓您透過本章之前描述的步驟加以連接。若您的系統不使用 LVM,DASD 就會連上系統,但您無法加以使用。
以下程序解釋了如何完整使用新的 DASD 來展開既有的邏輯卷冊。若您希望在多個邏輯卷冊上使用新的 DASD,您將需要在此分割區上建立多個 LVM 實體卷冊,並針對於您所希望展開的邏輯卷冊(及卷冊群組)重複這項程序。這項程序假設您依照了〈節 25.1.1, “動態式地將 DASD 設為啟用”〉的步驟來動態式連接新的 DASD,然後依照了〈節 25.1.2.1, “屬於 root 檔案系統一部份的 DASD”〉來將它永續性連接,而將它準備來作為 root 卷冊使用,並依照〈節 25.1.4, “以低層格式化準備新的 DASD”〉中所詳述的步驟來格式化 root 卷冊群組以及在該卷冊群組上建立單一分割區。

過程 25.5. 展開現有的邏輯卷冊,以使用新的 DASD

  1. 透過 pvcreate 指令來在 DASD 上建立新的實體卷冊:
    # 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 身份使用 pvsvgslvs 指令,以在程序進行時檢視既有的 LVM 實體卷冊、卷冊群組和邏輯卷冊。