Your SlideShare is downloading. ×
WakameTech #2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

WakameTech #2

779
views

Published on

Wakame Project Issue and How to Solve It.

Wakame Project Issue and How to Solve It.

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
779
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 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
  • 3. Wakame-fuel 2010/11/3 Copyright (C) axsh co., LTD. 3
  • 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
  • 8. サーバを自動調達・増設する原理 2010/11/3 Copyright (C) axsh co., LTD. 8
  • 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
  • 17. Wakame-vdc 2010/11/3 Copyright (C) axsh co., LTD. 17
  • 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
  • 24. Wakameの狙いと今後 2010/11/3 Copyright (C) axsh co., LTD. 24
  • 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
  • 27. “The Datacenter as a Computer” 2010/11/3 Copyright (C) axsh co., LTD. 27
  • 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
  • 29. 本当にWakameはOSに成れるのか? このままではダメだ 2010/11/3 Copyright (C) axsh co., LTD. 29
  • 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
  • 47. axsh co., LTD. 2010/11/3 Copyright (C) axsh co., LTD. 47