おうちOpenStack
   2012/09/27 #ssmjp
       th0x0472
お約束
twitter: @th0x0472
blog: http://th0x0472.at.webry.info/
自宅にOpenStack環境を構築中。(現在進行形)
そのとき調べたこととか考えたことを
シェアしますよ。

ゆるゆるです。お手柔らかにお願いします。
OpenStackって何?

オープンソースで開発されてる
クラウド(構築and/or管理)ソフトウェア

本家から引用:
“OpenStack is a cloud operating system that controls
large pools of compute, storage, and networking resources...”
お約束の情報源
本家。WikiとかDocumentとか。
http://www.openstack.org/
Blueprintとか
https://launchpad.net/openstack
日本OpenStackユーザ会
http://openstack.jp/
あとコードはGitHub
https://github.com/openstack
クラウド?

クラウドって一言で言っても、
イロイロあるよね。

ありますね。
NISTによる定義
もうあちこちで引用されまくってるけど
Service model:
     Software as a Service (SaaS)
     Platform as a Service (PaaS)
     Infrastructure as a Service (IaaS)
Deployment model:
     Private Cloud
     PUblic Cloud
http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf
日本語版もある

英語は勘弁して!
という僕みたいなへなちょこのために

IPAが日本語版を用意してくれてます。

http://www.ipa.go.jp/security/fy23/reports/tech1-tg/
a_07.html
で、OpenStackはどれ?
Service model は、 IaaSですね。

Deployment model は特に縛りはないけど、
そのままではPublicは厳しそう。
素だと課金できないからね・・・。

でも、HPのCloudはOpenStackだそうです。
中の人超がんばったに違いない。
コトの始まりを
NASAが作っていたnova、RackSpaceが作っていた
swiftが元になっています。

 nova - 仮想マシンを提供してくれます

 swift - 分散オブジェクトストレージを提供し
 てくれます。

OpenStackとしての開発は2010年7月開始らしい
AWSに当てはめると

ぶっちゃけ過ぎですが・・・・

役割的には

 nova = EC2
 swift = S3
ってことでいいと思う
今あるプロジェクト
nova - 仮想マシン担当

horizon - Webユーザインターフェイス担当

glance - OSイメージ管理担当

keystone - 認証担当

swift - 分散オブジェクトストレージ担当
まだまだ増えるよ

Quantam - SDN担当

Cinder - ブロックデバイス担当

この2つは、新リリースから。
新リリース!

Folsomといいます。

今晩か明日リリース!らしい
太平洋標準時 2012/09/27らしい
リリースサイクル
今は春と秋、年2回、半年ごとに
リリースするポリシーらしい。

2012.1 とか 2012.2 とか <リリース年>.<No>

でも、コードネームで呼ばれることが
圧倒的におおい。
歴代リリース
Austin (2010/10)
Bexar (2011/2)
Cactus (2011/4)
Diablo (2011/9)
Essex (2012/4) <- ウチは今コレ

Folsom (2012/9) <- 次はコレ
Grizzly (2013/春)
コードネーム

リリースのコードネームは、
地名を投票で選んでつけるそうです。

Folsomは画像検索するとスゴイらしい。
(先日のユーザ会の方の発表@OSC Tokyo/Fallで
知りました。)
コードネーム万歳!
nova とかもコードネームですよ
nova = OpenStack Compute
horizon = OpenStack Dashboard
glance = OpenStack Image
keystone = OpenStack Identity
swift = OpenStack Object Storage
CinderとQuantamは・・・どうなるんだろ?
プロセスはこんなかんじ
$ ps aux | grep 'nov[a]' | grep python
nova ∼(中略)∼ /usr/bin/python /usr/bin/nova-cert --flagfile=/etc/nova/nova.conf

nova ∼(中略)∼ /usr/bin/python /usr/bin/nova-network --flagfile=/etc/nova/nova.conf

nova ∼(中略)∼ /usr/bin/python /usr/bin/nova-compute --flagfile=/etc/nova/nova.conf --flagfile=/etc/nova/nova-
compute.conf
nova ∼(中略)∼ /usr/bin/python /usr/bin/nova-api --flagfile=/etc/nova/nova.conf

nova ∼(中略)∼ /usr/bin/python /usr/bin/nova-objectstore --flagfile=/etc/nova/nova.conf

