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