2015/09/16

devstackにlxdコンテナ組み込み やってみたが・・


先の記事では、Shuttle DS57Uというスモール環境にopenstackを構築してみた話を書きました。

インスタンスをkvmからlxdに切り替えてみたいと思って色々試したのですが、残念ながら最後のインスタンス作成で失敗します。
手順は間違っていないと思っているので、手順自体は記録しておこうと思って書きました。

lxd は、lxcとopenstack/novaを繋ぐハイパバイザーってことらしい。
nova-compute-lxd をdevstackに組み込めば良いだけ。
Introduction to nova-compute-lxd が全てを教えてくれています。

Ubuntu 15.04 vividをクリーンインストールする(opensshだけ入れる)

$ sudo apt-get update
$ sudo apt-get install ntp git -y
$ sudo apt-get upgrade -y

ネットワークを固定IPにして、ipv6をディスエーブルする。お好みで。



パスワード要求無しでsudo出来るスーパーユーザを作る

$ sudo adduser stack
「stack ALL=(ALL) NOPASSWD:ALL」 を /etc/sudoers に追記

以降は全てstackユーザでの操作

$ su - stack

最初にnova-compute-lxdを/opt/stackにクローンする
別の場所にすると適応時に面倒なので、素直にここに置く

$ git clone https://github.com/lxc/nova-compute-lxd /opt/stack/nova-compute-lxd
nova-compute-lxd/contrib/devstack/README.first に書かれている通りにdevstackをクローン

$ git clone https://github.com/openstack-dev/devstack /opt/stack/devstack

devstackに対してlxdの設定スクリプトを実行する

$ cd /opt/stack/nova-compute-lxd
$ contrib/devstack/prepare_devstack.sh

すると、/opt/stack/devstackに対して、さくっと色々やってくれます。

/opt/stack/devstack/localrcファイルが作られているので、そこに自分の設定を追記します。
VIRT_DRIVER=lxd
export NON_STANDARD_REQS=1

SERVICE_TOKEN=shuttle01
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

LOGFILE=$DEST/logs/stack.sh.log
LOGDAYS=2
な感じ。FIXED_RANGEやFLOATING_RANGEやら追加してもいいでしょう。自分はデフォルトでいいのでこんなもんです。

devstackのインストール&開始

$ cd /opt/stack/devstack
$ ./stack.sh

lxc、lxd、その他諸々、この中で一気にインストールとセットアップが行われます。
30分ほど待つと、めでたく lxdがインテグレーションされたopenstackが稼働します。

しかし残念ながら今のところ、コンテナ起動が成功しません。



クラウドイメージの準備・やってみたものの・・


標準で入っている cirros イメージはlxdコンテナとしては起動できません。

$ wget -O vivid-server-cloudimg-amd64-root.tar.gz https://cloud-images.ubuntu.com/vivi/current/vivid-server-cloudimg-amd64-root.tar.gz

$ source /opt/stack/devstack/openrc
$ glance image-create --name='lxc' --container-format=bare --disk-format=raw < vivid-server-cloudimg-amd64-root.tar.gz

これでイメージが取り込まれます。
が、これを起動したんですが、残念ながら起動できませんでした。

No valid host was found. There are not enough hosts available

になってしまう・・・

nova-compute-lxd/contrib/images/convert-ubuntu-cloud-images.sh というのがあったので

$ sudo ./convert-ubuntu-cloud-images.sh ~/vivid-server-cloudimg-amd64-root.tar.gz ~/vivid-server-cloudimg-amd64-root2.tar.gz
$ glance image-create --name='lxc2' --container-format=bare --disk-format=raw < vivid-server-cloudimg-amd64-root2.tar.gz

でトライしてみましたが、結果は変わらず。

ログを見ると、n-condのでエラーが出ている。
ソースを軽く追いかけると、selected_hostsがない。もしくは見つけられない?状態らしい。
インスタンスが必要とするvCPUの数と用意されている数を比較して足りない場合エラーっていう
処理のところらしいけど。

イメージが同行という以前のところでコケている感じ。まあ、もう少し待って再トライです。

0 件のコメント:

コメントを投稿