Movatterモバイル変換


[0]ホーム

URL:


Uploaded byautumnalsky
PDF, PPTX1,659 views

OpenNebula on Ubuntu

Ubuntu 10周年記念オフラインミーティング(兼 14.10リリースパーティ)で発表したOpenNebulaの紹介スライドです。

Embed presentation

Download as PDF, PPTX
UbuntuとOpenNebulaで クラウド環境を構築してみよう (発動篇) 2014/12/13
自己紹介 • 名前:大田 晃彦(Akihiko Ota) • 所属:株式会社 創夢 • 初めてちゃんとさわったUbuntu:8.04
Ubuntuでクラウドと言えば • OpenStackが有名ですよね。 • でもOpenNebulaって選択肢もあるんですよ。
UbuntuでOpenNebula • gihyo.jpのUbuntu Weekly Recipe 第345回と第346回を書かせてもらいました • UbuntuとOpenNebulaでクラウド環境を構築してみよう • (前編)http://gihyo.jp/admin/serial/01/ubuntu-recipe/0345 • (後編)http://gihyo.jp/admin/serial/01/ubuntu-recipe/0346 • 2014/12/13時点の最新版はOpenNebula 4.10.1 • リポジトリのバージョンを適宜読み替えてください。 • (前編)はインストール、(後編)は環境構築 • (発動篇)は紹介メインで
OpenNebulaってどんなもの? • OpenNebula.org で開発しているクラウド構築管理ツール • 多数の物理マシン/マルチユーザー環境での仮想マシン管理 • データセンターや、企業・研究機関の計算機センターでの 利用が多い模様 • あまりAWSに似せて作っていない • 仮想マシンの管理に必要な機能 • 利用者と管理者にとっての「あると便利な機能」
OpenNebulaってどんなもの? • 最初のパブリックリリースは2008年3月 • わりと古株 • http://opennebula.org/opennebula-is-7-years-old/ • Open ベンダーによるロックインがなく • Simple 少人数でも運用でき • Flexible 既存のインフラにフィットし • Scalable 簡単に規模を変更できる
構成 http://docs.opennebula.org/4.10/_images/overview_builders.png • Hybrid は IBM SoftLayer と Microsoft Azure にも対応
構成 http://docs.opennebula.org/4.10/_images/overview_integrators.png
実装 • コアとなるOpenNebulaデーモン oned はC++で記述 • CLI、Web UIはRubyで記述 • ハイパーバイザ、ストレージ、ネットワーク等の差異をドライバスクリ プト(bash、Ruby)で吸収 • 仮想マシンの操作も物理マシン上のドライバスクリプトをSSHで実行 • SSHの認証方式は公開鍵認証 • 仮想マシン操作用の常駐プロセスを持たない • モニタリング用のプロセスは常駐
コマンドライン・インタフェース(CLI) • フルコントロール可能 • 直観的なコマンド構文 • 見やすい出力メッセージ • メッセージフォーマットは変更可能 • レンジ指定で複数のターゲットをまとめて操作可能 • CLIとonedはXML-RPCで通信 • oned稼働マシンとユーザーログインマシンを分離可能
Web UI(Sunstone) • フルコントロール可能 • ユーザーの位置づけ(ロール)によって複数のビューを選択可能 • admin、vcenter、vdcadmin、user、cloud • ビューの項目やボタンの表示、非表示が設定可能 • Sunstoneとonedは別プロセスとして稼働 • XML-RPCで通信 • onedと異なるマシン上で稼働可能
ユーザーとグループ • UNIXのユーザー/グループに類似のモデル • スーパーユーザーとして oneadmin が存在する • ユーザーは複数のグループに所属することも可能 • 特定ユーザーにグループリーダーとして限定的な管理者権限を与え ることも可能 • 認証方法はパスワード認証、SSH公開鍵認証、x509認証、LDAP 認証から選択可能 • ユーザー単位、グループ単位で各種リソースにクォータを設定可能
アカウンティング • 集計できる情報 • 仮想マシンの作成日時、破棄日時、CPU数、メモリサイ ズ、ネットワーク送受信量など • CLI、Web UIから任意のタイミングで集計できる • 管理者は全ユーザーの情報を取得可能 • グループリーダーは所属グループのユーザーの情報を取得可能 • 一般ユーザーは自分の情報のみ取得可能
リソース Datastore • ディスクイメージを格納するストレージごとに定義 • 用途、種類、転送方法などに応じて複数定義できる Image • VMの起動元のディスクイメージ • データ格納用のディスクイメージ • ISOイメージ • 等々 Virtual Network • IPアドレスレンジやネットワーク分割方法を定義 • ネットワーク分割方法は802.1Q、Open vSwitch、ebtables、等
リソース Template • ある仮想マシンが使用するリソースをまとめたもの • Image、Virtual Network、CPU数、メモリサイズ等 • スペックやOSなど、用途に応じて組み合わせて定義する Virtual Machine • 仮想マシン Image = Network = CPU = MEMORY = Image = Network = CPU = MEMORY = : :
リソース(インフラ寄り) Host • 仮想マシンが立ち上がるホストマシン(物理マシン) Cluster • Hostをカテゴライズしたもの • 必要に応じてDatastoreやVirtual Networkも関連付け可能 • 特定のグループに割り当てて占有させることも可能
リソースの組み合わせで環境構築 Image = Network = CPU = MEMORY = Image = Network = CPU = MEMORY = : : Frontend Host VM Cluster Image Datastore Network Template
リソースのパーミッション • UNIXのパーミッションに類似のモデル • リソースの所有権(ユーザー、グループ) • パーミッション • OWNER / GROUP / OTHER に対し、 • USE(4) : 変更を伴わない操作の許可・不許可 • MANAGE(2) : 変更を伴う操作の許可・不許可 • ADMIN(1) : 管理用途の特殊な操作の許可・不許可 • (Cluster, Host は除く)
パーミッション変更 • スーパーユーザー oneadmin は全リソースのパーミッションを変更可能 • グループリーダーは所属するグループのリソースのパーミッションを変更可能 • イメージ myimage を、 • 自分は USE(4)+MANAGE(2) を許可 • GROUP は USE(4) を許可 • OTHER は許可しない $ oneimage chmod myimage 640
オーナー・グループ変更 • スーパーユーザー oneadmin は全リソースのオーナー・グループを変更可能 • グループリーダーは所属するグループのリソースのオーナーを変更可能 • ネットワーク private1 のグループを yama に変更 $ onevnet chgrp private1 yama • テンプレート ubuntu_tmpl をオーナー kokona に変更 $ onetemplate chown ubuntu_tmpl kokona
Datastore
Datastore Type • ディスクイメージを格納するストレージ • Image Datastore • 原本となるディスクイメージを格納 • System Datastore • 仮想マシンの起動元ディスクイメージを格納 • Files Datastore(省略)
Datastore drivers (DS_MAD) • Image Datastoreは使用するストレージに応じて下記のドライバを選択 • File-system:スタンダードなファイル形式のディスクイメージを格納 • vmfs:vmfs形式のディスクイメージを格納(VMwareのみ) • LVM:LVMのボリュームをディスクイメージとして使用する場合 • Ceph:Ceph(RBD)をディスクイメージの格納先に使用する場合 • Dev:既存のブロックデバイスを直接仮想マシンにアタッチする場合 • System Datastoreには不要
Transfer Manager drivers (TM_MAD) • Datastore間のファイル移動方法(ドライバスクリプト) を選択 • Image Datastore、System Datastoreいずれにも必要 なパラメータ
Transfer Manager drivers (TM_MAD) • 種類 • shared:共有ストレージによるファイル移動 • ssh:SSH(scp)によるファイル移動 • qcow2:共有ストレージによるファイル移動(qcow2に特化) • vmfs:vmkfstoolsによるファイルコピー(VMware用) • ceph:Image DatastoreにCephを使用する場合(RBDを使用) • lvm:Image DatastoreにLVMを使用する場合(recommend) • fs_lvm:Image DatastoreにLVMを使用する場合(classical) • dev:Image DatastoreにDevを使用する場合
Type / DS_MAD / TM_MAD TM_MAD shared ssh qcow2 vmfs ceph lvm fs_lvm dev Type DS_MAD System - OK OK OK Image File-System OK OK OK OK vmfs OK Ceph OK LVM OK Dev OK • Image DatastoreのDS_MAD/TM_MADとSystem DatastoreのTM_MADの組み合わせに 注意
Image DS~System DS間のファイル移動 shared ssh Image DS System DS Image DS System DS cp ln -s snapshot etc... scp
マイグレーション shared ssh 転送 save restore System DS System DS System DS migrate save -> 転送 -> restore
Image
persistent / non-persistent • ディスクイメージ毎に定義可能な属性 • 仮想マシンの起動元ディスクイメージの変更を保持する or しない • persistent(保持する)  • 前回仮想マシンを破棄した時点のディスクイメージから再開 • 同時に1台のみ仮想マシンを作成可能 • non-persistent(保持しない) • 毎回初期状態から仮想マシンを作成 • 同時に複数台の仮想マシンを作成可能
persistent / non-persistent • persistentなディスクイメージ • 生活環境用の仮想マシン • non-persistentなディスクイメージ • 負荷に応じてスケールするワーカーノード • テスト用の仮想マシン
disk-snapshot • non-persistentなディスクイメージから起動した 仮想マシンのディスクを保存する • System DS上のディスクイメージをImage DSに コピー • 新しいディスクイメージとしてImage DSに登録 される
Network
Virtual Network • OpenNebulaのネットワークリソース管理方法 • Virtual Networkは下記のパラメータで構成される • 名前 • Hostのブリッジインタフェース名 • ネットワークモデル(使用するドライバスクリプト) • アドレスレンジ(IPv4、IPv6、MAC(任意)) • ネットワークアドレス、ネットワークマスク(任意) • デフォルトゲートウェイ、DNSサーバアドレス(任意)
ネットワークモデル • dummy (何もしない) • iptables • ebtables • 802.1Q • Open vSwitch • VMware (VMware環境専用)
CONTEXT
Contextualization • onedから仮想マシンOSへのパラメータ提供方法 • 仮想マシンに利用者のSSH公開鍵をコピー • 組織内で稼働中のNTPサーバのアドレスを通知 • 等々 • 任意の情報を仮想マシンOSに提供できる http://docs.opennebula.org/4.10/_images/contextualization.png
SSH公開鍵の受け渡し(1) • ユーザの属性情報を編集 $ oneuser update aoi • エディタが立ち上がるので、SSH_PUBLIC_KEY="公開鍵" を記述する SSH_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA BAQCa+81ye2rVpqtqYXWZ+3Jo66venKGSssB+r90b+(略)"
SSH公開鍵の受け渡し(2) • テンプレートを編集 $ onetemplate update u1404tmpl • エディタが立ち上がるので、CONTEXT節に SSH_PUBLIC_KEY="$USER[SSH_PUBLIC_KEY]" と記述する CONTEXT=[ SSH_PUBLIC_KEY="$USER[SSH_PUBLIC_KEY]" ]
1. テンプレートのCONTEXT節で指定された値をシェル変数形式で ファイルに出力 2. ファイルをISOイメージに固めてディスクイメージと一緒にデプロイ Image = : (1) SSH_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADQAB AAABAQCa+..." oned側 CONTEXT = (2)
仮想マシン側 SSH_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADQAB AAABAQCa+..." • OS起動時にISOイメージをマウント • ファイルに書かれたシェル変数SSH_PUBLIC_KEYを処理
CONTEXTスクリプト • ディスクイメージに事前にCONTEXTを処理するスクリプトをインストール しておく • OpenNebula.orgはCONTEXTスクリプトパッケージも用意 • Ubuntu/Debian用 • RHEL系5/6/7用 • OpenSUSE用 • Cloud-InitはOpenNebula CONTEXTにも対応 • CONTEXTスクリプトの代わりにCloud-Initで処理することも可能
MAC_PREFFIX:IP rule • OpenNebulaのデフォルトのIPアドレス管理、割り当て方法 • oned • 仮想マシンに割り当てるIPアドレスを16進変換 • プレフィックス 02:00: の後ろに16進変換したIPアドレスを付加して仮想マシン用 のMACアドレスを作成 • IPアドレス 192.168.1.154 ←→ MACアドレス 02:00:c0:a8:01:9a • libvirt XMLドメインファイル <mac address='02:00:c0:a8:01:9a'/> • 仮想マシン • MACアドレスの下4オクテットを10進変換してIPアドレスに設定 • CONTEXTスクリプトが処理
その他
OneFlow • 複数の仮想マシンをグループ化、階層化して管理可能 • 仮想マシン間の依存関係を定義可能 • NFSサーバーVM起動 → NFSクライアントVM起動 • DBバックエンドVM起動 → ワーカーVM起動 • を1コマンドで実行 • オートスケーリング
Marketplace • OpenNebula.systemsで運営されているサイト • http://marketplace.opennebula.systems/appliance • OpenNebula環境で利用できる各種ディスクイメージのカタログを公開 • Ubuntu、Debian、CentOS、ttylinux等 • KVM、Xen、VMware等 • CONTEXTスクリプトはインストール済み • Marketplaceから直接Datastoreにディスクイメージを登録可能 • 同様のサイトをローカルに立てることも可能(AppMarket)
OpenNebula使用感
OpenNebula使用感 • ストレージ • 物理マシンのローカルストレージが普通に使える • SSDを積んだマシンを活用したい • SPOFを減らしたい • ローカルストレージの場合でもマイグレーション可能 • 1台のonedで起動元ストレージの共有・ローカル混在が可能
OpenNebula使用感 • ディスクイメージ • ハイパーバイザがKVMの場合でもraw形式と qcow2形式のどちらも利用可能 • 外で作成したディスクイメージを持ち込みやすい
OpenNebula使用感 • CLI/Web UI • リソースの割り当て状況が把握しやすい • どの仮想マシンがどのホストで稼働しているか • どのIPアドレスがどの仮想マシンに割り当てられているか • レンジ指定でまとめて操作可能 • 仮想マシンを16台作成したい/削除したい • ホストを16台まとめてdisableにしたい
OpenNebula使用感 • 仮想マシンが稼働中の状態でホストをdisableにセットできる • 仮想マシンはホストがdisableでも操作できる 1. 停止予定のホストをdisableにし、新規デプロイ対象から除外 2. disableホスト上で稼働中の仮想マシンを他のホストにマイグレート 3. disableホストの電源を落としてメンテナンス • というオペレーションが可能
OpenNebula使用感 • ログ出力 • 適度なサイズで充分な内容 • syslog 経由で出力可能 • onevm show, onehost show などでエラーが確 認できる
OpenNebula使用感 • シンプル • 環境全体の見通しがよく、把握しやすい • 学習コストが少ない
OpenNebula使用感 • ちゃんと動く • 致命的な不具合に遭遇することが比較的少ない • よく分からない不具合に遭遇することが比較的少ない • コードを追いかけてデバッグすることが比較的少ない • 不具合対応に時間を割かなくて済む
OpenNebula使用感 • アップデートパスがきちんと用意されている • 環境を保持しつつ簡単にメジャーアップグレード可能

