wakametech #2
DESCRIPTION
Wakame Project Issue and How to Solve It.TRANSCRIPT
WakameTech #2「これまで」と「これから」
株式会社あくしゅ山崎泰宏
axsh co., LTD.
2010/11/3 1Copyright (C) axsh co., LTD.
Wakameとは?
• IaaS/PaaSのレヤを担うクラウドコンピューテゖングのための基本的ソフトウェゕの総称– Wakame-fuel
• 2009/4/22にリリースされたOSS
• システムの動的な構成管理を主目的としたもの– オートスケールを実現!– サーバルームでの手作業を全て自動化!
– Wakame-vdc• 2010/4/17にリリースされたOSS
• IaaSそのものを作り出せるようにコンピューテゖングリソースを管理するもの
2010/11/3 2Copyright (C) axsh co., LTD.
Wakame-fuel
2010/11/3 3Copyright (C) axsh co., LTD.
Wakame-fuel
• Amazon EC2で動く分散手順実行エンジン
– Ruby
– AMQP (RabbitMQ)
• Amazon EC2のWeb APIを組み込むことでサーバの調達が機械的に可能となった
• オートスケールの実現
2010/11/3 4Copyright (C) axsh co., LTD.
Rails(mod_passenger)用のマシンを10台にしたい時
# wakameadm propagate_service ¥Apache_APP 10
コマンド1行で、後は見ているだけでOKです。
2010/11/3 5Copyright (C) axsh co., LTD.
MySQL(Slave)用のマシンを5台にしたい時
# wakameadm propagate_service ¥MySQL_Slave 5
MasterからReplicationが始まります。
2010/11/3 6Copyright (C) axsh co., LTD.
Amazon EC2上でシステムが自動的に増強される流れ
ロードバランサ
Webサーバ
DBサーバ
初期状態
ロードバランサ
Webサーバ
DBサーバ
(1) マシン準備
ロードバランサ
Webサーバ
DBサーバ
Webサーバ
(2) サービス起動
ロードバランサ
Webサーバ
DBサーバ
Webサーバ
(3) 設定
Wakameは、これらを数分で完了させます
2010/11/3 7Copyright (C) axsh co., LTD.
サーバを自動調達・増設する原理
2010/11/3 8Copyright (C) axsh co., LTD.
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.
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.
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.
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.
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.
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.
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.
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.
Wakame-vdc
2010/11/3 17Copyright (C) axsh co., LTD.
Wakame-vdc
• データセンタ内部のサーバ調達周りをコントロールするためのOSS
– IaaSを実現する
• 結局手順を自動実行するところは変わらないので、Wakame-fuelを再利用
– Ruby
– AMQP (RabbitMQ)
2010/11/3 18Copyright (C) axsh co., LTD.
Wakame-fuelの構成図
ンスタンス
Wakame
Master
Wakame
Agent
Products
ンスタンス
Wakame
Agent
Products
ンスタンス
Wakame
Agent
Products
手順を実行する
設定を変更する
設定どおり機能する
2010/11/3 19Copyright (C) axsh co., LTD.
ハパーバザ(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.
Web APIサーバを設置する
• Web APIを受け付けるだけでなく、データセンタ全体のマネジメントも行う
– Data Center Manager (DCM)
– Web APIサーバはある程度のスケールゕウトをするようにしておきたい
2010/11/3 21Copyright (C) axsh co., LTD.
最終的な構成図
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.
後はラックにサーバ追加するだけにしたい
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.
Wakameの狙いと今後
2010/11/3 24Copyright (C) axsh co., LTD.
電子回路としてのハードウェゕ
Hardware Software
CPU
2010/11/3 25Copyright (C) axsh co., LTD.
ネットワークとしてのハードウェゕ
Network Hardware Network Software
2010/11/3 26Copyright (C) axsh co., LTD.
“The Datacenter as a Computer”
2010/11/3 27Copyright (C) axsh co., LTD.
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.
本当にWakameはOSに成れるのか?
このままではダメだ
2010/11/3 29Copyright (C) axsh co., LTD.
× 構成を維持する仕組み
Load
Balancer
Load
Balancer
Static
MySQL
Slave
Passenger
MySQL
Master
構成は意外と変化する
もともと下記事項を解決するために考えられたもの
1. 起動・終了などの手順を組み立てる
2. 設定フゔルの更新を伝搬させる
2010/11/3 30Copyright (C) axsh co., LTD.
× マスターが頑張る
マスターが押さえている情報は机上の空論。事件は現場で起こっている。
Master
Agent 1
Agent 2
Agent 3
あれ?Agent 2と3から応答が無い…? サーバ落ちた!
過負荷でpingすら打てない!
2010/11/3 31Copyright (C) axsh co., LTD.
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.
ダメなところ - まとめ
• 統一的なグラフは書きづらい
– 目的ごとに違うグラフになる
– グラフはしばしば変更される
• マスターの記憶と実際が食い違う
– 現場のAgentに解決してほしいことばかり
• Batch等、ライフサイクルの独立した複数のアプリケーションを扱いづらい
2010/11/3 33Copyright (C) axsh co., LTD.
Wakameを作り直すCluster Level Infrastructure Operating System
2010/11/3 34Copyright (C) axsh co., LTD.
設計方針:Kernelを参考にする
Kernel
Process
Network
Kernel
Network
ProcessMS Office Web System
Windows Wakame
2010/11/3 35Copyright (C) axsh co., LTD.
基本的にProcessは互いに影響しない
Notepad
影響させようとしない限り
Calc
Windows
2010/11/3 36Copyright (C) axsh co., LTD.
基本Kernelとのみ対話する
Process libc Kernel
System
Call
Network
Processlibwakame
Network
Kernel
System
Call
require
link
2010/11/3 37Copyright (C) axsh co., LTD.
シグナルの仕組みはメッセージングとして設計する
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.
興味のあるメッセージに自ら反応するだけの仕組みにする
Network
Kernel
Agent
Agent
“DB started”
“DB started”
DB
Application
Serverstart
started?
事実のみ流す
勝手に連動する
2010/11/3 39Copyright (C) axsh co., LTD.
AMQPによるネットワーク分離
Network
Kernel
Network
Process
Network
Process
message
message relay
handling
Event
Machine
Event
Machine
AMQP
2010/11/3 40Copyright (C) axsh co., LTD.
この仕組みならば課題は解決できそう
• 構成はグラフから導かない– ベントに興味があるか無いかだけ– 自分以外はどうでも良いモデルなので、変更に強い
– upstartに似ている
• マスターは必要無い– Agentがメッセージングしながら動けば良い– 厳密には最初のメッセージを流すために、マスターらしきものは必要
• ラフサクルが独立したゕプリを複数起動しても干渉しない
2010/11/3 41Copyright (C) axsh co., LTD.
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.
Network Processは高コストだが…
• ンスタンスの起動はどんどん速くなる…はず!
– CPUリソースの強化が進む
– マシンメージの転送高速化が進む
– ブート高速化が進む
• かつてはfork(2)も高コストで遅すぎると言われた時期がありました。
2010/11/3 43Copyright (C) axsh co., LTD.
その他のリソース
• OSとしての役割はCPUリソースのみではない
• Wakameは今後下記も対象としていきたい
– メモリ
– ストレージ
– ネットワーク
2010/11/3 44Copyright (C) axsh co., LTD.
将来的な展望
• ンストールパッケージの概念
– apt-get install gmail
• デゖストリビューションの概念
– What is the next Ubuntu?
今で言うSaaSとはまた違うSoftwareのあり方では?
2010/11/3 45Copyright (C) axsh co., LTD.
The Datacenter
as a Computerコンピュータとしてのデータセンタを作りたい
2010/11/3 46Copyright (C) axsh co., LTD.
axsh co., LTD.
2010/11/3 47Copyright (C) axsh co., LTD.