LVM on iSCSi 復活
うっかり、書き忘れていたが、大騒ぎしていたVHD問題、なんとか解決しました。
今となっては、、何をしていたのか、、という感じですが、
ディスクを全部スキャンして、データを抜き出して LVM の Volume Group の情報を
手で再構成して復活させました。
(一部、自作ソフトの助けは借りましたが)
このノウハウ、二度と使うことの無いようにしてほしいけど。。。
続・VHDのマウント
残念ながら、いろいろやって、コンパイルはできたのだが、エラーが出て マウントはできない。
LD_LIBRARY_PATH=/usr/lib/virtualbox; export LD_LIBRARY_PATH ./vdfuse -f /imgs/vhdimg0.img /mnt/ VD CallbackError rc -3260 at /home/vbox/vbox-3.2.6/src/VBox/Devices/Storage/VBoxHDD.cpp:2879 (int VDOpen(VBOXHDD*, const char*, const char*, unsigned int, VDINTERFACE*)): セグメン テーション違反ですとのこと。
うーむ。
ということで、次は VirtualBox をフルインストールしてみる。 これがまた大変。必要なパッケージやらライブラリやらを大量に インストールして、なんとかコンパイルはできたが、、、 VBoxHDD の該当箇所が今ひとつ不明。
VHDのマウント
Xenで利用している VHD をマウントしたい。 ということとで、 VirtualBox の VHD でマウントできるかテスト。
http://forums.virtualbox.org/viewtopic.php?f=26&t=33355に従って作業。VirtualBox のライブラリが必要。
wget http://download.virtualbox.org/virtualbox/3.2.6/VirtualBox-3.2-3.2.6_63112_rhel5-1.i386.rpm rpm -i VirtualBox-3.2-3.2.6_63112_rhel5-1.i386.rpm yum install fuse-devel yum install subversion svn co http://www.virtualbox.org/svn/vbox/trunk/include/ wget http://forums.virtualbox.org/download/file.php?id=2866 -O vdfuse-v80.c wget http://forums.virtualbox.org/download/file.php?id=2864 -O vdbuild.txt wget http://forums.virtualbox.org/download/file.php?id=2865 -O vdautomount-0.1.txt gcc vdfuse.c -o vdfuse -I ./include/ -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -pthread -L/lib -lfuse -lrt -ldl -l:/usr/lib/virtualbox/VBoxDD.so echo 'user_allow_other' >> /etc/fuse.confでコンパイル完了。
Linux LVM2, XenServer, iSCSI でハマり。
XenServer が iSCSI を認識しなくなった。 コトの発端は不明だが、どうも調子が悪いVMがいたので、アップデートを するついでに再起動してやろうと(5.5 -> 5.5.2 or 5.6)考え、VMを止め、 再起動してみた。
と、iSCSI 経由でマウントしていたディスクが読めない。げげ。 21もVMが動いているのに。。。
どういうわけかLVMのVolumeGroup の情報が消えており、 マウントできなくなっている。
Xenの場合は、 SR (Storage Repository)というもう一つのしくみがあって、 これも、もちろん動かない。 というわけで、Xen, LVM2, VHD, SR等との戦いが始まっている。 勝てる見込みはまだ無い。とりあえず、LVM の知識が必須とのことで、 http://www.ibm.com/developerworks/jp/linux/library/l-lvm2/ が詳しいことを発見。 再度勉強してみる。
/dev/mapper dmsetup など、新しい発見もあり、楽しいが、21のVMを救うのが大事。 VHDをマウントする方法も見つからず、まだ先が見えない。うーむ。 この記事の中にお好みのパーティショナー (fdisk、parted、gparted) を使用して、LVM 用の新しいパー ティションを作成してください。LVM でサポートされてはいるものの、ディスクをまるご と 1 つの単位として LVM を使用することは推奨されません。そのようなディスクは他のオ ペレーティング・システムが未初期化ディスクと見なし、消去する可能性があるためです。 ディスク全体をカバーするパーティションを作成するようお勧めします。という記述がある。これだ。この可能性が高い。
Ruby で Google Data API
Ruby を使って Google Data API のアクセスをしたいと思う。
gems に gdata というのがある。
http://code.google.com/p/gdata
にもあるが、今ひとつドキュメント不足。
そもそも、どうやって使うのか。
わかったのは
require 'rubygems'
gem 'gdata'
ということらしい。