Recommended

PDF
第12回CloudStackユーザ会_ApacheCloudStack最新情報
PDF
Personal Cloud Automation
PPTX
OpenStack概要 ~仮想ネットワーク~
PDF
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
PPTX
ベアメタルプロビジョニング
PDF
Hyper-V を Windows PowerShell から管理する
PDF
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
PDF
OpenStack(RDO/Grizzly) ダッシュボード利用演習
PDF
環境構築自動化ツールのご紹介
PDF
TripleOの光と闇
PDF
知らないと地味にハマるOpen stackインストール時の注意点
 
PDF
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
PDF
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
PDF
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
PPTX
OpenStack マルチノード環境構築
PPT
Osc spring cloud_stack20130223
PDF
MHA for MySQLとDeNAのオープンソースの話
PDF
KVM+cgroup
PDF
あの日実行したコンテナの名前を僕達はまだ知らない。
PPTX
StackStormを活用した運用自動化の実践
PDF
Open Stack Day - Ansibleによる環境構築の自動化
PDF
OpenStack Icehouse構築手順書
PPTX
RDOを使ったOpenStack Havana - Neutron 構築編
PPTX
Dev cloudではじめるcloudstack4 3
PDF
Using ngx_lua / lua-nginx-module in pixiv
PDF
IaaSクラウドを支える基礎技術 演習編_v1_0
PDF
Dev cloud installation
PDF
IaaSクラウドを支える基礎技術 v1_0
PPTX
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PDF
OpenStackで始めるクラウド環境構築入門

