openstack+lxdのインストールメモ
参考URL
- http://events.linuxfoundation.org/sites/events/files/slides/ContainerCon%202015-%20LXD%20%26%20OpenStack.pdf
- http://ossan-engineer.blogspot.jp/2015/09/devstacklxd.html
- https://insights.ubuntu.com/2015/05/06/introduction-to-nova-compute-lxd/
- https://linuxcontainers.org/lxd/getting-started-openstack/
- https://github.com/lxc/lxd
- https://github.com/lxc/nova-compute-lxd/tree/master/devstack
前提条件
ubuntu 15.10 server editionを使用。
ubuntu server上でintel vtが有効になっているか確認
※lxcを使うなら不要かも
stack@devstack00:~$ cat /proc/cpuinfo |grep vmx flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase smep
ubuntu serverの設定(IPアドレスの固定化)
/etc/network/interfaceを以下のように編集
※以下でethXとしている部分は、enoxxxに読み替える
auto eth0 iface eth0 inet static address 192.168.1.20 netmask 255.255.255.0 gateway 192.168.1.2 dns-nameservers 192.168.1.2 auto eth1 iface eth1 inet static address 0.0.0.0
ネットワークの再起動
sudo ifdown eth0 && sudo ifup eth0 sudo ifdown eth1 && sudo ifup eth1
githubからdevstackのDL
$ cd ~ $ git clone https://github.com/openstack-dev/devstack.git -b stable/liberty
local.confの編集
$ cat << _EOT_ > ~/devstack/local.conf [[local|localrc]] SERVICE_TOKEN=azertytoken ADMIN_PASSWORD=nomoresecrete MYSQL_PASSWORD=stackdb RABBIT_PASSWORD=stackqueue SERVICE_PASSWORD=$ADMIN_PASSWORD HOST_IP=192.168.1.20 FIXED_RANGE=10.0.0.0/24 FIXED_NETWORK_SIZE=256 FLAT_INTERFACE=eth1 ENABLED_SERVICES=rabbit,mysql,key ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,n-novnc,n-cauth ENABLED_SERVICES+=,neutron,q-svc,q-agt,q-dhcp,q-l3,q-meta ENABLED_SERVICES+=,g-api,g-reg ENABLED_SERVICES+=,horizon Q_PLUGIN=ml2 Q_AGENT=openvswitch Q_USE_DEBUG_COMMAND=True Q_L3_ENABLED=True Q_L3_ROUTER_PER_TENANT=True ENABLE_TENANT_TUNNELS=True LOGFILE=$DEST/logs/stack.sh.log LOGDAYS=2 enable_plugin nova-lxd https://github.com/lxc/nova-compute-lxd FORCE=yes GIT_BASE=https://git.openstack.org _EOT_
lxc用のイメージ登録
wget -O vivid-server-cloudimg-amd64-root.tar.gz https://cloud-images.ubuntu.com/vivid/current/vivid-server-cloudimg-amd64-root.tar.gz glance image-create --name='lxc' --container-format=bare --disk-format=raw < vivid-server-cloudimg-amd64-root.tar.gz
※このイメージには/etc/network/interfaces.d配下に、eth0.cfgしかない。 複数NICでdhcp使うなら、eth[1-N].cfgの設定ファイルも入れておく必要あり。
トラブルシューティング
コンテナが起動できない
No valid host was found. There are not enough hosts available を回避する方法。 n-condをみると、config-driveを使おうとしている模様。 nova.confでconfig-driveが強制的に使用するようになっているので、 それをやめる。
vi /etc/nova/nova.conf ... force_config_drive = False ...
screenに入って、n-condのプロセスを再起動
ダッシュボードからconsoleアクセス出来ない
TODO: novncの設定を見直す。未対処。 ただし、ubuntu cloudイメージはconsoleアクセスを許容していなかったような。 コンソールアクセスしたかったらイメージ側も対処する必要があるかもしれない。
openstack-lxdのコンテナをlxc-lsで確認
lxc-ls -P /var/lib/lxd/containers/ --fancy
openstack-lxdのコンテナの内部に入る
sudo lxc-attach -P /var/lib/lxd/containers -n instance-00000007