2010年1月30日土曜日

メインフレームエミュレータでLinuxを動かす(9)

今回は新しくDASDを追加し、ルートファイルシステム("/")の拡張を行いたいと思います。インストール時点でauto partitionを選択した結果、ルートファイルシステムはLogical Volume Manager (LVM)管理下のVolume Group(VG)に含まれる論理ボリューム(LV)であるLogVol00上にマウントされています。ここの情報を参考にルートファイルシステムを拡張したいと思いますが、このマニュアルではLVM管理下のファイルシステムの拡張については扱っていないので、若干追加の作業が必要です。

1. DASDファイルの追加
母艦Linux上で新たにDASDファイルを作ります。 今回は3390-1型のDASDを作ることにしました。VOLSERは"DASD02"です。
[hercules@ap01 centos_v47_s390]$ dasdinit -lfs DASD02 3390-1 DASD02
HHCDU044I Creating 3390 volume DASD02: 1113 cyls, 15 trks/cyl, 56832 bytes/track
HHCDU041I 1113 cylinders successfully written to file DASD02
HHCDI001I DASD initialization successfully completed.
2. hercules.cnfの編集
hercules.cnfにdevice 0121としてDASD02を足します。
[hercules@ap01 centos_v47_s390]$ vi hercules.cnf
# 0580    3420    ickdsf.ipl
  0120    3390    DASD01
  0121    3390    DASD02 
3. herculesの起動
herculesを起動します。herculesがDASD02を正しく認識していれば、下図のようにherculesコンソールで確認できます。

4. DASDをオンラインにする。
CentOS for s390にrootでログインし、以下のようにしてdevice番号0121のDASDをオンラインにします。今回の環境では、DASD02は/dev/dasdbとして認識されました。
[root@localhost]# cd /sys/bus/ccw/drivers/dasd-eckd/
[root@localhost dasd-eckd]# ls
0.0.0120  0.0.0121
[root@localhost dasd-eckd]# cd 0.0.0121
[root@localhost 0.0.0121]# ls
alias         cmb_enable  detach_state  discipline  online    uid       vendor
availability  cutype      devtype       erplog      readonly  use_diag
[root@localhost 0.0.0121]# cat online
0
[root@localhost 0.0.0121]# echo 1 > online
[root@localhost 0.0.0121]# ls -ltr
total 0
-r--r--r--  1 root root 4096 Jan 16 13:24 vendor
-rw-r--r--  1 root root 4096 Jan 16 13:24 use_diag
-r--r--r--  1 root root 4096 Jan 16 13:24 uid
-rw-r--r--  1 root root 4096 Jan 16 13:24 readonly
-rw-r--r--  1 root root 4096 Jan 16 13:24 erplog
-r--r--r--  1 root root 4096 Jan 16 13:24 discipline
-r--r--r--  1 root root 4096 Jan 16 13:24 devtype
-r--r--r--  1 root root 4096 Jan 16 13:24 cutype
-rw-r--r--  1 root root 4096 Jan 16 13:24 cmb_enable
-r--r--r--  1 root root 4096 Jan 16 13:24 availability
-r--r--r--  1 root root 4096 Jan 16 13:24 alias
-rw-r--r--  1 root root 4096 Jan 16 13:24 detach_state
-rw-r--r--  1 root root    0 Jan 16 13:24 online
lrwxrwxrwx  1 root root    0 Jan 16 13:24 block -> ../../../../block/dasdb
/dev/dasd以下に dasdbが追加されています。
[root@localhost ~]# ls -l /dev/dasd*
brw-rw----  1 root disk 94, 0 Jan 17 05:16 /dev/dasda
brw-rw----  1 root disk 94, 1 Jan 17 05:16 /dev/dasda1
brw-rw----  1 root disk 94, 2 Jan 17 05:16 /dev/dasda2
brw-rw----  1 root disk 94, 4 Jan 17 05:54 /dev/dasdb
/dev/dasd:
total 0
drwxr-xr-x  2 root root 100 Jan 17 05:16 0.0.0120
drwxr-xr-x  2 root root  60 Jan 17 05:54 0.0.0121
5. DASDをフォーマットし、パーティションを作成する。
DASD02を"dasdfmt"コマンドでフォーマットした後、"fdasd"コマンドでパーティションを作成します。今回は/dev/dasdb1の1パーティションのみ作成しました。
[root@localhost 0.0.0121]# dasdfmt -b 4096 -d cdl -f /dev/dasdb -l DASD02 -p -y

