Xenのボリューム追加とディスク追加

3月 27, 2010

Xenで起動中のドメインUにボリュームやディスクを追加する際の手順について。

ボリュームの追加は単に容量を増やしたい時の他、例えばドメインUでLVMの
スナップショットを利用したいときにも。
スナップショットを利用するには専用の空き領域が必要だが、CentOSだと通常インストール時に
ルートボリュームにまるごとひとつの論理ボリュームが割り当てられるため、
スナップショットに利用するFree PEが存在しない。この状態でlvcreate -sでスナップショットを
作成しようとすると、以下のエラーになるはず。

Insufficient free extents(0) in volume group


こんなときはボリュームの追加で対応可能なので手順をメモしておく。
(逆にボリュームを縮小することでFree PEを作り出すこともできるようだが、、
作業が難航したため、没)もちろん、ドメイン0に割り当て可能なボリュームが存在
することが前提。

1.ドメイン0にて対象ドメインUの論理ボリュームを拡張する。

# lvresize -s +1G /dev/VolGroup00/host05


2.ドメインUをシャットダウン→起動

# xm shtdown host05
# xm create host05


3.ドメインUにログイン。確認すると、容量が増えているはず。

# fdisk -l


4.fdiskでボリュームに組み込むためのパーティションを作成する。
以下の例だと、/dev/xvdaパーティションが作成される。

# fdisk /dev/xvda


対話コマンドは、p→n→3→p→wの順でいけるようだが。。あくまで例。

5.再起動。ひょっとしたら、他にもパーティションを反映させる方法があるかもしれないが。

# reboot


6.ここから領域を論理ボリュームに組み込んで行く。
まずPV(物理ボリューム)を作成。

# pvcreate /dev/xvda3


7.VG(ボリュームグループ)の拡張。

# vgextend VolGroup00 /dev/xvda3


これによりボリュームグループ内にFree PEがで出来上がり、以下コマンドで
スナップショット作成が可能になる。-Lか- -sizeでサイズを指定。
ちなみに-l で論理エクステント数によるサイズ指定ができるそうだ。

# lvcreate -s -L 1G -n lvsnap /dev/VolGroup00/lv_name


イメージファイルを利用する方法も書いておく。
ドメイン0上で新たにディスクとして使うイメージファイルを作成し、ドメインUに割り当てる。

1.ドメイン0上でdfコマンドを実行し、ドメイン0の管理下に空き領域があることを確認。

2.ddコマンドによりドメイン0上に新たなイメージファイルを作成する。

# dd if=/dev/zero of=/root/xen/disk.img bs=1M count=1 seek=4096


3.作成したイメージファイルをフォーマットする。ここではext3形式を指定。

# mkfs.ext3 /root/xen/disk.img


4.ドメイン0上でxm block-attachコマンドを実行し、稼働中のドメインUにディスクを割り当てる

書式
block-attach [ドメイン名] [ 仮想ファイルシステムパス] [割り当てデバイス名] [ デバイスアクセスモード]

# xm block-attach host03 file://root/xen/disk.img /dev/sdc w


5.ドメインUにてマウント実施

# mount /dev/sdc /mnt


df とかmountコマンドで追加したディスクが反映されていることを確認。

ドメインUを再起動後に新たに割り当てられた領域を/mntに自動マウントしたい場合、
ドメインU上の/etc/fstabと、ドメイン0上の設定ファイル(/etc/xen/hostname)
の両方を編集する必要がある。
設定ファイルの”disk=”行を編集する。

/etc/fstabに記述

/dev/sdc /mnt ext3 defaults 0 0


/etc/xen/hostnameに記述

disk = [ 'tap:aio:/root/xen/host03,xvda,w','file:/root/xen/disk.img,sdc,w' ]

Categories: Xen

No Responses so far | Have Your Say!

Comments are closed.