More Related Content

PDF
第12回CloudStackユーザ会_ApacheCloudStack最新情報
PDF
Personal Cloud Automation
PPTX
OpenStack概要 ~仮想ネットワーク~
PDF
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
PPTX
ベアメタルプロビジョニング
PDF
Hyper-V を Windows PowerShell から管理する
PDF
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
PDF
OpenStack(RDO/Grizzly) ダッシュボード利用演習
第12回CloudStackユーザ会_ApacheCloudStack最新情報
Personal Cloud Automation
OpenStack概要 ~仮想ネットワーク~
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
ベアメタルプロビジョニング
Hyper-V を Windows PowerShell から管理する
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
OpenStack(RDO/Grizzly) ダッシュボード利用演習

What's hot

PDF
環境構築自動化ツールのご紹介
PDF
TripleOの光と闇
PDF
知らないと地味にハマるOpen stackインストール時の注意点
 
PDF
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
PDF
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
PDF
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
PPTX
OpenStack マルチノード環境構築
PPT
Osc spring cloud_stack20130223
PDF
MHA for MySQLとDeNAのオープンソースの話
PDF
KVM+cgroup
PDF
あの日実行したコンテナの名前を僕達はまだ知らない。
PPTX
StackStormを活用した運用自動化の実践
PDF
Open Stack Day - Ansibleによる環境構築の自動化
PDF
OpenStack Icehouse構築手順書
PPTX
RDOを使ったOpenStack Havana - Neutron 構築編
PPTX
Dev cloudではじめるcloudstack4 3
PDF
Using ngx_lua / lua-nginx-module in pixiv
PDF
IaaSクラウドを支える基礎技術 演習編_v1_0
PDF
Dev cloud installation
PDF
IaaSクラウドを支える基礎技術 v1_0
環境構築自動化ツールのご紹介
TripleOの光と闇
知らないと地味にハマるOpen stackインストール時の注意点
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
OpenStack マルチノード環境構築
Osc spring cloud_stack20130223
MHA for MySQLとDeNAのオープンソースの話
KVM+cgroup
あの日実行したコンテナの名前を僕達はまだ知らない。
StackStormを活用した運用自動化の実践
Open Stack Day - Ansibleによる環境構築の自動化
OpenStack Icehouse構築手順書
RDOを使ったOpenStack Havana - Neutron 構築編
Dev cloudではじめるcloudstack4 3
Using ngx_lua / lua-nginx-module in pixiv
IaaSクラウドを支える基礎技術 演習編_v1_0
Dev cloud installation
IaaSクラウドを支える基礎技術 v1_0

