#topicpath
----
ディスクを増設はLVM2 が設定されていれば簡単に扱うことができます。

物理的なディスクだけでなく、
VMware や VirtualBox のような仮想環境でも同じように使えます。

LVM2 ではディスクが抽象化されており、次のような構成になっています。いわゆる「ボリュームマネージャ」というものです。

:PV (Physical Volume)|物理的なディスク
:VG (Volume Group)|PVをグループ化したもの
:LV (Logical Volume)|VGからOSに切り出されるディスク

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を作っていくとパフォーマンスが向上したり、
運用管理が楽になる場合もあるでしょう。

* 参考文献 [#aee45a80]

- [[LVM HOWTO:http://tldp.org/HOWTO/LVM-HOWTO/]]

----
#comment

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS