Contenu connexe Similaire à WakameTech #2 (20) Plus de axsh co., LTD. (18) WakameTech #21. WakameTech #2
「これまで」と「これから」
株式会社あくしゅ
山崎泰宏
axsh co., LTD.
y-yamazaki@axsh.net
2010/11/3 Copyright (C) axsh co., LTD. 1
2. Wakameとは?
• IaaS/PaaSのレヤを担う
クラウドコンピューテゖングのための
基本的ソフトウェゕの総称
– Wakame-fuel
• 2009/4/22にリリースされたOSS
• システムの動的な構成管理を主目的としたもの
– オートスケールを実現!
– サーバルームでの手作業を全て自動化!
– Wakame-vdc
• 2010/4/17にリリースされたOSS
• IaaSそのものを作り出せるように
コンピューテゖングリソースを管理するもの
2010/11/3 Copyright (C) axsh co., LTD. 2
4. Wakame-fuel
• Amazon EC2で動く分散手順実行エンジン
– Ruby
– AMQP (RabbitMQ)
• Amazon EC2のWeb APIを組み込むことで
サーバの調達が機械的に可能となった
• オートスケールの実現
2010/11/3 Copyright (C) axsh co., LTD. 4
5. Rails(mod_passenger)用の
マシンを10台にしたい時
# wakameadm propagate_service ¥
Apache_APP 10
コマンド1行で、後は見ているだけでOKです。
2010/11/3 Copyright (C) axsh co., LTD. 5
6. MySQL(Slave)用の
マシンを5台にしたい時
# wakameadm propagate_service ¥
MySQL_Slave 5
MasterからReplicationが始まります。
2010/11/3 Copyright (C) axsh co., LTD. 6
7. Amazon EC2上でシステムが
自動的に増強される流れ
初期状態 (1) マシン準備 (2) サービス起動 (3) 設定
ロード ロード ロード ロード
バランサ バランサ バランサ バランサ
Web Web Web Web Web Web
サーバ サーバ サーバ サーバ サーバ サーバ
DB DB DB DB
サーバ サーバ サーバ サーバ
Wakameは、これらを数分で完了させます
2010/11/3 Copyright (C) axsh co., LTD. 7
9. 図の説明
Amazon
S3
Storage
Machine
Amazon
Image
Machine
File
Image
Master
Agent
Server + Xen
Server + Xen Others
Amazon EC2Xen
Server +
(Web+DB+
etc.)
Web API
2010/11/3 Copyright (C) axsh co., LTD. 9
10. Wakame-fuelの原理(1/7)
Storage
Machine
Image
File
Master
Wakame
Agent
Server + Xen
Server + Xen Others
Server + Xen
(Web+DB+
etc.)
Web API
マシン起動
2010/11/3 Copyright (C) axsh co., LTD. 10
11. Wakame-fuelの原理(2/7)
Machine
Image
File
Storage
Master Machine
Image
File
Agent Master
Others
(Web+DB+ Agent
etc.)
Server + Xen
Server + Xen Others
Server + Xen
(Web+DB+
etc.)
Web API
2010/11/3 Copyright (C) axsh co., LTD. 11
12. Wakame-fuelの原理(3/7)
Machine
Image
File
Storage
Master Machine
Image
サービス起動
File
指示
Agent Master
サービス起動
Others
(Web+DB+ Agent
etc.)
Server + Xen
Server + Xen Others
Server + Xen
(Web+DB+
etc.)
Web API
2010/11/3 Copyright (C) axsh co., LTD. 12
13. Wakame-fuelの原理(4/7)
Machine
Image
File
スケールゕウト計画の指示 Storage
Master Machine
Image
File
Agent Master
Others
(Web+DB+ Agent
etc.)
Server + Xen
Server + Xen Others
Server + Xen
(Web+DB+
etc.)
Web API
2010/11/3 Copyright (C) axsh co., LTD. 13
14. Wakame-fuelの原理(5/7)
Machine
Image
File
Storage
Master Machine
Image
File
Agent Master
マシン起動
Others
(Web+DB+ Agent
etc.)
Server + Xen
Server + Xen Others
Server + Xen
(Web+DB+
etc.)
Web API
2010/11/3 Copyright (C) axsh co., LTD. 14
15. Wakame-fuelの原理(6/7)
Machine Machine
Image Image
File File
Storage
Master Master Machine
Image
File
Agent Agent Master
Others Others
(Web+DB+ (Web+DB+ Agent
etc.) etc.)
Server + Xen
Server + Xen Others
Server + Xen
(Web+DB+
etc.)
Web API
2010/11/3 Copyright (C) axsh co., LTD. 15
16. Wakame-fuelの原理(7/7)
Machine Machine
Image Image
File File
Storage
Master Master Machine
Image
サービス起動
File
指示
Agent Agent Master
サービス起動
Others Others
(Web+DB+ (Web+DB+ Agent
etc.) etc.)
Server + Xen
Server + Xen Others
Server + Xen
(Web+DB+
etc.)
勝手に Web API
増えた!
2010/11/3 Copyright (C) axsh co., LTD. 16
18. Wakame-vdc
• データセンタ内部のサーバ調達周りをコ
ントロールするためのOSS
– IaaSを実現する
• 結局手順を自動実行するところは変わら
ないので、Wakame-fuelを再利用
– Ruby
– AMQP (RabbitMQ)
2010/11/3 Copyright (C) axsh co., LTD. 18
19. Wakame-fuelの構成図
ンスタンス ンスタンス ンスタンス
手順を実行する Wakame
Master
設定を変更する Wakame Wakame Wakame
Agent Agent Agent
設定どおり
機能する Products Products Products
2010/11/3 Copyright (C) axsh co., LTD. 19
20. Wakameをハパーバザ層で
活用してみる
ンスタンスが
ンスタンス ンスタンス ンスタンス
機能する
Wakame
Master
Wakame Wakame Wakame
Agent Agent Agent
Products Products Products
手順を実行する
Wakame Wakame ンスタンスを
Master Agent コントロールする
ハパーバザ(Xen)
2010/11/3 Copyright (C) axsh co., LTD. 20
21. Web APIサーバを設置する
• Web APIを受け付けるだけでなく、データ
センタ全体のマネジメントも行う
– Data Center Manager (DCM)
– Web APIサーバはある程度のスケールゕウト
をするようにしておきたい
2010/11/3 Copyright (C) axsh co., LTD. 21
22. 最終的な構成図
クラゕント層 User Agent
権限管理層 Web API
GUI Server
Proxy
Data Center Manager
リソース管理層
Web API
Application Hyper Visor
サーバ層 Controller Controller HVC
(Wakame-master) (Wakame-master)
Application Hyper Visor
Application Agent Hyper Visor Agent HVA
(Wakame-agent) (Wakame-agent)
2010/11/3 Copyright (C) axsh co., LTD. 22
23. 後はラックに
サーバ追加するだけにしたい
対外サービス系 リソース系 リソース系 ストレージ系
ラック ラック ラック ラック
HVC HVC
GUI Server HVA+Xen HVA+Xen
Web API Proxy HVA+Xen HVA+Xen
Web API HVA+Xen HVA+Xen Shared Storage
2010/11/3 Copyright (C) axsh co., LTD. 23
25. 電子回路としてのハードウェゕ
CPU
Hardware Software
2010/11/3 Copyright (C) axsh co., LTD. 25
26. ネットワークとしてのハードウェゕ
Network Hardware Network Software
2010/11/3 Copyright (C) axsh co., LTD. 26
28. IaaS型クラウドに対する
OS相当のソフトウェゕが必要
アプリケーションは
OSを通じて
これらを自由に要求できる
ハードウェアリソースを データセンタリソースを
マネジメントするOS マネジメントするOS
• Processes/Threads • Servers
• Memory Allocation • Key-Value Stores
• File I/Os • Storage Provisioning
Cluster Level Infrastructure
2010/11/3 Copyright (C) axsh co., LTD. 28
30. × 構成を維持する仕組み
Load もともと下記事項を解決す
Balancer るために考えられたもの
1. 起動・終了などの手順を
Static Passenger
組み立てる
2. 設定フゔルの更新を伝
Load MySQL 搬させる
Balancer Master
MySQL
Slave
構成は意外と変化する
2010/11/3 Copyright (C) axsh co., LTD. 30
31. × マスターが頑張る
あれ?
Agent 2と3から
応答が無い…? Agent 1 サーバ落ちた!
過負荷で
Master Agent 2 pingすら
打てない!
Agent 3
マスターが押さえている情報は机上の空論。
事件は現場で起こっている。
2010/11/3 Copyright (C) axsh co., LTD. 31
32. × Batch系書きづらい
起動してすぐ終了するものが、部分クラスタとなる仕組み。
Load
Balancer
Static Passenger Batch Batch Batch
Load MySQL
Balancer Master
MySQL
Slave
Web Cluster Batch Cluster
ひとつのグラフでつじつま合わせるのが大変
2010/11/3 Copyright (C) axsh co., LTD. 32
33. ダメなところ - まとめ
• 統一的なグラフは書きづらい
– 目的ごとに違うグラフになる
– グラフはしばしば変更される
• マスターの記憶と実際が食い違う
– 現場のAgentに解決してほしいことばかり
• Batch等、ライフサイクルの独立した
複数のアプリケーションを扱いづらい
2010/11/3 Copyright (C) axsh co., LTD. 33
34. Wakameを作り直す
Cluster Level Infrastructure Operating System
2010/11/3 Copyright (C) axsh co., LTD. 34
35. 設計方針:Kernelを参考にする
Network
Process MS Office
Process Web System
Network
Kernel Windows
Kernel Wakame
2010/11/3 Copyright (C) axsh co., LTD. 35
36. 基本的にProcessは互いに影響しない
影響させようとしない限り
Notepad Calc
Windows
2010/11/3 Copyright (C) axsh co., LTD. 36
37. 基本Kernelとのみ対話する
System
Call
Process libc Kernel
link
System
Call
Network Network
libwakame
Process Kernel
require
2010/11/3 Copyright (C) axsh co., LTD. 37
38. シグナルの仕組みは
メッセージングとして設計する
message ⊇ {signal, system call, trigger, event, ...}
signal message Network
Process
Process
Network
Kernel
Kernel
Network
Process
signal relay message relay Process
handling handling
2010/11/3 Copyright (C) axsh co., LTD. 38
39. 興味のあるメッセージに
自ら反応するだけの仕組みにする
事実のみ流す
“DB started” started?
Agent DB
Network
Kernel
Application
Agent
“DB started” start Server
勝手に連動する
2010/11/3 Copyright (C) axsh co., LTD. 39
40. AMQPによるネットワーク分離
message Network
Network
Process
Kernel Event
Machine
AMQP
Event
Machine
Network
message relay Process
handling
2010/11/3 Copyright (C) axsh co., LTD. 40
41. この仕組みならば
課題は解決できそう
• 構成はグラフから導かない
– ベントに興味があるか無いかだけ
– 自分以外はどうでも良いモデルなので、
変更に強い
– upstartに似ている
• マスターは必要無い
– Agentがメッセージングしながら動けば良い
– 厳密には最初のメッセージを流すために、
マスターらしきものは必要
• ラフサクルが独立したゕプリを
複数起動しても干渉しない
2010/11/3 Copyright (C) axsh co., LTD. 41
42. Process v.s. Network Process
Process
CPU ÷n=
CPU CPU CPU CPU
Network Process Server
CPU ×n= CPU CPU CPU CPU
2010/11/3 Copyright (C) axsh co., LTD. 42
43. Network Processは高コストだが…
• ンスタンスの起動はどんどん速くなる
…はず!
– CPUリソースの強化が進む
– マシンメージの転送高速化が進む
– ブート高速化が進む
• かつてはfork(2)も高コストで遅すぎると
言われた時期がありました。
2010/11/3 Copyright (C) axsh co., LTD. 43
44. その他のリソース
• OSとしての役割はCPUリソースのみでは
ない
• Wakameは今後下記も対象としていきたい
– メモリ
– ストレージ
– ネットワーク
2010/11/3 Copyright (C) axsh co., LTD. 44
45. 将来的な展望
• ンストールパッケージの概念
– apt-get install gmail
• デゖストリビューションの概念
– What is the next Ubuntu?
今で言うSaaSとはまた違う
Softwareのあり方では?
2010/11/3 Copyright (C) axsh co., LTD. 45
46. The Datacenter
as a Computer
コンピュータとしてのデータセンタを作りたい
2010/11/3 Copyright (C) axsh co., LTD. 46