Similar to OpenNebula on Ubuntu

PPTX
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PDF
OpenStackで始めるクラウド環境構築入門
PPTX
OpenStackで始めるクラウド環境構築入門
PPTX
OpenStackで始めるクラウド環境構築入門
PDF
Hadoop on LXC
PDF
OpenStack入門 2016/06/10
PDF
Apache cloudstack4.0インストール
PDF
Aeolus Conductorによる複数環境へのデプロイ自動化
PDF
クラウドインフラのゲスト OS は openSUSE で—今までの&新しい openSUSE 活用法の紹介
PDF
Apache CloudStack 4.0 インストール(ver0.5)
PDF
OpenStackで始めるクラウド環境構築入門
PDF
OpenStackで始めるクラウド環境構築入門
PPTX
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
PDF
VPSもDesktopもYaSTを使ってLinuxをらくらく設定―ファイルサーバー構築・管理編
PDF
Lxc で始めるケチケチ仮想化生活?!
PDF
Osc2009 Do Xen Hara
PDF
Docker hands on nifty sakura jul19
PDF
NCstudy 2.5
PPT
2010 04クラウド技術講座
 
PDF
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
Hadoop on LXC
OpenStack入門 2016/06/10
Apache cloudstack4.0インストール
Aeolus Conductorによる複数環境へのデプロイ自動化
クラウドインフラのゲスト OS は openSUSE で—今までの&新しい openSUSE 活用法の紹介
Apache CloudStack 4.0 インストール(ver0.5)
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VPSもDesktopもYaSTを使ってLinuxをらくらく設定―ファイルサーバー構築・管理編
Lxc で始めるケチケチ仮想化生活?!
Osc2009 Do Xen Hara
Docker hands on nifty sakura jul19
NCstudy 2.5
2010 04クラウド技術講座
 
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる

OpenNebula on Ubuntu

  • 1.
  • 2.
    自己紹介 • 名前:大田晃彦(Akihiko Ota) • 所属:株式会社 創夢 • 初めてちゃんとさわったUbuntu:8.04
  • 3.
    Ubuntuでクラウドと言えば • OpenStackが有名ですよね。• でもOpenNebulaって選択肢もあるんですよ。
  • 4.
    UbuntuでOpenNebula • gihyo.jpのUbuntuWeekly Recipe 第345回と第346回を書かせてもらいました • UbuntuとOpenNebulaでクラウド環境を構築してみよう • (前編)http://gihyo.jp/admin/serial/01/ubuntu-recipe/0345 • (後編)http://gihyo.jp/admin/serial/01/ubuntu-recipe/0346 • 2014/12/13時点の最新版はOpenNebula 4.10.1 • リポジトリのバージョンを適宜読み替えてください。 • (前編)はインストール、(後編)は環境構築 • (発動篇)は紹介メインで
  • 5.
    OpenNebulaってどんなもの? • OpenNebula.orgで開発しているクラウド構築管理ツール • 多数の物理マシン/マルチユーザー環境での仮想マシン管理 • データセンターや、企業・研究機関の計算機センターでの 利用が多い模様 • あまりAWSに似せて作っていない • 仮想マシンの管理に必要な機能 • 利用者と管理者にとっての「あると便利な機能」
  • 6.
    OpenNebulaってどんなもの? • 最初のパブリックリリースは2008年3月• わりと古株 • http://opennebula.org/opennebula-is-7-years-old/ • Open ベンダーによるロックインがなく • Simple 少人数でも運用でき • Flexible 既存のインフラにフィットし • Scalable 簡単に規模を変更できる
  • 9.
    構成 http://docs.opennebula.org/4.10/_images/overview_builders.png •Hybrid は IBM SoftLayer と Microsoft Azure にも対応
  • 10.
  • 11.
    実装 • コアとなるOpenNebulaデーモンoned はC++で記述 • CLI、Web UIはRubyで記述 • ハイパーバイザ、ストレージ、ネットワーク等の差異をドライバスクリ プト(bash、Ruby)で吸収 • 仮想マシンの操作も物理マシン上のドライバスクリプトをSSHで実行 • SSHの認証方式は公開鍵認証 • 仮想マシン操作用の常駐プロセスを持たない • モニタリング用のプロセスは常駐
  • 12.
    コマンドライン・インタフェース(CLI) • フルコントロール可能• 直観的なコマンド構文 • 見やすい出力メッセージ • メッセージフォーマットは変更可能 • レンジ指定で複数のターゲットをまとめて操作可能 • CLIとonedはXML-RPCで通信 • oned稼働マシンとユーザーログインマシンを分離可能
  • 13.
    Web UI(Sunstone) •フルコントロール可能 • ユーザーの位置づけ(ロール)によって複数のビューを選択可能 • admin、vcenter、vdcadmin、user、cloud • ビューの項目やボタンの表示、非表示が設定可能 • Sunstoneとonedは別プロセスとして稼働 • XML-RPCで通信 • onedと異なるマシン上で稼働可能
  • 14.
    ユーザーとグループ • UNIXのユーザー/グループに類似のモデル• スーパーユーザーとして oneadmin が存在する • ユーザーは複数のグループに所属することも可能 • 特定ユーザーにグループリーダーとして限定的な管理者権限を与え ることも可能 • 認証方法はパスワード認証、SSH公開鍵認証、x509認証、LDAP 認証から選択可能 • ユーザー単位、グループ単位で各種リソースにクォータを設定可能
  • 15.
    アカウンティング • 集計できる情報• 仮想マシンの作成日時、破棄日時、CPU数、メモリサイ ズ、ネットワーク送受信量など • CLI、Web UIから任意のタイミングで集計できる • 管理者は全ユーザーの情報を取得可能 • グループリーダーは所属グループのユーザーの情報を取得可能 • 一般ユーザーは自分の情報のみ取得可能
  • 16.
    リソース Datastore •ディスクイメージを格納するストレージごとに定義 • 用途、種類、転送方法などに応じて複数定義できる Image • VMの起動元のディスクイメージ • データ格納用のディスクイメージ • ISOイメージ • 等々 Virtual Network • IPアドレスレンジやネットワーク分割方法を定義 • ネットワーク分割方法は802.1Q、Open vSwitch、ebtables、等
  • 17.
    リソース Template •ある仮想マシンが使用するリソースをまとめたもの • Image、Virtual Network、CPU数、メモリサイズ等 • スペックやOSなど、用途に応じて組み合わせて定義する Virtual Machine • 仮想マシン Image = Network = CPU = MEMORY = Image = Network = CPU = MEMORY = : :
  • 18.
    リソース(インフラ寄り) Host •仮想マシンが立ち上がるホストマシン(物理マシン) Cluster • Hostをカテゴライズしたもの • 必要に応じてDatastoreやVirtual Networkも関連付け可能 • 特定のグループに割り当てて占有させることも可能
  • 19.
    リソースの組み合わせで環境構築 Image =Network = CPU = MEMORY = Image = Network = CPU = MEMORY = : : Frontend Host VM Cluster Image Datastore Network Template
  • 20.
    リソースのパーミッション • UNIXのパーミッションに類似のモデル• リソースの所有権(ユーザー、グループ) • パーミッション • OWNER / GROUP / OTHER に対し、 • USE(4) : 変更を伴わない操作の許可・不許可 • MANAGE(2) : 変更を伴う操作の許可・不許可 • ADMIN(1) : 管理用途の特殊な操作の許可・不許可 • (Cluster, Host は除く)
  • 21.
    パーミッション変更 • スーパーユーザーoneadmin は全リソースのパーミッションを変更可能 • グループリーダーは所属するグループのリソースのパーミッションを変更可能 • イメージ myimage を、 • 自分は USE(4)+MANAGE(2) を許可 • GROUP は USE(4) を許可 • OTHER は許可しない $ oneimage chmod myimage 640
  • 22.
    オーナー・グループ変更 • スーパーユーザーoneadmin は全リソースのオーナー・グループを変更可能 • グループリーダーは所属するグループのリソースのオーナーを変更可能 • ネットワーク private1 のグループを yama に変更 $ onevnet chgrp private1 yama • テンプレート ubuntu_tmpl をオーナー kokona に変更 $ onetemplate chown ubuntu_tmpl kokona
  • 23.
  • 24.
    Datastore Type •ディスクイメージを格納するストレージ • Image Datastore • 原本となるディスクイメージを格納 • System Datastore • 仮想マシンの起動元ディスクイメージを格納 • Files Datastore(省略)
  • 25.
    Datastore drivers (DS_MAD)• Image Datastoreは使用するストレージに応じて下記のドライバを選択 • File-system:スタンダードなファイル形式のディスクイメージを格納 • vmfs:vmfs形式のディスクイメージを格納(VMwareのみ) • LVM:LVMのボリュームをディスクイメージとして使用する場合 • Ceph:Ceph(RBD)をディスクイメージの格納先に使用する場合 • Dev:既存のブロックデバイスを直接仮想マシンにアタッチする場合 • System Datastoreには不要
  • 26.
    Transfer Manager drivers(TM_MAD) • Datastore間のファイル移動方法(ドライバスクリプト) を選択 • Image Datastore、System Datastoreいずれにも必要 なパラメータ
  • 27.
    Transfer Manager drivers(TM_MAD) • 種類 • shared:共有ストレージによるファイル移動 • ssh:SSH(scp)によるファイル移動 • qcow2:共有ストレージによるファイル移動(qcow2に特化) • vmfs:vmkfstoolsによるファイルコピー(VMware用) • ceph:Image DatastoreにCephを使用する場合(RBDを使用) • lvm:Image DatastoreにLVMを使用する場合(recommend) • fs_lvm:Image DatastoreにLVMを使用する場合(classical) • dev:Image DatastoreにDevを使用する場合
  • 28.
    Type / DS_MAD/ TM_MAD TM_MAD shared ssh qcow2 vmfs ceph lvm fs_lvm dev Type DS_MAD System - OK OK OK Image File-System OK OK OK OK vmfs OK Ceph OK LVM OK Dev OK • Image DatastoreのDS_MAD/TM_MADとSystem DatastoreのTM_MADの組み合わせに 注意
  • 29.
    Image DS~System DS間のファイル移動shared ssh Image DS System DS Image DS System DS cp ln -s snapshot etc... scp
  • 30.
    マイグレーション shared ssh転送 save restore System DS System DS System DS migrate save -> 転送 -> restore
  • 31.
  • 32.
    persistent / non-persistent• ディスクイメージ毎に定義可能な属性 • 仮想マシンの起動元ディスクイメージの変更を保持する or しない • persistent(保持する)  • 前回仮想マシンを破棄した時点のディスクイメージから再開 • 同時に1台のみ仮想マシンを作成可能 • non-persistent(保持しない) • 毎回初期状態から仮想マシンを作成 • 同時に複数台の仮想マシンを作成可能
  • 33.
    persistent / non-persistent• persistentなディスクイメージ • 生活環境用の仮想マシン • non-persistentなディスクイメージ • 負荷に応じてスケールするワーカーノード • テスト用の仮想マシン
  • 34.
    disk-snapshot • non-persistentなディスクイメージから起動した仮想マシンのディスクを保存する • System DS上のディスクイメージをImage DSに コピー • 新しいディスクイメージとしてImage DSに登録 される
  • 35.
  • 36.
    Virtual Network •OpenNebulaのネットワークリソース管理方法 • Virtual Networkは下記のパラメータで構成される • 名前 • Hostのブリッジインタフェース名 • ネットワークモデル(使用するドライバスクリプト) • アドレスレンジ(IPv4、IPv6、MAC(任意)) • ネットワークアドレス、ネットワークマスク(任意) • デフォルトゲートウェイ、DNSサーバアドレス(任意)
  • 37.
    ネットワークモデル • dummy(何もしない) • iptables • ebtables • 802.1Q • Open vSwitch • VMware (VMware環境専用)
  • 38.
  • 39.
    Contextualization • onedから仮想マシンOSへのパラメータ提供方法• 仮想マシンに利用者のSSH公開鍵をコピー • 組織内で稼働中のNTPサーバのアドレスを通知 • 等々 • 任意の情報を仮想マシンOSに提供できる http://docs.opennebula.org/4.10/_images/contextualization.png
  • 40.
    SSH公開鍵の受け渡し(1) • ユーザの属性情報を編集$ oneuser update aoi • エディタが立ち上がるので、SSH_PUBLIC_KEY="公開鍵" を記述する SSH_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA BAQCa+81ye2rVpqtqYXWZ+3Jo66venKGSssB+r90b+(略)"
  • 41.
    SSH公開鍵の受け渡し(2) • テンプレートを編集$ onetemplate update u1404tmpl • エディタが立ち上がるので、CONTEXT節に SSH_PUBLIC_KEY="$USER[SSH_PUBLIC_KEY]" と記述する CONTEXT=[ SSH_PUBLIC_KEY="$USER[SSH_PUBLIC_KEY]" ]
  • 42.
    1. テンプレートのCONTEXT節で指定された値をシェル変数形式で ファイルに出力2. ファイルをISOイメージに固めてディスクイメージと一緒にデプロイ Image = : (1) SSH_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADQAB AAABAQCa+..." oned側 CONTEXT = (2)
  • 43.
    仮想マシン側 SSH_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADQABAAABAQCa+..." • OS起動時にISOイメージをマウント • ファイルに書かれたシェル変数SSH_PUBLIC_KEYを処理
  • 44.
    CONTEXTスクリプト • ディスクイメージに事前にCONTEXTを処理するスクリプトをインストールしておく • OpenNebula.orgはCONTEXTスクリプトパッケージも用意 • Ubuntu/Debian用 • RHEL系5/6/7用 • OpenSUSE用 • Cloud-InitはOpenNebula CONTEXTにも対応 • CONTEXTスクリプトの代わりにCloud-Initで処理することも可能
  • 45.
    MAC_PREFFIX:IP rule •OpenNebulaのデフォルトのIPアドレス管理、割り当て方法 • oned • 仮想マシンに割り当てるIPアドレスを16進変換 • プレフィックス 02:00: の後ろに16進変換したIPアドレスを付加して仮想マシン用 のMACアドレスを作成 • IPアドレス 192.168.1.154 ←→ MACアドレス 02:00:c0:a8:01:9a • libvirt XMLドメインファイル <mac address='02:00:c0:a8:01:9a'/> • 仮想マシン • MACアドレスの下4オクテットを10進変換してIPアドレスに設定 • CONTEXTスクリプトが処理
  • 46.
  • 47.
    OneFlow • 複数の仮想マシンをグループ化、階層化して管理可能• 仮想マシン間の依存関係を定義可能 • NFSサーバーVM起動 → NFSクライアントVM起動 • DBバックエンドVM起動 → ワーカーVM起動 • を1コマンドで実行 • オートスケーリング
  • 48.
    Marketplace • OpenNebula.systemsで運営されているサイト• http://marketplace.opennebula.systems/appliance • OpenNebula環境で利用できる各種ディスクイメージのカタログを公開 • Ubuntu、Debian、CentOS、ttylinux等 • KVM、Xen、VMware等 • CONTEXTスクリプトはインストール済み • Marketplaceから直接Datastoreにディスクイメージを登録可能 • 同様のサイトをローカルに立てることも可能(AppMarket)
  • 49.
  • 50.
    OpenNebula使用感 • ストレージ• 物理マシンのローカルストレージが普通に使える • SSDを積んだマシンを活用したい • SPOFを減らしたい • ローカルストレージの場合でもマイグレーション可能 • 1台のonedで起動元ストレージの共有・ローカル混在が可能
  • 51.
    OpenNebula使用感 • ディスクイメージ• ハイパーバイザがKVMの場合でもraw形式と qcow2形式のどちらも利用可能 • 外で作成したディスクイメージを持ち込みやすい
  • 52.
    OpenNebula使用感 • CLI/WebUI • リソースの割り当て状況が把握しやすい • どの仮想マシンがどのホストで稼働しているか • どのIPアドレスがどの仮想マシンに割り当てられているか • レンジ指定でまとめて操作可能 • 仮想マシンを16台作成したい/削除したい • ホストを16台まとめてdisableにしたい
  • 53.
    OpenNebula使用感 • 仮想マシンが稼働中の状態でホストをdisableにセットできる• 仮想マシンはホストがdisableでも操作できる 1. 停止予定のホストをdisableにし、新規デプロイ対象から除外 2. disableホスト上で稼働中の仮想マシンを他のホストにマイグレート 3. disableホストの電源を落としてメンテナンス • というオペレーションが可能
  • 54.
    OpenNebula使用感 • ログ出力• 適度なサイズで充分な内容 • syslog 経由で出力可能 • onevm show, onehost show などでエラーが確 認できる
  • 55.
    OpenNebula使用感 • シンプル• 環境全体の見通しがよく、把握しやすい • 学習コストが少ない
  • 56.
    OpenNebula使用感 • ちゃんと動く• 致命的な不具合に遭遇することが比較的少ない • よく分からない不具合に遭遇することが比較的少ない • コードを追いかけてデバッグすることが比較的少ない • 不具合対応に時間を割かなくて済む
  • 57.
    OpenNebula使用感 • アップデートパスがきちんと用意されている• 環境を保持しつつ簡単にメジャーアップグレード可能

[8]ページ先頭

©2009-2025 Movatter.jp