pdoc 0.1 documentation

OpenNebula

«  ConVirt2   ::   Contents   ::   OpenQRM  »

OpenNebula

いわゆる一つのクラウド管理システム。商用版のProがあるけど、ここではOSS版を扱う。
http://opennebula.org/

ここでは、1台のマシンでKVM、OpenNebulaの2つの役割を実施させる

KVMの準備

# apt-get install kvm libvirt-bin bridge-utils
# modprobe kvm-intel
# lsmod | grep kvm
kvm_intel             137721  0
kvm                   415549  1 kvm_intel
# echo "kvm_intel" >> /etc/modules

Interfaceの用意

KVMを使う人にとっては普段通りだと思うのだが、仮想マシン接続用のbridgeを用意する。

# cat /etc/network/interfaces
    auto eth0
    iface eth0 inet manual
    iface eth0 inet6 manual

    auto br0
    iface br0 inet static
      address 192.168.122.81
      netmask 255.255.255.0
      network 192.168.122.0
      broadcast 192.168.122.255
      gateway 192.168.122.1
      dns-search ainoniwa.net
      dns-nameservers 192.168.122.31
      bridge_ports eth0
      bridge_fd 9
      bridge_hello 2
      bridge_maxage 12
      bridge_stp off
    iface br0 inet6 static
      address 2001:380:e08:f7::81
      netmask 64
# /etc/init.d/networking restart

libvirtdを遠隔操作可能にする

# vi /etc/libvirt
  listen_tls = 0
  listen_tcp = 1
# vi /etc/default/libvirt-bin
  #libvirtd_opts="-d"
  libvirtd_opts="-d -l"
# /etc/init.d/libvirt-bin restart

Note

listen_tlsはお好みで

OpenNebulaのダウンロード

  1. http://downloads.opennebula.org/ へアクセス。
  2. “OpenNebula X.X.X Ubuntu 12.04 tarball” を選択(それ以外の項目はノータッチ)
  3. “Download OpenNebula” を選択

インストール

ダウンロードしたファイルがrootのホームディレクトリにあると仮定してGo.

# tar zxvf Ubuntu-12.04-opennebula-3.8.3.tar.gz
# mkdir /usr/src/deb
# mv opennebula-3.8.3/* /usr/src/deb/
# ls /usr/src/deb/
  libopennebula-java_3.8.3-1_all.deb          opennebula-sunstone_3.8.3-1_all.deb
  opennebula_3.8.3-1_amd64.deb                opennebula-common_3.8.3-1_all.deb
  opennebula-tools_3.8.3-1_all.deb            ruby-opennebula_3.8.3-1_all.deb
  libopennebula-java-doc_3.8.3-1_all.deb      opennebula-node_3.8.3-1_all.deb
  opennebula_3.8.3-1.dsc
# cd /usr/src/deb
# apt-ftparchive packages . | gzip -c9 > Packages.gz
# apt-ftparchive sources . | gzip -c9 > Sources.gz
# echo "deb file:/usr/src/deb/ ./" >> /etc/apt/sources.list
# apt-get update
# apt-cache search opennebula
# apt-get install libopennebula-java opennebula-common opennebula opennebula-node opennebula-sunstone opennebula-tools ruby-opennebula
# *** Note ***
# /usr/share/opennebula/install_novnc.sh

Note

Web GUIで操作する時、1クリックでVNCが起動してコンソール表示する場合は、install_novnc.shを使って、novncを有効にしておく。

Web GUI(sunstone)の設定

以下の箇所のみ変更

# vi /etc/one/sunstone-server.conf
  #:host: 127.0.0.1
  :host: 0.0.0.0
# /etc/init.d/opennebula-sunstone start
# netstat -pantu | grep 9869
tcp        0      0 0.0.0.0:9869            0.0.0.0:*               LISTEN      6703/ruby

http://<ip-address>:9869/ にアクセスしてログイン画面が出ることを確認。

でもアカウント分かんないよね。

パスワードの確認と設定

ちょっと面倒なことに、ログイン画面に到達した時点ではアカウントが分からない。

インストールする際に、勝手にパスワードが生成されてしまう。

従って、その確認が必要になる。

# su -l oneadmin
(oneadmin)$ cat .one/one_auth
oneadmin:XXXXXXXXXXXX