cyl  1113 of  1113 |##################################################| 100%

Finished formatting the device.
Rereading the partition table... ok
[root@localhost 0.0.0121]# fdasd /dev/dasdb
reading volume label: VOL1
reading vtoc        : ok

Command action
   m   print this menu
   p   print the partition table
   n   add a new partition
   d   delete a partition
   v   change volume serial
   t   change partition type
   r   re-create VTOC and delete all partitions
   u   re-create VTOC re-using existing partition sizes
   s   show mapping (partition number - data set name)
   q   quit without saving changes
   w   write table to disk and exit

Command (m for help): p

Disk /dev/dasdb:
    1113 cylinders,
      15 tracks per cylinder,
      12 blocks per track
    4096 bytes  per block
volume label: VOL1, volume identifier: DASD02
maximum partition number: 3

 ------------------------------- tracks -------------------------------
               Device      start      end   length   Id  System
                               2    16694    16693       unused

Command (m for help): n
First track (1 track = 48 KByte) ([2]-16694):
Using default value 2
Last track or +size[c|k|M] (2-[16694]):
Using default value 16694

Command (m for help): p

Disk /dev/dasdb:
    1113 cylinders,
      15 tracks per cylinder,
      12 blocks per track
    4096 bytes  per block
volume label: VOL1, volume identifier: DASD02
maximum partition number: 3

 ------------------------------- tracks -------------------------------
               Device      start      end   length   Id  System
          /dev/dasdb1          2    16694    16693    1  Linux native

Command (m for help): w
writing VTOC...
rereading partition table...
[root@localhost 0.0.0121]# 

6. PV (Physical Volume)の作成とVGの拡張
DASD上のパーティションをVGに所属させるためにPV化し、次に"VolGroup01" VGに所属させてVGを拡張します。
[root@localhost 0.0.0121]# pvcreate /dev/dasdb1 
  Physical volume "/dev/dasdb1" successfully created
[root@localhost 0.0.0121]# vgextend VolGroup01 /dev/dasdb1
  Volume group "VolGroup01" successfully extended
pvscanコマンドで/dev/dasdb1がVG VolGroup01の一部になったことが確認できます。
[root@localhost 0.0.0121]# pvscan 
  PV /dev/dasda2   VG VolGroup01   lvm2 [2.19 GB / 32.00 MB free]
  PV /dev/dasdb1   VG VolGroup01   lvm2 [768.00 MB / 768.00 MB free]
  Total: 2 [2.94 GB] / in use: 2 [2.94 GB] / in no VG: 0 [0   ]
7. LV の拡張とファイルシステムの拡張
ルートファイルシステムが載っているLV("LogVol00")を拡張し、その後ルートファイルシステムを新しいLVのサイズに合わせて拡張します。今回はdasda2の残り32MB+dasdb1の768MBあわせて800MB拡張することにします。
[root@localhost 0.0.0121]# lvextend -L +800MB /dev/VolGroup01/LogVol00
  Extending logical volume LogVol00 to 2.53 GB
  Logical volume LogVol00 successfully resized
pvscanを実行すると、すべてのPE (Physical Extent)を使い切ったことが分かります。
[root@localhost 0.0.0121]# pvscan 
  PV /dev/dasda2   VG VolGroup01   lvm2 [2.19 GB / 0    free]
  PV /dev/dasdb1   VG VolGroup01   lvm2 [768.00 MB / 0    free]
  Total: 2 [2.94 GB] / in use: 2 [2.94 GB] / in no VG: 0 [0   ]
