Ubuntu Weekly Recipe

第345回 UbuntuとOpenNebulaでクラウド環境を構築してみよう(前編)

この記事を読むのに必要な時間:およそ 7 分

権限管理

OSのユーザーアカウントとは別に,OpenNebula上で独立したユーザー管理機能を持ちます。

OpenNebulaのユーザー管理機能はUNIXライクな設計になっています。ユーザーは1つ以上のグループに属し,仮想マシン,ネットワーク,ストレージ等のリソースはOWNER,GROUP,OTHERでパーミッション設定ができます。このためたとえば,

  • 自分の作成した仮想マシンのディスクイメージを全ユーザーに公開したい
  • あるIPアドレスレンジのネットワークを特定のグループに属するユーザーだけで使用したい

と言った制御が直観的に可能です。

オーナー,グループの変更やパーミッションの変更の方法もUNIXライクです。たとえば,ネットワークリソース⁠network1⁠をグループ⁠group1⁠に所属するユーザーのみが利用できるようCLIから設定するには,下記のコマンドを実行します注5)⁠

$ onevnet chgrp "network1" "group1"
$ onevnet chmod "network1" 660

onevnetがネットワークリソースの操作コマンドで,そのサブコマンドのchgrp,chmodで権限を設定しています。UNIXライクなOSを触っている人なら何となく何をしているかわかるのではないかと思います。

注5)
Sunstoneからも同じ操作が可能です。

クォータ

ユーザー単位,グループ単位で各種リソースにクォータを設定でき,リソース使用量を柔軟に制御できます図8)⁠

図8 ユーザー単位でクォータを設定中

図8 ユーザー単位でクォータを設定中

アカウンティング

各仮想マシンの作成時刻/破棄時刻や使用CPU数,メモリサイズ,ネットワーク送受信量など,課金の際に必要となるリソース使用量情報を,CLI,Webインターフェースから一通り取得可能です。

管理者はすべてのユーザーのリソース使用量を図9)⁠ユーザーは自分のリソース使用量を図10随時確認できます。

図9 管理者が全ユーザーのリソース使用量をCLIから取得したところ

図9 管理者が全ユーザーのリソース使用量をCLIから取得したところ

図10 ユーザーが自分のリソース使用量をSunstoneから取得したところ

図10 ユーザーが自分のリソース使用量をSunstoneから取得したところ

OpenNebulaのインストールと環境構築

今回は物理マシンを2台使ってOpenNeubla環境を構築してみます。 OpenNebulaデーモンの稼働するマシンを「フロントエンド」⁠仮想マシンの稼働するマシンを「ホスト」と呼称します。今回構築する環境は,フロントエンド1台,ホスト1台という構成になります。 フロントエンド,ホストともにOSはUbuntu 14.04 LTS Serverとし,インストールするOpenNebulaパッケージはOpenNebula.orgが公開しているUbuntu 14.04用パッケージを使用します。 使用するハイパーバイザはKVMです。

OpenNebulaではフロントエンド/ホスト間のストレージアクセス方法として複数の手段が選択できます。今回はフロントエンドとホスト間でNFSによりストレージを共有し,ディスクイメージにアクセスする方法を取ります注6)⁠

バックエンドのデータベースはデフォルトのSQLiteを使用します注7)⁠

注6)
その他には「フロントエンド/ホストともにローカルディスクを使用しSSH経由でディスクイメージを転送」⁠Cephによる共有」などが公式にサポートされています。
注7)
SQLiteの代わりにMySQLを使用することも可能です。

準備

Ubuntu 14.04のリポジトリにはOpenNebulaのパッケージが登録されていますが,バージョンが3.4.1-4.1ubuntu1と非常に古いです(OpenNebula 3.4.1は2012年5月リリース)⁠ 最新バージョン4.8.0を使用するため,フロントエンドとホストの両方にOpenNebula.orgのリポジトリを追加します。

% wget -q -O- http://downloads.opennebula.org/repo/Ubuntu/repo.key | sudo apt-key add -
OK
% sudo vi /etc/apt/sources.list.d/opennebula.list

opennebula.listの内容は以下のとおりです。

deb http://downloads.opennebula.org/repo/4.8/Ubuntu/14.04/ stable opennebula

apt-get updateを実行し,エラーが出ないことを確認します。

% sudo apt-get update

apt-cache policy opennebulaを実行し,インストール候補が4.8.0-1となっていることを確認します。

% apt-cache policy opennebula
opennebula:
  インストールされているバージョン: (なし)
  候補:               4.8.0-1
  バージョンテーブル:
     4.8.0-1 0
        500 http://downloads.opennebula.org/repo/4.8/Ubuntu/14.04/ stable/opennebula amd64 Packages
     3.4.1-4.1ubuntu1 0
        500 http://jp.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages

著者プロフィール

大田晃彦(おおたあきひこ)

株式会社 創夢 所属。UbuntuとGentooでアニメを録画したりしながら暮らしています。全体的に浅いです。