nova ∼(中略)∼ /usr/bin/python /usr/bin/nova-scheduler --flagfile=/etc/nova/nova.conf

nova ∼(中略)∼ /usr/bin/python /usr/bin/nova-console --flagfile=/etc/nova/nova.conf

nova ∼(中略)∼ /usr/bin/python /usr/bin/nova-consoleauth --flagfile=/etc/nova/nova.conf
分かること

Pythonで動いてる

一口に nova といっても、
いろんなコンポーネントがある
いろんなnova
よく見るのはこのあたり。
nova-api
nova-cert
nova-compute
nova-network
nova-objectstore
nova-scheduler
nova-volume
ほかにも

nova-console
nova-consoleauth
nova-vnc
で、何が言いたいの?

一言で「仮想マシン担当」っていっても、
イロイロあるんですよ。

 仮想マシンを動作させるホストを決定したり

 仮想マシンに割り当てるIPアドレス用意したり

 仮想マシンのディスク(ブロックデバイス)用意したり

 仮想マシンのコンソールをWebUIに組み込んだり
肝心の仮想化は?
既存のハイパーバイザー使ってます。
 KVM - Kernel-based Virtual Machine
 LXC - Linux Containers (through libvirt)
 QEMU - Quick EMUlator
 UML - User Mode Linux
 VMWare ESX/ESXi 4.1 update 1
 Xen - Xen, Citrix XenServer and Xen Cloud Platform (XCP)
つづきはWebで
詳しくはこのあたり参照で。

http://docs.openstack.org/trunk/openstack-compute/admin/
content/hypervisors.html


FolsomでHyper-V 2008/2012 が復活するらしい
とはいえ

僕はKVMしか使ったことないです!
(自慢できることじゃない)

ハイパーバイザーによって機能差有り。
http://wiki.openstack.org/HypervisorSupportMatrix
KVMとXenが中心っぽい。
で、動いてるところ
VNCでコンソールもOK
蛇足だけど
インスタンスのVNCの出力が
WebUIに埋め込まれてるんだけど
WebSocket使ってます。
こんなかんじ。
[KVM/VNC Server] -<vnc>- [novnc] -<WebSocket>- [Web Browser]
Webブラウザ上の描画はHTML5のCanvasらしい。
僕はHTML5分かりませんけどね・・・。
実際どうよ?
マウスぽちぽち、ぼちぼちテキスト入力で
仮想マシンをどんどん作れる。

ネットワークとかあんまり考えなくてOK
(まぁ今できることは限られてるけど)
(そのへんはQuantamに期待)

他にもイロイロ
WebUIお手軽です
でも、タルイよね
そんなあなたにAPI

最近のクラウドってだいたいAPIもってる。

というか、猫も    子も・・・

当然、OpenStackもAPIを持っています。
こんな本も出ました
Amazon Web Servicesプログラミング
  APIの基礎からElastic Beanstalkの利用まで
天下のO’REILLYさまから
  ¥3,360-
  2012年09月 発行, 348ページ
  ISBN978-4-87311-581-8
買ってみました
でもまだ読んで
いません。

でもまだ読んで
いません。

大事なことなので
二度言いました。
僕のライフが尽きるので

さっさと結論にいこうと思います。

APIを使うといろいろ便利(な予感)。

 便利ツールとか

 便利アプライアンスとか

 自分でAPIたたくコード書いたり
重要なのは

もちろん
「 自分でAPIたたくコード書いたり」

 自分でAPIたたいたり

 他人が書いたAPIたたくコード読んだり
いろいろあるけど

コードに慣れることと

サーバ周りをAPIをたたいて操作するって
感覚を身につける

この2つが大切かな∼と個人的に思います。
どっかで聞いたよね

というか、先月の#ssmjpで

@kawamucho 先生がNW方面から
そんなお話してましたよね。

はい、たぶん同じことです。
もっと振り返ると
今年の初めに、@niftyさんがCROSSって
イベントやりました。
そこで気になったキーワード
「プログラマブルなインフラ」
色々な領域のエンジニアが
クロスするってのもあったと思うけど、
クロスと言うよりボーダレスだと思う
イロイロあるけど


おしまい。

ご清聴ありがとうございました。

2012/09/27 #ssmjp おうちOpenStack