ext2onlineで ルートファイルシステムを拡張します(注:最近のlinuxではresize2fsコマンドでext3ファイルシステムのオンライン拡張を行うようですが、CentOS v4.7 for s390に付属のresize2fsはマウントされているファイルシステムを拡張できないようです。)
[root@localhost 0.0.0121]# ext2online /dev/VolGroup01/LogVol00
ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b
dfコマンドでルートファイルシステムの使用状況を確認します。 拡張前は使用率86%だったので、無事ファイルシステムが拡張されたことが分かります。
[root@localhost 0.0.0121]# df -m
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup01-LogVol00
                          2550      1456       966  61% /
/dev/dasda1                 97        16        77  17% /boot
none                       125         0       125   0% /dev/shm

8.次回の起動時のための準備
今回追加したDASDが次回の起動時も自動的に利用可能になるように準備します。まず、/etc/modprobe.confの"options dasd_mod dasd="の行に、",121"を追加します。
[root@localhost 0.0.0121]# cat /etc/modprobe.conf

alias ctc0 ctc
options dasd_mod dasd=120,121
alias scsi_hostadapter zfcp
次に/bootにあるinitrd.imgを再作成します。
[root@localhost 0.0.0121]# cd /boot
[root@localhost boot]# mv initrd-2.6.9-78.0.8.EL.img initrd-2.6.9-78.0.8.EL.img.org
[root@localhost boot]# mkinitrd -v initrd-2.6.9-78.0.8.EL.img 2.6.9-78.0.8.EL
Creating initramfs
Looking for deps of module scsi_mod
Looking for deps of module sd_mod        scsi_mod
Looking for deps of module scsi_mod
Looking for deps of module unknown
Looking for deps of module zfcp  qdio scsi_transport_fc scsi_mod
Looking for deps of module qdio
Looking for deps of module scsi_transport_fc     scsi_mod
Looking for deps of module scsi_mod
Looking for deps of module scsi_mod
...
...
Loading module zfcp
Loading module dm-mod
Loading module dasd_mod with options dasd=120,121
Loading module dasd_eckd_mod
Loading module dasd_fba_mod
Loading module jbd
Loading module ext3
Loading module dm-mirror
Loading module dm-zero
Loading module dm-snapshot
最後に"zipl -V"コマンドを実行します。
[root@localhost boot]# zipl -V
Using config file '/etc/zipl.conf'
Target device information
  Device..........................: 5e:00
  Partition.......................: 5e:01
  Device name.....................: dasda
  Device driver name..............: dasd
  DASD device number..............: 0120
  Type............................: disk partition
  Disk layout.....................: ECKD/compatible disk layout
  Geometry - heads................: 15
  Geometry - sectors..............: 12
  Geometry - cylinders............: 3339
  Geometry - start................: 24
  File system block size..........: 4096
  Physical block size.............: 4096
  Device size in physical blocks..: 25596
Building bootmap '/boot//bootmap'
Building menu 'rh-automatic-menu'
Adding #1: IPL section '2.6.9-78.0.8.EL' (default)
  kernel image......: /boot/vmlinuz-2.6.9-78.0.8.EL at 0x10000
  kernel parmline...: 'root=/dev/VolGroup01/LogVol00' at 0x1000
  initial ramdisk...: /boot/initrd-2.6.9-78.0.8.EL.img at 0x800000
Adding #2: IPL section 'linux'
  kernel image......: /boot/vmlinuz-2.6.9-78.EL at 0x10000
  kernel parmline...: 'root=/dev/VolGroup01/LogVol00' at 0x1000
  initial ramdisk...: /boot/initrd-2.6.9-78.EL.img at 0x800000
Preparing boot device: dasda (0120).
Preparing boot menu
  Interactive prompt......: enabled
  Menu timeout............: 15 seconds
  Default configuration...: '2.6.9-78.0.8.EL'
Syncing disks...
Done.

以上でルートファイルシステムの拡張は終了です。 問題なく起動できるか再起動してみるのがよいと思います。
次回は各種サーバを動かしてみたいと思います。

0 件のコメント:

コメントを投稿