2011/10/15 Fusic Co., Ltd. Satoshi Hirata Perlで仮想サーバ制御(仮) Powered by
Fusic Co., Ltd. 4
皆さんおつかれさまです。 2日間、濃い話をいっぱい聞いていっぱい飲んでいっぱい喋っておつかれだと思います。 てことでゆるっと話をさせていただければ幸いです。
の前に
Fusic Co., Ltd. 5
皆さんおつかれさまです。 2日間、濃い話をいっぱい聞いていっぱい飲んでいっぱい喋っておつかれだと思います。 てことでゆるっと話をさせていただければ幸いです。 =力抜いて聞いていただければ。
の前に
Fusic Co., Ltd.
自己紹介 9
Name : 平田 哲(ひらた さとし) ID : debility Work at : Fusic Co., Ltd. http://fusic.co.jp/
Fusic Co., Ltd.
自己紹介 10
Name : 平田 哲(ひらた さとし) ID : debility Work at : Fusic Co., Ltd. http://fusic.co.jp/ Skill : Program, Server, Network, and “Nomikai”
Fusic Co., Ltd.
自己紹介 11
Name : 平田 哲(ひらた さとし) ID : debility Work at : Fusic Co., Ltd. http://fusic.co.jp/ Skill : Program, Server, Network, and “Nomikai” Icon : © Mutsuking
Fusic Co., Ltd.
仮想サーバを動かす話 29
仮想サーバ=バーチャルなサーバ 1台のサーバコンピュータを複数台の仮想的なコンピュータに分割し、それぞれに別のOSやアプリケーションソフトを動作させる技術。
Fusic Co., Ltd.
仮想サーバを動かす話 30
仮想サーバ=バーチャルなサーバ 1台のサーバコンピュータを複数台の仮想的なコンピュータに分割し、それぞれに別のOSやアプリケーションソフトを動作させる技術。
Fusic Co., Ltd.
仮想サーバを動かす話 31
仮想サーバ=バーチャルなサーバ 1台のサーバコンピュータを複数台の仮想的なコンピュータに分割し、それぞれに別のOSやアプリケーションソフトを動作させる技術。
Fusic Co., Ltd.
仮想サーバを動かす話 35
Q1: 仮想サーバ使ってますか? Q2: どういうケースで使ってますか? ・VPS ・Amazon EC2のようなクラウドサービス ・開発環境として
Fusic Co., Ltd.
仮想サーバを動かす話 36
Q1: 仮想サーバ使ってますか? Q2: どういうケースで使ってますか? ・VPS ・Amazon EC2のようなクラウドサービス ・開発環境として ・仕事で構築
Fusic Co., Ltd.
ハイパーバイザ 38
ハイパーバイザ(Hypervisor) コンピュータを仮想化し、複数の異なるOSを並列に実行できるようにするソフトウェア。コンピュータのハードウェアのように振舞う仮想的なコンピュータ(VM:Virtual Machine、仮想マシン、バーチャルマシン)をソフトウェアによって作り出し、その上で様々な種類のOSを稼動させることができる。
Fusic Co., Ltd.
ハイパーバイザ 39
ハイパーバイザ(Hypervisor) コンピュータを仮想化し、複数の異なるOSを並列に実行できるようにするソフトウェア。コンピュータのハードウェアのように振舞う仮想的なコンピュータ(VM:Virtual Machine、仮想マシン、バーチャルマシン)をソフトウェアによって作り出し、その上で様々な種類のOSを稼動させることができる。 KVM,Xen,VMWare,LXC,VirtualBox,etcetc...
Fusic Co., Ltd.
Sys::Virt 50
Sys::Virt libvirtのperlバインディング http://search.cpan.org/~danberr/Sys-Virt/
Fusic Co., Ltd.
Sys::Virt 51
Sys::Virt libvirtのperlバインディング http://search.cpan.org/~danberr/Sys-Virt/ Module Version: 0.9.5
Fusic Co., Ltd.
Sys::Virt 52
Sys::Virt libvirtのperlバインディング http://search.cpan.org/~danberr/Sys-Virt/ Module Version: 0.9.5 使うVersionはlibvirtに依存する(see CHANGES) ※ Ubuntu11.04の場合
Fusic Co., Ltd.
Sys::Virt 53
Sys::Virt libvirtのperlバインディング http://search.cpan.org/~danberr/Sys-Virt/ Module Version: 0.9.5 使うVersionはlibvirtに依存する(see CHANGES) ※ Ubuntu11.04の場合 libvirt 0.8.8 → Sys::Virt 0.2.7
Fusic Co., Ltd. 54
use strict; use warnings; use Sys::Virt; my $addr = "qemu:///system"; my $vmm = Sys::Virt->new(address => $addr); my @domains = $vmm->list_domains(); foreach my $dom (@domains) { print "Domain ", $dom->get_id, " ", $dom->get_name, "¥n"; }
Sys::Virt
Fusic Co., Ltd. 57
----- :wq ----- $ perl sys_virt.pl Domain 0 ubuntu-lucid Domain 1 centos Domain 2 ubuntu-carmic $
Sys::Virt
Fusic Co., Ltd. 58
----- :wq ----- $ perl sys_virt.pl Domain 0 ubuntu-lucid Domain 1 centos Domain 2 ubuntu-carmic $ :-)
Sys::Virt
Fusic Co., Ltd.
Beccoame 62
Beccoame 0.1 = Bogus elastic computing, like Amazon EC2 or Eucalyptus ※ Amazon EC2やEucalyptusっぽい偽クラウド
Fusic Co., Ltd.
Beccoame 65
Beccoame 0.1 = Bogus elastic computing, like Amazon EC2 or Eucalyptus ※ Amazon EC2やEucalyptusっぽい偽クラウド use Sys::Virt;
Fusic Co., Ltd.
Beccoame 66
Beccoame 0.1 = Bogus elastic computing, like Amazon EC2 or Eucalyptus ※ Amazon EC2やEucalyptusっぽい偽クラウド use Sys::Virt; use Tatsumaki;
Fusic Co., Ltd. 67
$ perl run_instances.pl HTTP/1.0 200 OK Content-Type: text/xml; charset=utf-8 Client-Date: Wed, 28 Jul 2010 02:56:47 GMT Client-Peer: 127.0.0.1:5000 Client-Response-Num: 1 <RunInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2006-10-01"> <groupSet> <item> (略)
Beccoame
Fusic Co., Ltd. 69
$ virsh list Id 名前 状態 ---------------------------------- 47 i-ea19a11c 実行中 48 i-e89ae6b5 実行中 49 i-fb30dc5a 実行中 $
Beccoame
Fusic Co., Ltd. 70
$ virsh list Id 名前 状態 ---------------------------------- 47 i-ea19a11c 実行中 48 i-e89ae6b5 実行中 49 i-fb30dc5a 実行中 $ :-)
Beccoame
Fusic Co., Ltd.
Beccoame 71
Beccoame 0.1 = Bogus elastic computing, like Amazon EC2 or Eucalyptus ※ Amazon EC2やEucalyptusっぽい偽クラウド use Sys::Virt; use Tatsumaki; → http://blog.fusic.co.jp/archives/255
Fusic Co., Ltd.
仕事の話 74
仕事の話 複数の物理サーバ上に多数(50台とか100台とか)の仮想サーバを迅速に配備する仮想化環境の構築 要件: Amazon EC2互換のWeb APIを持つ
Fusic Co., Ltd. 78
Beccoame 1.0
process
process
Virtual Instances
process
process
MQ
Beccoame 1.0
Web API
Fusic Co., Ltd. 79
Beccoame 1.0
process
process
process
Virtual Instances
process
process DB
MQ
Beccoame 1.0
Web API
Fusic Co., Ltd. 80
Beccoame 1.0
process
process
process
Virtual Instances
process
process DB
MQ
Beccoame 1.0
Web API Amon2
Fusic Co., Ltd. 81
Beccoame 1.0
process
process
process
Virtual Instances
process
process DB
MQ
Beccoame 1.0
Web API Amon2 Sys::Virt
Sys::Virt
Sys::Virt
Fusic Co., Ltd. 82
Beccoame 1.0
process
process
process
Virtual Instances
process
process DB
MQ
Beccoame 1.0
Web API Amon2
Net::AMQP
Sys::Virt
Sys::Virt
Sys::Virt
Fusic Co., Ltd. 83
Beccoame 1.0
process
process
process
Virtual Instances
process
process DB
MQ
Beccoame 1.0
Web API Amon2
Net::AMQP
Teng
Sys::Virt
Sys::Virt
Sys::Virt
Fusic Co., Ltd.
仕事の話 84
仕事の話 複数の物理サーバ上に多数(50台とか100台とか)の仮想サーバを迅速に配備する仮想化環境の構築 要件: Amazon EC2互換のWeb APIを持つ 要件:
Fusic Co., Ltd.
仕事の話 91
仕事の話 複数の物理サーバ上に多数(50台とか100台とか)の仮想サーバを迅速に配備する仮想化環境の構築 要件: Amazon EC2互換のWeb APIを持つ 要件: Rubyで開発されていること
Fusic Co., Ltd. 93
Beccoame 1.0
process
process
process
Virtual Instances
process
process DB
MQ
Beccoame 1.0
Web API Amon2
Net::AMQP
Teng
Sys::Virt
Sys::Virt
Sys::Virt
Fusic Co., Ltd. 94
Becco...
process
process
process
Virtual Instances
process
process DB
MQ
Becco...
Web API
Fusic Co., Ltd. 95
Perl → Ruby
Volante
Sweeper
Striker
Virtual Instances
Striker
Striker DB
Field
Volante Cloud
Web API
Sinatra
Carrot
Mongo Mapper
ruby-libvirt
ruby-libvirt
ruby-libvirt
Fusic Co., Ltd.
社内で仮想サーバ制御 100
社内で仮想サーバ制御 Fusic Webシステムがメインの会社です PHP(CakePHP)とRuby(Ruby on Rails)がメインです
Fusic Co., Ltd.
社内で仮想サーバ制御 101
社内で仮想サーバ制御 Fusic Webシステムがメインの会社です PHP(CakePHP)とRuby(Ruby on Rails)がメインです 受託開発のお仕事が圧倒的に多いです
Fusic Co., Ltd.
社内で仮想サーバ制御 102
社内で仮想サーバ制御 Fusic Webシステムがメインの会社です PHP(CakePHP)とRuby(Ruby on Rails)がメインです 受託開発のお仕事が圧倒的に多いです シンプルな構成の案件がやっぱり多いです
Fusic Co., Ltd.
社内で仮想サーバ制御 107
社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの
Fusic Co., Ltd.
社内で仮想サーバ制御 108
社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの 今のところホスト1台しかないよ
Fusic Co., Ltd.
社内で仮想サーバ制御 109
社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの 今のところホスト1台しかないよ 増えてもあと1台くらいだよ
Fusic Co., Ltd.
社内で仮想サーバ制御 110
社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの 今のところホスト1台しかないよ 増えてもあと1台くらいだよ IPアドレス指定できるといいな
Fusic Co., Ltd.
社内で仮想サーバ制御 111
社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの 今のところホスト1台しかないよ 増えてもあと1台くらいだよ IPアドレス指定できるといいな 定期バックアップあると嬉しいかもね
Fusic Co., Ltd.
社内で仮想サーバ制御 117
use Sys::Virt; use Sys::Guestfs; use Amon2; (or use Dancer;) use Teng;
Fusic Co., Ltd.
社内で仮想サーバ制御 118
use Sys::Virt; use Sys::Guestfs; use Amon2; (or use Dancer;) use Teng; use AnyEvent;
Fusic Co., Ltd.
社内で仮想サーバ制御 119
use Sys::Virt; use Sys::Guestfs; use Amon2; (or use Dancer;) use Teng; use AnyEvent; な簡易アプリを作る予定です。
Fusic Co., Ltd.
CM 124
http://zenpre.net/ オンラインプレゼンツール iPhoneアプリで操作できます ustreamの動画と同期できます - 動画とセットで後から視聴できます
Fusic Co., Ltd.
CM 125
http://zenpre.net/ オンラインプレゼンツール iPhoneアプリで操作できます ustreamの動画と同期できます - 動画とセットで後から視聴できます
※Ruby製です