Xen の domainU のディスクを動的に増設する
<img src=”http://ecx.images-amazon.com/images/I/51g98uPCpzL.jpg” height=”120px”/ style=”float: left;”><img src=”http://ec2.images-amazon.com/images/I/51IYk4lZJUL.jpg” height=”120px”/ style=”float: left;”><img src=”http://ec2.images-amazon.com/images/I/51uK4ACymiL.jpg” height=”120px”/ style=”float: left;”><img src=”http://ecx.images-amazon.com/images/I/51ejAPsISuL.jpg” height=”120px”/ style=”float: left;”><img src=”http://ec2.images-amazon.com/images/I/51hIDIWHmYL.jpg” height=”120px”/ style=”float: left;”>
1. ディスクイメージを2つ作成する。1つでも良いが、せっかくなので2個。  <pre class='prettyprint'>[root@st1 xen]# dd if=/dev/zero of=centos5_demo_1 bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 57.3006 seconds, 75.0 MB/s
[root@st1 xen]# dd if=/dev/zero of=centos5_demo_2 bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 65.3232 seconds, 65.7 MB/s
</pre>2. domainU に attach する。domainU は動かしたままで良い。  <pre class='prettyprint'>[root@st1 xen]# xm block-attach demo file://var/xen/centos5_demo_1 /dev/xvd
a3 w
[root@st1 xen]# xm block-attach demo file://var/xen/centos5_demo_2 /dev/xvda4 w
</pre>3. domainU でディスクが増えていることを確認する。  <pre class='prettyprint'>[root@demo ~]# ls -l /dev/xvda*
brw-r—– 1 root disk 202, 0 Apr 18 22:33 /dev/xvda
brw-r—– 1 root disk 202, 1 Apr 18 22:33 /dev/xvda1
brw-r—– 1 root disk 202, 2 Apr 18 22:33 /dev/xvda2
brw-r—– 1 root disk 202, 3 Apr 18 22:51 /dev/xvda3
brw-r—– 1 root disk 202, 4 Apr 18 22:52 /dev/xvda4
</pre>4. domainU で pvcreate する。  <pre class='prettyprint'>[root@demo ~]# pvcreate /dev/xvda3
  Physical volume “/dev/xvda3” successfully created
[root@demo ~]# pvcreate /dev/xvda4
  Physical volume “/dev/xvda4” successfully created
[root@demo ~]# pvscan
  PV /dev/xvda2   VG VolGroup00   lvm2 [7.88 GB / 0    free]
  PV /dev/xvda3                   lvm2 [4.00 GB]
  PV /dev/xvda4                   lvm2 [4.00 GB]
  Total: 3 [15.88 GB] / in use: 1 [7.88 GB] / in no VG: 2 [8.00 GB]
</pre>5. 増設したディスクをボリュームグループに加える。  <pre class='prettyprint'>[root@demo ~]# pvs
  PV         VG         Fmt  Attr PSize PFree
  /dev/xvda2 VolGroup00 lvm2 a-   7.88G    0 
  /dev/xvda3            lvm2 –   4.00G 4.00G
  /dev/xvda4            lvm2 –   4.00G 4.00G
[root@demo ~]# vgextend VolGroup00 /dev/xvda3
  Volume group “VolGroup00” successfully extended
[root@demo ~]# vgextend VolGroup00 /dev/xvda4
  Volume group “VolGroup00” successfully extended
[root@demo ~]# pvs
  PV         VG         Fmt  Attr PSize PFree
  /dev/xvda2 VolGroup00 lvm2 a-   7.88G    0 
  /dev/xvda3 VolGroup00 lvm2 a-   3.97G 3.97G
  /dev/xvda4 VolGroup00 lvm2 a-   3.97G 3.97G
[root@demo ~]# vgdisplay 
  — Volume group —
  VG Name               VolGroup00
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               15.81 GB
  PE Size               32.00 MB
  Total PE              506
  Alloc PE / Size       252 / 7.88 GB
  Free  PE / Size       254 / 7.94 GB
  VG UUID               URWdcO-ihHU-nmvP-831K-u8cn-l844-PuQXNP
</pre>Free PE が 254 あることに注意。  6. ロジカルボリュームを拡張する。  <pre class='prettyprint'>[root@demo ~]# lvdisplay /dev/VolGroup00/LogVol00
  — Logical volume —
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                OYck42-akcB-g0yf-I4Pj-qKCK-a6N7-s61qwS
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                6.84 GB
  Current LE             219
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0
[root@demo ~]# lvextend –extents=+254 /dev/VolGroup00/LogVol00
  Extending logical volume LogVol00 to 14.78 GB
  Logical volume LogVol00 successfully resized
[root@demo ~]# lvdisplay /dev/VolGroup00/LogVol00
  — Logical volume —
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                OYck42-akcB-g0yf-I4Pj-qKCK-a6N7-s61qwS
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                14.78 GB
  Current LE             473
  Segments               3
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0
</pre>7. ext3 ファイルシステムをオンラインで拡張する。  <pre class='prettyprint'>[root@demo ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       6951280   4570780   2021692  70% /
/dev/xvda1              101086     29517     66350  31% /boot
tmpfs                   131156         0    131156   0% /dev/shm
[root@demo ~]# 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 3874816 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 3874816 blocks long.
[root@demo ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      15012712   4572528   9666964  33% /
/dev/xvda1              101086     29517     66350  31% /boot
tmpfs                   131156         0    131156   0% /dev/shm
</pre>めでたく増えた。  ディスクを増やしたという事実はどこかに記録されていて、domU をリブートしても、増えた容量のままマウントされていた。domU の設定ファイルの disk= 行にディスクを追加しても、怒られる。  <pre class='prettyprint'>[root@st1 xen]# xm create centos5_demo 
Using config file “./centos5_demo”.
Error: Device 51715 (vbd) could not be connected.
File /var/xen/centos5_demo_1 is loopback-mounted through /dev/loop0,
which is mounted in a guest domain,
and so cannot be mounted now.
</pre>