dodai projectの紹介

24
dodai projectの紹介 羽深 @habuka036 NTTデータ先端技術株式会社 Eucalyptus Users Group Japan 2012/09/08

Upload: osamu-habuka

Post on 30-Jun-2015

2.501 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dodai projectの紹介

dodai projectの紹介

羽深 修

@habuka036

NTTデータ先端技術株式会社

Eucalyptus Users Group Japan

2012/09/08

Page 2: Dodai projectの紹介

まず自己紹介

●「No Eucalyptus, No Life」な人間です

◇Eucalyptusをネタに連載してます

◇Eucalyptusをネタに本書きました

◇Eucalyptusをネタに講師をしてます

●OpenStackとの関りは?

◇DevStackにたった11行ほど非pythonなコード?をコミット ……(´_ゝ`)

◇まわりがみんなOpenStaker …m9( ´д)ヒソ(´д`)ヒソ(д` )c9m

1

Page 3: Dodai projectの紹介

そう、まさしく今日

:::::::::::::::::::::::::::::::: : :: :: : ::: : : ヽ i

::::::::::::::::::::::: : : : :: ヽ ビルドトオッタ?

:::::::::::::::::: : : : \ ヽ トオッター

:::::: ::: : : : ∧ ∧

::::: : : :: : ∧_∧ \ Λ _Λ *‘∀‘) Λ

: : : : : .(´・ω ・`)ショボーン ( ^∀^) )(^ワ

___ l⌒i⌒⊂)___ ヽ ( ) | | ∩

/ ⌒'⌒ / \ ̄ ̄ ̄ ̄ ̄\ ̄ ̄

__/_____/|| ||\_____\_

_|||_____||/|| ||\||_____|||_

||| し し .|| || || || |||

2

Page 4: Dodai projectの紹介

dodai projectの概要

Page 5: Dodai projectの紹介

dodai projectって何?

●dodai projectとはNIIを中心としたコミュニティ活動の中で作成された以下のプロダクトをオープンソースとして開発/運用するプロジェクトです

◇dodai-deploy

◆複数台のマシン上にOpenStackやHadoopなどのミドルウェアを簡単にインストールするためのツール

◇dodai-compute

◆複数の物理マシンにOSをインストールするためのツール

4

Page 6: Dodai projectの紹介

CaaSとは?

