Xen VMのディスク容量拡張手順


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Xen VMのディスク容量拡張手順

環境
  • CenOS5.4(domain0)
  • CenOS5.4(domainU)
  • Xen3.0

作業はすべてrootでおこなっています。

#DomainUを停止する
# ゲストOS:dom1のHDD容量を追加するため、dom1を停止
$ xm shutdown dom1
ディスクイメージのサイズを大きくする。ここでは3GB増やしてみる。

# イメージファイルのディレクトリに移動します。デフォルトでは/var/lib/xen/images/
# イメージファイルのディレクトリに関してはこちらを参照。
$ cd /var/lib/xen/images/

# イメージの名称変更
$ mv dom1.img dom1.img.bak

# zerofile.imgという3Gのnullファイルを作成します。
$ dd if=/dev/zero bs=1M count=0 seek=3072 of=./zerofile.img

# zerofile.imgとdom1.img.bakを連結します。
$ cat dom1.img.bak zerofile.img > dom1.img

# 空きloopbackデバイスを調べます。
$ losetup -f
/dev/loop0

# ループバックデバイスを設定します。
$ losetup /dev/loop0 dom1.img

# 設定がされたことを確認します。
$ losetup -a
/dev/loop0: [fd00]:19367365 (dom1.img)

# ドライブの設定情報を確認します。
$ fdisk -lu /dev/loop0
Disk /dev/loop0: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System
/dev/loop0p1 * 63 208844 104391 83 Linux
/dev/loop0p2 208845 4192964 1992060 8e Linux LVM
fdiskで区画を変更する

#fdiskで対象のスライスをいったん削除してシリンダサイズを再設定します

# シリンダサイズを再設定します。
$ fdisk /dev/loop0

# dでエンター。スライスを削除します。
Command (m for help): d

# 2でエンター
Partition number (1-4): 2

# nでエンター。スライスを再設定します。
Command (m for help): n

# pでエンター
Command action
  e   extended
  p   primary partition (1-4)
p

# 2でエンター
Partition number (1-4): 2

# 空エンター
First cylinder (14-652, default 14):
Using default value 14

#空エンター
Last cylinder or +size or +sizeM or +sizeK (14-652, default 652):
Using default value 652

# tでエンター
Command (m for help): t

# 2でエンター
Partition number (1-4): 2

# 8eでエンター
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)

# pでエンター
Command (m for help): p

Disk /dev/loop0: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

     Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1 * 1 13 104391 83 Linux
/dev/loop0p2 14 652 5132767+ 8e Linux LVM

#w
でエンター。書き込みます。
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

# 使ったループバックデバイスを削除する
$ losetup -d /dev/loop0
# ゲストOSを起動し、以降ゲストOS dom1で作業する。

# dom1を起動。この時点ではまだ拡張さていない。
$ xm create dom1
# dom1のコンソールに入る。
$ xm console dom1
pvresizeでFree領域を拡張する

# "0 free"を確認
$ pvscan
 PV /dev/xvda2   VG VolGroup00   lvm2 [1.88 GB / 0    free]
 Total: 1 [1.88 GB] / in use: 1 [1.88 GB] / in no VG: 0 [0   ]

# PVをリサイズします。
$ pvresize /dev/xvda2
 Physical volume "/dev/xvda2" changed
 1 physical volume(s) resized / 0 physical volume(s) not resized
 
# "3.00GB free"を確認
$ pvscan
 PV /dev/xvda2   VG VolGroup00   lvm2 [4.88 GB / 3.00 GB free]
 Total: 1 [4.88 GB] / in use: 1 [4.88 GB] / in no VG: 0 [0   ]

# 論理ボリュームを拡張する
# 論理ボリュームを確認します。
$ lvscan
 ACTIVE            '/dev/VolGroup00/LogVol00' [1.47 GB] inherit
 ACTIVE            '/dev/VolGroup00/LogVol01' [416.00 MB] inherit
 
# 論理ボリュームの状態を確認します
$ lvdisplay /dev/VolGroup00/LogVol00
 --- Logical volume ---
 LV Name                /dev/VolGroup00/LogVol00
 VG Name                VolGroup00
 LV UUID                oeAdv9-Cml8-04Ja-uZDM-3cvt-ZwIn-KXzEAM
 LV Write Access        read/write
 LV Status              available
 # open                 1
 LV Size                1.47 GB
 Current LE             47
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:0
 
# 論理ボリュームを3GB追加します。
$ lvresize -L +3G /dev/VolGroup00/LogVol00
 Extending logical volume LogVol00 to 4.47 GB
 Logical volume LogVol00 successfully resized

# resize2fsでスライスを拡張します。
$ resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 1171456 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 1171456 blocks long.

# LV Sizeは 先ほどは 1.47GBだったのが 4.47GBになっていることを確認
$ lvdisplay /dev/VolGroup00/LogVol00 | grep "LV Size"
 LV Size                4.47 GB

# ディスク容量が増えていることを確認します。
$ df -h

Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
                     4.4G  901M  3.3G  22% /
/dev/xvda1 99M 13M 81M 14% /boot
tmpfs 151M 0 151M 0% /dev/shm

参考にしたサイト