ディスクを増設はLVM2 が設定されていれば簡単に扱うことができます。
物理的なディスクだけでなく、 VMware や VirtualBox のような仮想環境でも同じように使えます。
LVM2 ではディスクが抽象化されており、次のような構成になっています。いわゆる「ボリュームマネージャ」というものです。
PV → VG → LV という形で追加することができます。 CentOS 4.6 の環境にて、8GB の SCSI ディスクを追加してみます。
まずは追加したディスクを認識したところから。 dmesg で確認してみると次のようになっていました。
#pre{{ SCSI device sdb: 16777216 512-byte hdwr sectors (8590 MB) sdb: cache data unavailable sdb: assuming drive cache: write through
sdb: unknown partition table
Attached scsi disk sdb at scsi0, channel 0, id 1, lun 0 }}
/dev/sdb として認識したので、pvcreate にて追加します。
#pre{{ [root@localhost ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup00 lvm2 a- 7.88G 32.00M /dev/sdb lvm2 -- 8.00G 8.00G
}}
ここでは別なVGを作るのではなく、 既存の VG に新たに PV を加える形で拡張しました。 vgextend で拡張すると、上で追加した PV の 8.00G 分が free になってます。
#pre{{ [root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree VolGroup00 1 2 0 wz--n- 7.88G 32.00M
[root@localhost ~]# vgextend VolGroup00 /dev/sdb
Volume group "VolGroup00" successfully extended
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree VolGroup00 2 2 0 wz--n- 15.84G 8.00G
}}
LV を作ります。この増えた 8G を VolGroup00 から切り出して、 LogVol02 としました。
#pre{{ [root@localhost ~]# lvcreate VolGroup00 -L 8G -n LogVol02
Logical volume "LogVol02" created
[root@localhost ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-ao 5.91G LogVol01 VolGroup00 -wi-ao 1.94G LogVol02 VolGroup00 -wi-a- 8.00G
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree VolGroup00 2 3 0 wz--n- 15.84G 0
}}
あとはファイルシステムを作って mount すれば完了です。
#pre{{ [root@localhost ~]# ls /dev/mapper/ VolGroup00-LogVol00 VolGroup00-LogVol02 VolGroup00-LogVol01 control [root@localhost ~]# mkfs.ext3 /dev/mapper/VolGroup00-LogVol02 mke2fs 1.35 (28-Feb-2004) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 1048576 inodes, 2097152 blocks 104857 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2147483648 64 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@localhost ~]# mkdir -p /u01 [root@localhost ~]# mount /dev/mapper/VolGroup00-LogVol02 /u01 [root@localhost ~]# df -h /u01 Filesystem サイズ 使用 残り 使用% マウント位置 /dev/mapper/VolGroup00-LogVol02
7.9G 51M 7.5G 1% /u01
}}
ここでは同じVGにディスクを追加していきましたが、 ディスクコントローラが複数ある場合などI/Oが分散できるならば、 異なるVGを作っていくとパフォーマンスが向上したり、 運用管理が楽になる場合もあるでしょう。