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 をマウントしたい。 ということとで、 VirtualBoxVHD でマウントできるかテスト。

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'

ということらしい。

Rancid はプロンプトに厳しい?

Rancidをインストールしてみたのだが、なぜかうまく動かない。 RancidPerl と expect で作られているようだが、 コードを見てみると、なんとプロンプトが固定になっている。 これを修正してみると、なんとか動いたように見える。 うーむ、広く使われているrancid も、こういった問題があるのか。。。

Rancid をCentOS にインストール

ネットワーク機器の構成管理ツール rancid を インストールしてみる。 Linuxへのrancid の導入は http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch1_:_Network_Backups_With_Rancid に詳しい。足りないのは

yum install cvs 
程度かな。