最新式!(?)bfEBS用のEBSイメージのインポート

By | 2013/08/14

お久しぶりです。
リプレーションのインフラ担当SE、utunです。

今回はSEC(通常のEucalyptusでも大体同じ)のbfEBSイメージを自動登録する手法についての模索を、適当な感じに書いていきます。

bfEBS用のEBSイメージの用意

まぁそこからだよね。
実はこれは、前に「EBSバックアップな話」で書いた通りでOK。

但し、ちょっと今回考えているのは、「WEB上から」一発で入れたいよね!
ってところがミソなんだ。

だから、前の話でバックアップしたデータを、「Webサーバ上で公開」して下さい!
うちも適当にそのうち公開するんでお楽しみに!

従来のbfEBS用のEBSイメージのインポート

従来(?)のやり方だと、以下のようになる。
0、自分のLinuxPCを用意する(まぁ皆すでに持ってるし、特に語ることはないよね!)
1、ダミーのvolumeを作成
2、ダミーのinstanceを作成
3、ダミーinstanceにダミーvolumeをアタッチ
4、ダミーinstanceのssh rootログインを有効化
5、自分のLinuxPCからダミーinstanceのアタッチしたダミーvolumeデバイスにgzipした標準出力経由でデータ上書き
gzip – < EBSイメージ | ssh -i key.priv root@instanceIP “zcat > /dev/vdb”
6、ダミーinstanceからダミーじゃなくなった元ダミーvolumeをデタッチ
7、元ダミーvolumeからsnapshotを作成
8、snapshotからEMI登録
9、ダミーをダミーしてダミーによるダミーのダミーからダミーしてダミー

こんな感じで、最後にはダミーがゲシュタルト崩壊を起こすこと必至です。
超めんどくさいね。
きっとこの手順で毎回やっている人は、ドMか特殊な精神構造の人に違いない。

残念ながら、私は標準的なMなので、さすがにここまでの苦行を何度も繰り返す事は出来ません。

そこで

自動化するわけですよ。
まぁ、まだ作成中なんで、コマンドベースで

頑張ればきっと自動化できるよ!

ってくらいの内容を書いていきます。

最新式!(?)bfEBS用のEBSイメージのインポート

まず、従来の方法を見て一番思うのは、

ダミーインスタンスいらなくね!?

ってことだよね。
なんでボリュームにデータ入れ込むだけなのに、わざわざダミーインスタンスとかわけわかめなものを作らねばならんのか。
皆きっと思ってる。
ダミーインスタンスなんていらないんや!

ってことで、色々試してみた結果。

同じ容量のsnapshotなら直接上書きできる

事が分かりました。
これを前提に手順を組みなおします。

1、ダミーvolumeを作成
euca-create-volume -z $AZ -s $VOLUME_SIZE
2、ダミーsunapshotを作成
euca-create-snapshot $VOLUME_ID
3、ダミーsunapshotにWeb上のイメージを直で上書き
curl “http://image_file_url” > /path/to/eucalyptus/volumes/$SNAPSHOT_ID
4、snapshotからEMI登録
euca-register -n “$IMAGE_NAME” –root-device-name /dev/sda –snapshot $SNAPSHOT_ID
5、勝利の余韻に浸りながらビール

なんと手順が半分になちゃったぜ!
そしてダミーがたった3回しか登場しない!
しかもインスタンス作らないんで、実際の作成時間は半分以下になることうけあいです!

まぁただ、明らかにいかがわしいやり方だから、
いつ出来なくなるかわからんけどね!

蛇足

ちょっと前に友人と飲みに行った「魚金」。
魚がまじやばい。
画像は刺身6点盛り(メニュー上は)。
どう見ても12点盛り・・・。

uokin

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です