Skip to content
maida-yasuhiro edited this page Aug 21, 2016 · 19 revisions

プロジェクト名:

IaaS_Program

説明:

自動でスケールイン/アウトするIaaSを自作しました。

詳しくは、【Outline】IaaS_Program.pdf に記載していますので、ご覧ください。

1. 処理順序

  1. TerminalからWebAPIを発行し、DCM(Data Center Manager)と呼ばれるAgentに命令を投げます。
  2. AgentはDBをチェックし、CPU使用率が最も小さいHostのAgentに対して命令を出します。
  3. その命令を各HostのAgentが受け取り、命令内容により、Virtual Hostを作成/削除します。

2. 設計

  • 言語 : Ruby, ShellScript(Bash)
  • Webフレームワーク : Sinatra
  • データベース : SQLite3
  • ORマッパー : sequel
  • 分散処理Library : druby
  • 仮想化基盤 : Libvirt + Qemu + Kickstart
  • サーバー : DHCP, NFS, DB

3. モジュール構造

ディレクトリ構造

  • controlHost : webAPI、DCM、Database等に関するプログラム
  • virtualHost : ゲストVMの立上げに関するプログラム
  • shellscripts :各物理サーバに置かれたconfigファイルやVM操作のシェルスクリプト等

3. その他

DB構成、VMのカギ管理に関しては、【Outline】IaaS_Program.pdf を参照のこと。

4. 今後の方針

  • WebGUIを作成し、ユーザに使いやすい形にする。
  • CPU使用率によって、自動でスケールイン/アウトするようにする。