wakametech #2

47
WakameTech #2 「これまで」と「これから」 株式会社あくしゅ 山崎泰宏 axsh co., LTD. [email protected] 2010/11/3 1 Copyright (C) axsh co., LTD.

Upload: axsh-co-ltd

Post on 15-May-2015

844 views

Category:

Technology


3 download

DESCRIPTION

Wakame Project Issue and How to Solve It.

TRANSCRIPT

Page 1: WakameTech #2

WakameTech #2「これまで」と「これから」

株式会社あくしゅ山崎泰宏

axsh co., LTD.

[email protected]

2010/11/3 1Copyright (C) axsh co., LTD.

Page 2: WakameTech #2

Wakameとは?

• IaaS/PaaSのレヤを担うクラウドコンピューテゖングのための基本的ソフトウェゕの総称– Wakame-fuel

• 2009/4/22にリリースされたOSS

• システムの動的な構成管理を主目的としたもの– オートスケールを実現!– サーバルームでの手作業を全て自動化!

– Wakame-vdc• 2010/4/17にリリースされたOSS

• IaaSそのものを作り出せるようにコンピューテゖングリソースを管理するもの

2010/11/3 2Copyright (C) axsh co., LTD.

Page 3: WakameTech #2

Wakame-fuel

2010/11/3 3Copyright (C) axsh co., LTD.

Page 4: WakameTech #2

Wakame-fuel

• Amazon EC2で動く分散手順実行エンジン

– Ruby

– AMQP (RabbitMQ)

• Amazon EC2のWeb APIを組み込むことでサーバの調達が機械的に可能となった

• オートスケールの実現

2010/11/3 4Copyright (C) axsh co., LTD.

Page 5: WakameTech #2

Rails(mod_passenger)用のマシンを10台にしたい時

# wakameadm propagate_service ¥Apache_APP 10

コマンド1行で、後は見ているだけでOKです。

2010/11/3 5Copyright (C) axsh co., LTD.

Page 6: WakameTech #2

MySQL(Slave)用のマシンを5台にしたい時

# wakameadm propagate_service ¥MySQL_Slave 5

MasterからReplicationが始まります。

2010/11/3 6Copyright (C) axsh co., LTD.

Page 7: WakameTech #2

Amazon EC2上でシステムが自動的に増強される流れ

ロードバランサ

Webサーバ

DBサーバ

初期状態

ロードバランサ

Webサーバ

DBサーバ

(1) マシン準備

ロードバランサ

Webサーバ

DBサーバ

Webサーバ

(2) サービス起動

ロードバランサ

Webサーバ

DBサーバ

Webサーバ

(3) 設定

Wakameは、これらを数分で完了させます

2010/11/3 7Copyright (C) axsh co., LTD.

Page 8: WakameTech #2

サーバを自動調達・増設する原理

2010/11/3 8Copyright (C) axsh co., LTD.

Page 9: WakameTech #2

Storage

Machine

Image

File

図の説明

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Amazon

S3

Amazon

Machine

Image

Amazon EC2

2010/11/3 9Copyright (C) axsh co., LTD.

Page 10: WakameTech #2

Storage

Machine

Image

File

Wakame-fuelの原理(1/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web APIマシン起動

Wakame

2010/11/3 10Copyright (C) axsh co., LTD.

Page 11: WakameTech #2

Storage

Machine

Image

File

Wakame-fuelの原理(2/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

2010/11/3 11Copyright (C) axsh co., LTD.

Page 12: WakameTech #2

Storage

Machine

Image

File

Wakame-fuelの原理(3/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

サービス起動指示

サービス起動

2010/11/3 12Copyright (C) axsh co., LTD.

Page 13: WakameTech #2

Storage

Machine

Image

File

Wakame-fuelの原理(4/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

スケールゕウト計画の指示

2010/11/3 13Copyright (C) axsh co., LTD.

Page 14: WakameTech #2

Storage

Machine

Image

File

Wakame-fuelの原理(5/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

マシン起動

2010/11/3 14Copyright (C) axsh co., LTD.

Page 15: WakameTech #2

Storage

Machine

Image

File

Wakame-fuelの原理(6/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

2010/11/3 15Copyright (C) axsh co., LTD.

Page 16: WakameTech #2

Storage

Machine

Image

File

Wakame-fuelの原理(7/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

サービス起動指示

サービス起動

勝手に増えた!

2010/11/3 16Copyright (C) axsh co., LTD.

Page 17: WakameTech #2

Wakame-vdc

2010/11/3 17Copyright (C) axsh co., LTD.

Page 18: WakameTech #2

Wakame-vdc

• データセンタ内部のサーバ調達周りをコントロールするためのOSS

– IaaSを実現する

• 結局手順を自動実行するところは変わらないので、Wakame-fuelを再利用

– Ruby

– AMQP (RabbitMQ)

2010/11/3 18Copyright (C) axsh co., LTD.

Page 19: WakameTech #2

Wakame-fuelの構成図

ンスタンス

Wakame

Master

Wakame

Agent

Products

ンスタンス

Wakame

Agent

Products

ンスタンス

Wakame

Agent

Products

手順を実行する

設定を変更する

設定どおり機能する

2010/11/3 19Copyright (C) axsh co., LTD.

Page 20: WakameTech #2

ハパーバザ(Xen)

Wakameをハパーバザ層で活用してみる

ンスタンス

Wakame

Master

Wakame

Agent

Products

ンスタンス

Wakame

Agent

Products

ンスタンス

Wakame

Agent

Products

ンスタンスが機能する

Wakame

Agent

ンスタンスをコントロールする

Wakame

Master

手順を実行する

2010/11/3 20Copyright (C) axsh co., LTD.

Page 21: WakameTech #2

Web APIサーバを設置する

• Web APIを受け付けるだけでなく、データセンタ全体のマネジメントも行う

– Data Center Manager (DCM)

– Web APIサーバはある程度のスケールゕウトをするようにしておきたい

2010/11/3 21Copyright (C) axsh co., LTD.

Page 22: WakameTech #2

最終的な構成図

Data Center Manager

GUI ServerWeb API

Proxy

Web API

User Agent

Hyper Visor

Controller(Wakame-master)

Hyper Visor

Agent(Wakame-agent)

Hyper Visor

Application

Controller(Wakame-master)

Application

Agent(Wakame-agent)

Application

HVC

HVA

クラゕント層

権限管理層

リソース管理層

サーバ層

2010/11/3 22Copyright (C) axsh co., LTD.

Page 23: WakameTech #2

後はラックにサーバ追加するだけにしたい

Web API

Web API Proxy

GUI Server

対外サービス系ラック

HVA+Xen

HVA+Xen

HVA+Xen

HVC

リソース系ラック

HVA+Xen

HVA+Xen

HVA+Xen

HVC

リソース系ラック

Shared Storage

ストレージ系ラック

2010/11/3 23Copyright (C) axsh co., LTD.

Page 24: WakameTech #2

Wakameの狙いと今後

2010/11/3 24Copyright (C) axsh co., LTD.

Page 25: WakameTech #2

電子回路としてのハードウェゕ

Hardware Software

CPU

2010/11/3 25Copyright (C) axsh co., LTD.

Page 26: WakameTech #2

ネットワークとしてのハードウェゕ

Network Hardware Network Software

2010/11/3 26Copyright (C) axsh co., LTD.

Page 27: WakameTech #2

“The Datacenter as a Computer”

2010/11/3 27Copyright (C) axsh co., LTD.

Page 28: WakameTech #2

IaaS型クラウドに対するOS相当のソフトウェゕが必要

ハードウェアリソースをマネジメントするOS

• Processes/Threads

• Memory Allocation

• File I/Os

データセンタリソースをマネジメントするOS

• Servers

• Key-Value Stores

• Storage Provisioning

アプリケーションはOSを通じて

これらを自由に要求できる

Cluster Level Infrastructure

2010/11/3 28Copyright (C) axsh co., LTD.

Page 29: WakameTech #2

本当にWakameはOSに成れるのか?

このままではダメだ

2010/11/3 29Copyright (C) axsh co., LTD.

Page 30: WakameTech #2

× 構成を維持する仕組み

Load

Balancer

Load

Balancer

Static

MySQL

Slave

Passenger

MySQL

Master

構成は意外と変化する

もともと下記事項を解決するために考えられたもの

1. 起動・終了などの手順を組み立てる

2. 設定フゔルの更新を伝搬させる

2010/11/3 30Copyright (C) axsh co., LTD.

Page 31: WakameTech #2

× マスターが頑張る

マスターが押さえている情報は机上の空論。事件は現場で起こっている。

Master

Agent 1

Agent 2

Agent 3

あれ?Agent 2と3から応答が無い…? サーバ落ちた!

過負荷でpingすら打てない!

2010/11/3 31Copyright (C) axsh co., LTD.

Page 32: WakameTech #2

Batch ClusterWeb Cluster

× Batch系書きづらい

起動してすぐ終了するものが、部分クラスタとなる仕組み。

Load

Balancer

Load

Balancer

Static

MySQL

Slave

Passenger

MySQL

Master

Batch Batch Batch

ひとつのグラフでつじつま合わせるのが大変

2010/11/3 32Copyright (C) axsh co., LTD.

Page 33: WakameTech #2

ダメなところ - まとめ

• 統一的なグラフは書きづらい

– 目的ごとに違うグラフになる

– グラフはしばしば変更される

• マスターの記憶と実際が食い違う

– 現場のAgentに解決してほしいことばかり

• Batch等、ライフサイクルの独立した複数のアプリケーションを扱いづらい

2010/11/3 33Copyright (C) axsh co., LTD.

Page 34: WakameTech #2

Wakameを作り直すCluster Level Infrastructure Operating System

2010/11/3 34Copyright (C) axsh co., LTD.

Page 35: WakameTech #2

設計方針:Kernelを参考にする

Kernel

Process

Network

Kernel

Network

ProcessMS Office Web System

Windows Wakame

2010/11/3 35Copyright (C) axsh co., LTD.

Page 36: WakameTech #2

基本的にProcessは互いに影響しない

Notepad

影響させようとしない限り

Calc

Windows

2010/11/3 36Copyright (C) axsh co., LTD.

Page 37: WakameTech #2

基本Kernelとのみ対話する

Process libc Kernel

System

Call

Network

Processlibwakame

Network

Kernel

System

Call

require

link

2010/11/3 37Copyright (C) axsh co., LTD.

Page 38: WakameTech #2

シグナルの仕組みはメッセージングとして設計する

Kernel

Process

Process

signal

signal relay

handling

Network

Kernel

Network

Process

Network

Process

message

message relay

handling

message ⊇ {signal, system call, trigger, event, ...}

2010/11/3 38Copyright (C) axsh co., LTD.

Page 39: WakameTech #2

興味のあるメッセージに自ら反応するだけの仕組みにする

Network

Kernel

Agent

Agent

“DB started”

“DB started”

DB

Application

Serverstart

started?

事実のみ流す

勝手に連動する

2010/11/3 39Copyright (C) axsh co., LTD.

Page 40: WakameTech #2

AMQPによるネットワーク分離

Network

Kernel

Network

Process

Network

Process

message

message relay

handling

Event

Machine

Event

Machine

AMQP

2010/11/3 40Copyright (C) axsh co., LTD.

Page 41: WakameTech #2

この仕組みならば課題は解決できそう

• 構成はグラフから導かない– ベントに興味があるか無いかだけ– 自分以外はどうでも良いモデルなので、変更に強い

– upstartに似ている

• マスターは必要無い– Agentがメッセージングしながら動けば良い– 厳密には最初のメッセージを流すために、マスターらしきものは必要

• ラフサクルが独立したゕプリを複数起動しても干渉しない

2010/11/3 41Copyright (C) axsh co., LTD.

Page 42: WakameTech #2

Process v.s. Network Process

CPU

Process

CPU

CPUCPU CPUCPU

÷n=

CPU CPU CPU CPU×n=

Network Process Server

2010/11/3 42Copyright (C) axsh co., LTD.

Page 43: WakameTech #2

Network Processは高コストだが…

• ンスタンスの起動はどんどん速くなる…はず!

– CPUリソースの強化が進む

– マシンメージの転送高速化が進む

– ブート高速化が進む

• かつてはfork(2)も高コストで遅すぎると言われた時期がありました。

2010/11/3 43Copyright (C) axsh co., LTD.

Page 44: WakameTech #2

その他のリソース

• OSとしての役割はCPUリソースのみではない

• Wakameは今後下記も対象としていきたい

– メモリ

– ストレージ

– ネットワーク

2010/11/3 44Copyright (C) axsh co., LTD.

Page 45: WakameTech #2

将来的な展望

• ンストールパッケージの概念

– apt-get install gmail

• デゖストリビューションの概念

– What is the next Ubuntu?

今で言うSaaSとはまた違うSoftwareのあり方では?

2010/11/3 45Copyright (C) axsh co., LTD.

Page 46: WakameTech #2

The Datacenter

as a Computerコンピュータとしてのデータセンタを作りたい

2010/11/3 46Copyright (C) axsh co., LTD.

Page 47: WakameTech #2

axsh co., LTD.

2010/11/3 47Copyright (C) axsh co., LTD.