この記事は OpenStack Advent Calendar 2012 JP ネタの一部です。
前置き
普通にOpenStackから仮想マシンを作る時は、
1.ネットワークの作成
2.ネットワークへサブネットの割当
3.ネットワークを指定して仮想マシンを作成
A.ネットワークへポート(仮想マシンのIF)が割り当てられる
B.ポートへ割り当てられるアドレスが決定される
C.仮想マシンが作成される
D.DHCPでアドレスが割り当てられる(Bで決まったアドレス)
という流れで仮想マシンが作成されます。この場合仮想マシンへ割り当てられるアドレスは割り当てたサブネットの中から未使用のモノが割り当てられます。つまりアドレスはOpenStackから指定されるため、使用者が任意のアドレスを割り当てられません。
しかし場合によってはアドレスを任意に決めたい場合もあります。
・別環境から持ってきた仮想マシンをそのまま使いたい
・テスト環境の構築のため、アドレスを固定化したい 等々
出来そうで出来ないモロモロ
1.起動した仮想マシンのアドレスを、仮想マシン側の操作で変える
NGです。仮想マシンにはOpenStackが割り当てたアドレス以外の通信ができないようにiptablesのルールがかかります。
2.サブネットを割り当てないネットワークを作成して仮想マシンを起動する。
本来ならできても良さそうなのですがNGです。
novaの問題っぽいのですが、仮想マシン作成時に割り当てられるアドレスが決定されていないと仮想マシンにNICが作成されません。
更にnovaは割り当てられたアドレス以外が通信できないようにiptablesのルールがかかるため、そこも回避する仕組みを入れこまないと行けないため、実はハードルが高いです。
3.nova boot のオプションv4-fixed-ip を使う
正攻法・・・なはずですが、今はバグってて動きません/(^o^)\
https://bugs.launchpad.net/nova/+bug/1056835
結局どうするか
という事で、最後の手段になります。かなり冗長的な手順なのですが、
1.ネットワークの作成
2.ネットワークへサブネットの割当
A.ネットワークへポートを事前に作成し、割当てるアドレスを決めておく。
3.アタッチするポートを指定して仮想マシンを作成
B.仮想マシンが作成される
という流れで仮想マシンを作成することで、アドレスを固定化できます。
参考手順をこちらに上げておきました。
3のバグが治れば一発なんですけどね。誰かパッチ書いてください( ̄人 ̄)
0 件のコメント:
コメントを投稿