Storage Repositoryの構築
XenServerではルートファイルシステム以外は「Storage Repository」という論理ディスクにデータを格納している。これは仮想マシンのライブマイグレーションのための仕組みかと思うが、これが引っ越した先では上手く動いていない。次のサポートページを手がかりに再構築を試みようとした
Manually setting the default Storage Repository (SR)
Creating a new Storage Repository (SR) and making it the default
しかし、この資料にも書いてあるようにSRはパーティション単位に割り当てられる。しかし、引越し先にはもうパーティションの余裕はない。なんとかならないか。通常のファイルを論理ディスクとしてSRを再構成することが曲りなりにできたので、方法を落書きしておく。
論理ディスクのもとになるファイルを作成する。(実験用に取りあえず4GBのファイルを作る)
dd if=/dev/zero of=test.img bs=1M count=1 seek=4000 読み込んだブロック数は 1+0 書き込んだブロック数は 1+0 # ls -l test.img -rw-r--r-- 1 root root 4195352576 7月 16 08:17 test.img # mkfs -t ext3 -F test.img mke2fs 1.35 (28-Feb-2004) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 513024 inodes, 1024256 blocks 51212 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1052770304 32 block groups 32768 blocks per group, 32768 fragments per group 16032 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.# mount -o loop /home/Xen/SR.img /mnt
# mount -o loop test.img /mnt # ls /mnt lost+found # umount /mnt
つぎに、このtest.imgを/dev/loop9を使ってXenに認識させる。新しいUUIDが生成される。
# losetup /dev/loop9 /home/Xen/test.img # sm create -v /dev/loop9 WARNING: All existing data in [/dev/loop9] will be overwritten Do you wish to continue? (y or n) y Create operation succeeded 6d255720-fd22-1b77-5d5a-1e5367202327
xe host-sr-setコマンドは失敗する。
# xe host-sr-set -u root sr-id=6d255720-fd22-1b77-5d5a-1e5367202327 active=true Could not connect to agent
従って、/etc/smtabにはエントリーが追加されない。
新しいUUIDを使ってアッタチは成功する。
# sm attach -v 6d255720-fd22-1b77-5d5a-1e5367202327 none SRM -> 6d255720-fd22-1b77-5d5a-1e5367202327 (name [NULL]) Physical Size: 4000(MB) Allocated Size: 2048(MB) Num VDIs: 0 6d255720-fd22-1b77-5d5a-1e5367202327 # sm info SR ID: [6d255720-fd22-1b77-5d5a-1e5367202327] Name: [NULL] Descr: [DESCR] Device: [/SR-6d255720-fd22-1b77-5d5a-1e5367202327/images] Host: [127.0.0.1] Type: [0] Shared: [0] State: [2] Phys_size: [4000 MB] Alloc_size: [2048 MB]
アタッチに成功するとルートにUUIDを使った長い名前のディレクトリが作られ、その下に論理ディスクをマウントする。
# ls / EULA SR-6d255720-fd22-1b77-5d5a-1e5367202327 bin boot dev etc foreign home initrd lib lost+found media mnt opt proc root sbin selinux srv sys tmp usr var windows
実験的に/etc/rc5.d/S98smtab に/dev/loop9にファイルをlosetupさせるように追加して。マニュアルで/etc/smtabに新しいUUIDのエントリを追加すれば、一応、アタッチしてブートするようにはなるが、どうもスマートな方法とは言えない。また、Clientコンソールが使えない症状も改善されていない。
参考までに、実験用のファイルなどの後片付けのスクリプトをつけておく。
# sm detach -v 6d255720-fd22-1b77-5d5a-1e5367202327 WARNING: This operation is potentially very dangerous and can cause data loss Do you wish to continue? (y or n) y SRM -> 6d255720-fd22-1b77-5d5a-1e5367202327 (name [NULL]) Physical Size: 4000(MB) Allocated Size: 2048(MB) Num VDIs: 0 6d255720-fd22-1b77-5d5a-1e5367202327 # losetup -d /dev/loop9 # rm f /home/Xen/test.img