ここに書いてある”XXXXXXXXXXXX”がパスワードになる。

再度、 http://<ip-address>:9869/ にアクセスして、 user : oneadmin / password : XXXXXXXXXXXX としてログイン出来るか確認する。

ログイン後の基本操作

ホストの追加

Nameと書かれているのがhostnameの意味であり、そこにIPを入れてもいい、という事に気づくまでに時間がかかって心が折れそうになりました。

仮想ネットワークの追加

dummyは動作しないインタフェース。スタンドアロンのホストを作りたいときにだけ使用する? 存在しない

エラーだらけ

ホスト監視をSSH経由でやることを、ちゃんと読んで無かった。

# su - oneadmin
$ ssh localhost bash /var/lib/one/remotes/im/run_probes kvm 0 localhost
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied
error: failed to connect to the hypervisor
ERROR MESSAGE --8<------
Error executing kvm.rb
ERROR MESSAGE ------>8--
ARCH=x86_64 MODELNAME="Intel(R) Xeon(R) CPU E31235 @ 3.20GHz"

デフォルト設定だと、”Could not find information driver im_dummy”と言われるので、IM_MADのコメントアウトを外す

vi /etc/one/oned.conf

#-------------------------------------------------------------------------------
#  Dummy Information Driver Manager Configuration
#-------------------------------------------------------------------------------
IM_MAD = [ name="im_dummy", executable="one_im_dummy"]

こんなんも観測されたので、一応権限変えた。

/var/log/one/oned.log

Sun Jul 22 04:34:02 2012 [ReM][D]: GroupPoolInfo method invoked
Sun Jul 22 04:34:02 2012 [InM][I]: Command execution fail: scp -r /var/lib/one/remotes/. localhost:/var/tmp/one
Sun Jul 22 04:34:02 2012 [InM][I]: scp: /var/tmp/one/./hooks: Permission denied
Sun Jul 22 04:34:02 2012 [InM][I]: scp: /var/tmp/one/./auth: Permission denied
Sun Jul 22 04:34:02 2012 [InM][I]: scp: /var/tmp/one/./vmm: Permission denied
Sun Jul 22 04:34:02 2012 [InM][I]: scp: /var/tmp/one/./im: Permission denied
Sun Jul 22 04:34:02 2012 [InM][I]: scp: /var/tmp/one/./datastore: Permission denied
Sun Jul 22 04:34:02 2012 [InM][I]: scp: /var/tmp/one/./vnm: Permission denied
Sun Jul 22 04:34:02 2012 [InM][I]: scp: /var/tmp/one/./tm: Permission denied
Sun Jul 22 04:34:02 2012 [InM][I]: scp: /var/tmp/one/./scripts_common.rb: Permission denied
Sun Jul 22 04:34:02 2012 [InM][I]: scp: /var/tmp/one/./scripts_common.sh: Permission denied
Sun Jul 22 04:34:02 2012 [InM][I]: ExitCode: 1
Sun Jul 22 04:34:02 2012 [InM][E]: Error monitoring host 10 : MONITOR FAILURE 10 Could not update remotes
# chown oneadmin /var/tmp/one
# ls -l /var/run/libvirt/libvirt-sock
srwxrwx--- 1 root libvirtd 0  7月 21 22:39 /var/run/libvirt/libvirt-sock
# usermod -G libvirtd oneadmin
# su - oneadmin
$ groups
oneadmin libvirtd
$ ssh localhost bash /var/lib/one/remotes/im/run_probes kvm 0 localhost
ARCH=x86_64 MODELNAME="Intel(R) Xeon(R) CPU E31235 @ 3.20GHz" HYPERVISOR=kvm TOTALCPU=800 CPUSPEED=1600 TOTALMEMORY=16349352 USEDMEMORY=794620 FREEMEMORY=15554732 FREECPU=799.2 USEDCPU=0.799999999999955 NETRX=10095622 NETTX=101702 HOSTNAME=kazamori

最終的に、こんな感じになればOKかな、と。

/var/log/one/oned.log

Sun Jul 22 04:44:12 2012 [InM][I]: Monitoring host localhost (12)
Sun Jul 22 04:44:12 2012 [InM][D]: Host 12 successfully monitored.

«  ConVirt2   ::   Contents   ::   OpenQRM  »