●CaaSとはCluster as a Serviceの略で、以下のような要望を叶えるためにPCクラスタをサービスとして提供する技術を開発するプロジェクトです。(http://wiki.openstack.org/CaaS) ◇仮想化環境ではなく物理環境を直接利用したい

◇複数台のマシンに対してOSやミドルウェアを手間なくインストールしたい

◇IaaS環境やPaaS環境を色々な構成で構築したい

5

PC クラスタ

SaaS基盤

PaaS基盤

IaaS基盤 CaaSで提供

Page 7: Dodai projectの紹介

「dodai」の名前の由来

某機動戦士に出てくる青いアレがムチを振りながら踏んづけている赤いアレが名前の由来だそうです

6

Page 8: Dodai projectの紹介

キーパーソン

●主にアイデアを出している人

●主に実装している人

7

@guanxiaohua2k6 さん

@jxta さん

Page 9: Dodai projectの紹介

dodai-deployについて

Page 10: Dodai projectの紹介

これは何?

● 簡単に言うと「複数マシンにソフトウェアをインストールしてくれるツール」です

● リポジトリや情報は以下にあります ◇ https://github.com/nii-cloud/dodai-deploy

● 使い方はOpenStackの管理者マニュアルにも書いてあります。 ◇ http://docs.openstack.org/essex/openstack-

compute/admin/content/openstack-compute-deployment-tool-with-puppet.html

● 主にrailsとpuppetとmcollectiveを使ってます

● dodai-deployは以下のコンポーネントで構成されます ◇ サーバ

◆ インストールするソフトウェアの設定や構成を管理

◆ インストール対象のマシン情報を管理

◆ ノードに指示を出す

◇ ノード ◆ インストール対象の各マシン上に配置

◆ サーバからの指示に従ってインストール/アンインストールなどを行なう

● 利用者は、Web UI/CUI/REST APIから好きな方法で利用可能

9

Page 11: Dodai projectの紹介

発端はDeployment Tool

● 反復作業は嫌。やっぱDRYだよね。 ◇ OpenStackを様々な構成や設定で何度も何度もインストールする日々がツラ

いので、何とか簡単に環境を作れないものだろうか?というのが最初の要求

● bashで書いてみた ◇ OpenStackのインストール省力化が目的なのに、そのためのアプリケーショ

ンやツールやライブラリを頑張ってインストールしなきゃいけないのはナンセンス

◇ しかし、この時点ではまだこのツール自体のセットアップに手数を要する

● pythonで書き直した ◇ bashで何とか頑張ってみたけど生産性を向上させるのがツラいのでpython

で書き直した

◇ それでもこのツール自体のセットアップに手数を要する状態はなかなか解消できなかった ◆ 最初の要求であるOpenStack環境の構築が省力化できるようになることがmustだった

ので…

◇ ちなみに以下にデモムービーがあります ◆ http://wiki.openstack.org/NovaInstall/NovaDeploymentTool#Deployment_Tool_for

_Cactus

● そしてrubyになってdodai-deployとして再出発

10

Page 12: Dodai projectの紹介

CrowbarやJujuがあるのに?

●"自分らで作りたかった"

●Deployment Toolを作ってた頃はEnsembleすら無かった(はず…)

●Crowbarは作られ始めてたがdodai-deployとしては既にOSがインストール済みである環境でも利用できる必要があった

●どっちにしてもそれらはまだ開発中だった

●将来的にはUbuntuだけじゃなくCentOSもターゲットにしたかった

11

Page 13: Dodai projectの紹介

何がデプロイできるの?

●対応しているOSは2012/09/08時点で2つ ◇Ubuntu 10.10/11.04/11.10/12.04 ◇CentOS 6.x

●デプロイできるソフトウェアは以下

12

ubuntu 10.10

ubuntu 11.04

ubuntu 11.10

ubuntu 12.04

CentOS 6.x

OpenStack Essex (Nova, Glance, Swift, Keystone)

✔ △※

OpenStack Diablo (Nova, Glance, Swift)

✔ ✔ ✔

Eucalyptus 3.1 △※

hadoop 0.20.2 ✔ ✔ ✔ ✔

sun grid engine 6.2u5 ✔ ✔ ✔

※ まだ開発版でのみ

Page 14: Dodai projectの紹介

今後の野望とInstall as a Service

●今後、以下を予定

◇Folsomサポート

◇ソフトウェア定義ファイルテンプレートの再検討

◇ソフトウェア定義ファイルテンプレートのダウンロードとアップロード

◇サポートするソフトウェアを増やす

◇マルチテナント化

◇Install as a Service

◆アプリケーションのインストールを楽にしたいのだから、デプロイメントツールのインストールなんてもっと簡単じゃないと嫌だよね

◆だったらサービスとして提供すればいいんじゃない?

13

Page 15: Dodai projectの紹介

dodai-computeについて

Page 16: Dodai projectの紹介

これは何?

●簡単に言うと「物理マシンにOSをインストールしてくれるツール」です

●リポジトリや情報は以下にあります ◇https://github.com/nii-cloud/dodai-compute

●主にOpenStackを使ってます

●dodai-computeには以下の機能があります ◇物理マシンの電源ON/OFF/リブート

◇リソースプール

◇物理マシンへのマシンイメージの適用

◇ディスク消去

◇物理マシンのネットワーク設定

15

Page 17: Dodai projectの紹介

どうしてベアメタル?

●「IaaS環境を自由自在な構成で楽に作成できる環境が欲しかった」

◇「別に仮想化の上でもIaaS作れるでしょ?」

◇「全てのIaaS基盤がIaaSの上に作れるわけじゃない」

16

Page 18: Dodai projectの紹介

CrowbarやMAASがあるのに?

●Ubuntu以外のOSも使いたい

●ネットワーク構成をPCクラスタ毎に隔離したい

●将来的には物理マシンも仮想マシンも同じく扱えるようにしたい

◇せっかくOpenStackを流用しているので

17

Page 19: Dodai projectの紹介

現状と今後の野望

●現状はオープンソースで公開しているとは言え、dodai-computeの環境を構築するためには色々と他にも必要なものがある ◇OpenFlow

◇os-duper (CentOS 6.2のLiveDVD)

●現状は一部のEC2 APIのパラメータを拡張してしまったので、次のバージョンでは拡張しない作りにする予定

●現バージョンでは少しだけCobblerを使ってるけど有効活用していないので、次のバージョンでは役割を再検討する

18

Page 20: Dodai projectの紹介

利用事例

Page 21: Dodai projectの紹介

アラバマ大学での利用事例

●概要

◇dodai-deployを使って彼らのHPCクラスタ「Gibson」にessexを入れてみたらしい

●構成

◇Head Node ×1

◇Image Server ×1

◇Compute Node ×3

●詳しくは以下のURLに書いてます

◇http://cloud.cs.ua.edu/wiki/index.php/Openstack_Essex

20

Page 22: Dodai projectの紹介

NIIでの利用事例

●研究者や学生向けにIaaS基盤やPaaS基盤を構築する環境としてdodai-computeとdodai-deploy(とOpenFlow{Switch,Controller}と

SwiftとNFSサーバとWebUI)を組み合わせて利用

21

Page 23: Dodai projectの紹介

NIIでの利用事例

● TopSEの講義にて学生に対してクラウド基盤の構築演習を行なう環境として利用中 ◇ 物理マシンには「仮想化の入

れ子 (Nested KVM)」が提供できるOSをインストール

◇ 物理マシンの KVM 上で CentOS 6.2 を稼動

◇ 学生は CentOS 6.2 の上でクラウド基盤(Eucalyptus)を構築する演習を実施

22

やっべ、 ユーカリ最高!

Page 24: Dodai projectの紹介

使っているフォント

●タイトルとか

◇しねきゃぷしょん

◆ http://chiphead.jp/font/htm/cinecaption.htm

●本文とか

◇ゆたぽん(コーディング)

◆ http://net2.system.to/pc/font.html

●箇条書きの記号

◇こくばん

◆ http://falseorfont.web.fc2.com/

23