Xenのボリューム追加とディスク追加
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' ]