SlideShare a Scribd company logo
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
1
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実
装について
ConoHa誕生の話
OpenStack 3rd Birthday Party in Japan:
2013/07/24
GMOインターネット株式会社
システム本部 サービス開発部
システムインテグレーションチーム
郷古 直仁
113年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
2
アジェンダ
• ◎ConoHaとは
‒ グルーブのほかのサービス紹介、製品の位置付けなど
• ◎ConoHa 開発チーム
• ◎ConoHa 開発の流れ
• ◎ConoHa がOpenStack Grizzlyである理由
• ◎ConoHa実装
– VIF Driver: LibvirtHybridOVSBridgeDriver
– dhcp agent, gre tunnel
• ◎OpenStack改変部
– hooks, OpenStackにもhooksがほしい, コントロールパネル
– Ubuntu 12.04 LTS Ubuntu Cloud採用のメリット、デメリット
• ◎今後のConoHa
213年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
3
◎ConoHa とは
http://www.conoha.jp/
マスコット 「美雲このは」
電子の座敷わらし
Compute Nodes with Hi-flexible Architecture
まずは、VPSからサービスを始めました
フレキシブルにサービスを追加予定 (のはず)
OpenStack Grizzlyでサービスを開発
•GrizzlyのQuantum(Neutron)によるovsを使った
ローカルネットワーク構成可能
•VIF attach/dettach (Grizzly)
•IPv4 x1, IPv6 x17(1+16)を標準で
•IPv4追加IPオプション可能
•OpenStack利用のサービスでキャラ設定あり!
•他機能は、 お名前.com VPS-KVM (OpenStack
Diablo環境)からporting
313年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
4
GMOインターネットの仮想化サービス
(1) お名前.com VPS VZ
(2) GMOアプリクラウド
GMOクラウド Public (Xen, KVM)
GMOインターネットグループの仮想化サービス(独立性)
GMOクラウド VPS
(3) お名前.com Desktopクラウド
従量制、API開発機能あり
ソーシャルアプリ・webの運用、
専用サーバのハイブリッド運用、
Fusion-IO専用サーバ、その他カス
タマイズ構成可
KVM、月額課金、Plesk
Hyper-V3, Thin ClientサービスVirtuozzo(OpenVZベース)、
OS仮想化(コンテナ)
(4) お名前.com VPS KVM
(OpenStack Diablo環境)
Linux KVM
自由度、リソースきっちり
EL6, KVM
運用ノウハ
ウ等
SQALE (payperboy&co)
PaaS従量制、API開発機能あり
VDI, リモートDesktop環境として
VPSからクラウドへ
移行できる機能
PaaS on IaaSで稼働
(5) ConoHa
(OpenStack Grizzly環境)
Linux KVM
IP追加、IPv6対応、複数VM
構成のための機能など
使い方志向
新規のサービスブランドとし
て
413年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
5
GMOアプリクラウド
http://cloud.gmo.jp/
マスコット 「美雲あんず」
「美雲このは」とはいとこ設定
・アプライアンスLBがある仮想/専用サーバ ハイブリッドクラウド
・Fusion IO ioDriveも専用サーバに選択可能
・東京Unit, US-Unitが選択可能
・Linux KVM(CentOS Host)
・開発運用チームはおなじ
513年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
6
Rubyでプログラムをすぐgithubからdeployしてwebを
構築できるサービス
・Ruby on Rails、Sinatra対応
・ PaaS on IaaS
SQALE (<グループ>Payperboy&co, PaaS)
613年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
7
お名前.com VPS VZ (Virtuozzo)
VPS VZ(Virtuozzo := OpenVZ製品版)
コンパネから共用サーバの用にメールアドレスやVirtualHostの設定ができるが
ユーザの環境は独立
OS仮想環境 (OSのアプリケーション環境のみ仮想化)
ただし、制限が多いが
・使いたい機能を適度に提供できる(mail, web)
・コントロールパネルからの設定の反映
ヒント! がここに
713年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
8
お名前.com VPS KVMとは(OpenStack Diablo環境)
OpenStack DiabloのNovaの機能をベースに、機能を追加
・ISO uploadでの自由なOSインストール、Live CD boot
・http/https/sshのみで接続が可能 (noVNC)
・コピペ可能なシリアルコンソール (anyterm, nova-console,
conserver)
・virtIO ON/OFF (libvirt hooks)
・VIFのセキュリティ(spoofing対策とか、IP固定利用とか)
(libvirt nwfilter, ISC dhcpd)
・REST API (novaclient, )
OpenStack Diablo
お名前.com VPS KVM誕生
813年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
9
お名前.com VPS KVMのシステム構成概要
コンパネ系web (.Net + IIS) Windows Server
商材DB (mysql, Oracle) 課金とか
管理系サーバ (Linux KVMインスタンス)
websocket-VNCクラスタ(noVNC)
ssh/html5 consoleサーバ
sftpサーバ
rabbitmqサーバ
dhcpサーバ
ldapサーバ(dhcp, ssh)
nova/keystone DB(mysql)サーバ
nova Manage/APIサーバ/Glance
ISO upload storage (GlusterFS, NFS)
Linux KVM (nova Compute) CentOS 6.x
nova Compute, collectd, kvm
<< APIサーバはコンパネアクセス、Glanceは
初期イメージのみ保存
<< keystoneはテナント管理しない
<< IP固定割り当ての為 ISC dhcp + ldap
<< Diabloでオワコン、anyterm拡張で復活
<< VMに対する月額課金を基本、帯域課金無し
<< コンパネ用のVMリソースグラフの自動生成
ConoHa開発 :
これらの機能をFolsomにポーティングから始まった
913年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
10
◎ConoHa 開発チーム
ビジネスモデル構築、Spec : 4名ぐらい
API (OpenStack, GMO hook API) : 2名
OpenStackインフラ(検証、解析、構築、Gluster、
hook作成と移植、IPv6v4デュアル環境検証) : 6名ぐらい
Network Team : 1名+1
.Net html5コンパネ Team : 4名ぐらい
課金系(月後払い、日割り) : 4名ぐらい
QA Team : 後半にのべ10名以上
終盤はいろんな方々がテスト
ほか、サポートメンバーなど
1013年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
11
◎ConoHa 開発の流れ
2012/09/27 : OpenStack 2012.2 Folsomリリース
2012/11/09 : KOF 大阪参加 ; 晩御飯の席で、事業サイドでなんかや
りたい感が出てくる
2012/11月頃 : ConoHa環境を構築するDCフロアできる( このは の
棲家)
2013/01頃 : FolsomへのDiabloからの機能Porting開始
2013/02/23 : OSC Tokyo ; Folsom でIPv6/IPv4 Dualstackで
検証中であることを、経過報告
1113年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
12
ConoHa 開発の流れ (2)
2013/03頃 : ビジネスモデル化進行、同時にキャラ設定のベース、声優さん選びと
かも進んでいる
Grizzly rcに検証ベースを変更、再Porting開始
2013/04/05(JST) : OpenStack 2013.1 Grizzlyリリース、
それより少し前に、開発ベースをUbuntu 12.04LTS(UbuntuCloud
OpenStack Grizzly rc2)に固定
2013/06中旬 : 新入社員へのOJTで、DevStack + Compute Nodeとかを企画
してみて、この時期のGrizzlyは普通に動くことを確認
>> 普通に動くことに、驚愕となる( )
2013/06頃 : 当初のリリースターゲット、API開発はほぼ完了で機能のテスト開
始、インフラはテスト遅れ気味、.Netコンパネは開発が進みはじめる
1213年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
13
ConoHa 開発の流れ (3)
2013/06末 : リリースベースのLinux kernel 3.5.0系に変更
 Nova Computeのインフラ仕様(libvirt, kernel, 他ライブラリ)が動作不安定で
テストと行ったり来たり
 この時点で 7/6,7,13,14の秋葉原イベントはすでに決定済みと知る
2013/06末 - 07最初 : Nova Compute nodeのクリーンインストール増産開始
(cobbler)
2013/07/04 : ConoHa リリース
 月末締めの課金は開発継続
2013/07/6,7,13,14 : 秋葉原イベント敢行
1313年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
14
◎ConoHa がOpenStack Grizzlyである理由
•NIC(VIF)の動的atach, detach
•Grizzlyを待った主要因
•Folsom時点でも後半リポジトリに入った、Grizzlyで完全mergeされる
•vm作成時ではなく、作成後にもネットワーク構成の変更が可能
•Quantum ovs plugin構成の安定化(Folsomより)
•ローカルネットワーク構成
•実際に選択したのはLibvirtHybridOVSBridgeDriver
(ovs + Linux bridge)
•libvirt nwfilterを使いたかったので、これは選択肢狭い
•OpenFlow系でfirewall, QoSが充実してほしいがまだ殆ど無い
•セキュリティグループ
•Grizzly = グリズリーさん = くま
•くまはいいよね
1413年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
15
ConoHa実装 : VIF Driver :
LibvirtHybridOVSBridgeDriver
•Libvirt nwfilterの適用出来るovs + Linux Bridge兼用モード
•構成的にはちょっと気持ち悪い気がする
•ovsだけでできないの
>> libvirtのnwfilterがLinux Bridge用 (iptables, ebtables)
•Diablo Portingよりnwfilterが使いたかったので、選択
•virshコマンドとの併用
•tapがつなぐLinux Bridgeはnovaが叩く、作る (brctl addbr)
•ovs-compat driverは不可 (今後なくなるので、まぁよし)
•なので、ovs疎通できない状態でのvirsh startが可能
•将来的にはどうなるのか、このモードは
•ovs, OpenFlowでのfirewall driverが進化進むと...
•firewall driverもnovaからneutronに移行期
1513年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
16
ConoHa実装 : LibvirtHybridOVSBridgeDriver
OpenStack Docmentより
1613年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
17
ConoHa実装 : LibvirtHybridOVSBridgeDriver
•FlatVLAN + ovs(gre) Edge overlay的な構成モード
•gre tunnelメッシュ構成にすべてのネットワークがvlanで入っている
•すべてのzoneのCompute Nodeにフルメッシュ接続
Example)
tunnel(vlan 1) := Ext. vlan 1001
tunnel(vlan 2) := (Local)tenant vlan 1
....
•外に出るときには、mod_vlan flowにより外部のvlanに変換
•gre tunnel内 VLAN数にはおそらく上限
(vlan id:4095が停止ネットワークの指定vlan id)
•サービス的に、現在はquantum L3 agent無しで構成
•L3はNW機器に任せる <-- サービス構成として割り切り
•テナントネットワークのL3要素は今回は無し
•L3 node, L3 agentが自動で冗長とかできるのなら...
•Quantum LBaaS agent が(今後)あれば良い
1713年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
18
ConoHa実装 : dhcp agent
dnsmasqを起動するdhcp agent
•ipv6 ipv4 Dualstack稼働が
うまく稼働しない
•dnsmasq を自動で起動する必要は
ない
(Network追加 << IP追加時のみ)
ISC dhcpd driver(未使用)
https://blueprints.launchpad.net/neutron/
+spec/quantum-dhcp
ISC dhcpdをIPv4, IPv6べつに起動
ldapにより稼働させる
(冗長性も向上)
DHCP Node
ISC DHCP server
10.0.1.11/23
eth
VLAN 1
ISC DHCPv6 server
2400:cafe:beef:a00f:
10:0:1:11/64
VLAN 2
VLAN 3
10.0.3.11/23
2400:cafe:beef:a00g:
10:0:3:11/64
ldap clusterへ
config
1813年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
19
ConoHaネットワーク (overview)
gre tunnel、storageを別に(10G Base-T)
(VLANごとに帯域固定)
管理系
L3 SW
L3 SW
console
console
console
dhcp
Internet
console
vnc
サービス系
API / Manage
API/nova Manage
mq
mq
API / Manage
mysql
db
nova DB
keystone DB
glance DB
sftp
sftp
API / Manage
mysql
db
会員/課金 DB
Storage
Storage
ISO storage
(GlusterFS)
mq
ldap
API / Manage
コンパネweb (.Net)
API
nova Compute
nova Compute
nova Compute
nova Compute
nova Compute
nova Compute
nova Compute
nova Compute
nova Compute
nova Compute
コンパネ系
glance
RAID 10 local disk RAID 10 local disk
sftp
quantum
db
quantum DB
API/Mg系
storage系
gre tunnel
1913年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
20
ConoHaネットワーク (gre tunnel)
Network Node
Compute NodeCompute Node
DHCP Node
VM 1 VM 2 VM 1 VM 2
DHCP server
10.0.1.2/24
10.0.1.3 10.0.1.4 10.0.1.5 10.0.1.6
Network Interface
patch port + OpenFlow rule
OVS br-tun
OVS br-tunOVS br-tun
OVS br-tun
OVS br-int
10.0.1.1
eth
(trunk)
OVS br-int
OVS br-int OVS br-int
WAN
8.8.0.1
GRE
vlan
mod_vlan
gre tunnelがどんどん増えていく様:
Compute node増設
Zoneに関係なく、メッシュに追加さ
れる
<< どこかで、
メッシュツリーとかに
したくなるのだが...
2013年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
21
◎OpenStack改変部
•ACPI PowerShutdown
•やっぱり無いので、libvirtドライバーに追加
•オリジナルスケジューラー
•Grizzlyのスケジューラー + α:
•minimum resource create logic
•ノード指定vm作成(スタッフツール)
•qcow2ローカルストレージimgのスナップショット機能
•今回はそのままPorting
•Disk image リサイズ機能
2113年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
22
OpenStack + Linux : hooks
OpenStackを利用したサービスを作るのに、欲しくなる要素
既存のComputeで利用可能hook
・libvirt hook (vm帯域制限、お試し期間設定など利用)
http://www.libvirt.org/hooks.html
/etc/libvirt/hooks/{lxc,qemu,daemon}/
適当なスクリプトを置くと実行
・upstart (ubuntu, EL6) (vlanごとの帯域設定(ovs) )
http://upstart.ubuntu.com/
post-start, pre-stopなど利用
・networking (post-upでvlanごとの帯域設定)
/etc/network/{if-down.d,if-post-down.d,
if-pre-up.d,if-up.d}
機能をカスタマイズする要素
運用でのwork around適用
2213年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
23
OpenStackにも hook機能がほしい
OpenStack自体にもhook機能あると良い
plugin以外のOpenStack利用のエコシステム
Objectがなにかするときにちょっとした機能を実行
Object:
vm, vif, network, image, storage
Method:
create, modify, delete, start, stop, ... etc.
・Return codeの規定、ライブラリ
・bashでもphpでもなんでも良いので、hookさせたいものの広がりを
ユーザーが作れるとか、良いかも
2313年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
24
コントロールパネル(cp)
nova-novncproxy(noVNC) + nginx : html5 VNC
nova-console + anyterm(旧Diabloより) : serial console
iPad対応(noVNC)とかも
2413年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
25
コントロールパネル(cp) : 認証
oauth認証対応 (Facebook, Google+)
2513年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
26
コントロールパネル(cp) : ネットワーク
MACアドレス生成ロジックを
ランダムから変更
Dual NIC PCIeっぽいMAC ADDR.
VIF nameはMAC + idに
IPv6はIPv4の射影アドレスから割り当て
2613年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
27
2713年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
28
2813年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
29
2913年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
30
Ubuntu 12.04.2 LTS Ubuntu cloudの採用; メリット
★メリット
- OpenStack開発チームと近い環境で開発運用のメリット(build環境)
* 使おうと思えば開発に近いtrunk Grizzlyパッケージが使える
* 修正をOpenStack側にcommitしやすくなるはず
* .deb pkgのバージョン管理とbuildの厳密さ
- kernelが新しいことでの新機能のメリット(どこまで使うか未定だが)
* KVM: Nested KVM (提供予定)
* KVM + Qemu: 9p(Plan9)FS[virtFS]とnetwork
* KVM, Xen, LXCが標準で仮想化として使える
nova-compute-kvm, nova-compute-xen,
nova-compute-lxc
- Quantumで必要な機能; ns(Name Space) routing
* マルチテナントでネットワーク構築時、 192.168.1.0/24とか同じIP
アサインのネットワークを作るときに必要
(EL6系でも RDO ではkernelやiproute2パッケージ提供あり)
3013年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
31
Ubuntu 12.04.2 LTS Ubuntu cloudの採用: デメリット
★デメリット
- 開発 build環境
* .deb pkgのバージョン管理とbuildの厳密さによるもの
いままでソースコード上書きとかしていたものが、dpkgに怒られるので
ちゃんと.debのビルド運用
- Ubuntuのローカルミラーリポジトリとか作ると巨大すぎるdisk領域
* 大量セットアップで外部Mirrorとか見に行くとなんか遅い気が...
- サーバーのHardwareサポートの未成熟(Driver)
* Performanceをあまり重視しない
* RedHatさんだと、リリースノートに何%性能向上とかでるけど、
Ubuntuはupstreamに依存、性能は下る場合もある
(RedHatのしごとはすごい)
- LTSなのに 12.04.1 ==> 12.04.2 とかでpkgバージョンが変わる場合
Linux kernel ([3.2] >> 3.5 >> 3.8), libvirt
* CentOSでもlibvirtとか結構変わったけどねw
3113年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
32
◎今後のConoHa
•課金処理 (月末締めw) << マネタイズは大事です!
未解決事項
•ローカルネットワークの細かい見直し
•未解決のquamtum metadata agent構成
•quantum LBaaS agent構成
•nginx L7 LBaaS作り
検証
•Heat, Ceilometer, DBaaS(autoscale)
•API提供構成と課金との 褄あわせ、Proxy endpoint
サービスとして
•PaaS on IaaS, SaaS on IaaS
•サービスのせる環境としても使っていく
3213年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
33
質問、要望、アドバイスなど有りましたら、のちほどお願い
致します
iPadでのvnc操作とかは、デモ出来ます
3313年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
34
ご清聴ありがとうございました
Special Thanks!
GMO Internet Inc., System Div., SI Team and Cloud Team,
Hostingh Team
3413年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
35
3513年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
36
3613年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
37
3713年7月26日金曜日
ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話
38
API検証ツール兼Staffツール
- VNCやAnyterm、帯域制限などwebで押せる
ようになっている
- vmのメンテナンスモード on/off
- ACPI shutdownも
3813年7月26日金曜日

More Related Content

"ConoHa" VPS-KVM; OpenStack Grizzly based service

  • 1. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 1 ConoHa kvm-VPS; OpenStack Grizzlyのサービス実 装について ConoHa誕生の話 OpenStack 3rd Birthday Party in Japan: 2013/07/24 GMOインターネット株式会社 システム本部 サービス開発部 システムインテグレーションチーム 郷古 直仁 113年7月26日金曜日
  • 2. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 2 アジェンダ • ◎ConoHaとは ‒ グルーブのほかのサービス紹介、製品の位置付けなど • ◎ConoHa 開発チーム • ◎ConoHa 開発の流れ • ◎ConoHa がOpenStack Grizzlyである理由 • ◎ConoHa実装 – VIF Driver: LibvirtHybridOVSBridgeDriver – dhcp agent, gre tunnel • ◎OpenStack改変部 – hooks, OpenStackにもhooksがほしい, コントロールパネル – Ubuntu 12.04 LTS Ubuntu Cloud採用のメリット、デメリット • ◎今後のConoHa 213年7月26日金曜日
  • 3. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 3 ◎ConoHa とは http://www.conoha.jp/ マスコット 「美雲このは」 電子の座敷わらし Compute Nodes with Hi-flexible Architecture まずは、VPSからサービスを始めました フレキシブルにサービスを追加予定 (のはず) OpenStack Grizzlyでサービスを開発 •GrizzlyのQuantum(Neutron)によるovsを使った ローカルネットワーク構成可能 •VIF attach/dettach (Grizzly) •IPv4 x1, IPv6 x17(1+16)を標準で •IPv4追加IPオプション可能 •OpenStack利用のサービスでキャラ設定あり! •他機能は、 お名前.com VPS-KVM (OpenStack Diablo環境)からporting 313年7月26日金曜日
  • 4. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 4 GMOインターネットの仮想化サービス (1) お名前.com VPS VZ (2) GMOアプリクラウド GMOクラウド Public (Xen, KVM) GMOインターネットグループの仮想化サービス(独立性) GMOクラウド VPS (3) お名前.com Desktopクラウド 従量制、API開発機能あり ソーシャルアプリ・webの運用、 専用サーバのハイブリッド運用、 Fusion-IO専用サーバ、その他カス タマイズ構成可 KVM、月額課金、Plesk Hyper-V3, Thin ClientサービスVirtuozzo(OpenVZベース)、 OS仮想化(コンテナ) (4) お名前.com VPS KVM (OpenStack Diablo環境) Linux KVM 自由度、リソースきっちり EL6, KVM 運用ノウハ ウ等 SQALE (payperboy&co) PaaS従量制、API開発機能あり VDI, リモートDesktop環境として VPSからクラウドへ 移行できる機能 PaaS on IaaSで稼働 (5) ConoHa (OpenStack Grizzly環境) Linux KVM IP追加、IPv6対応、複数VM 構成のための機能など 使い方志向 新規のサービスブランドとし て 413年7月26日金曜日
  • 5. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 5 GMOアプリクラウド http://cloud.gmo.jp/ マスコット 「美雲あんず」 「美雲このは」とはいとこ設定 ・アプライアンスLBがある仮想/専用サーバ ハイブリッドクラウド ・Fusion IO ioDriveも専用サーバに選択可能 ・東京Unit, US-Unitが選択可能 ・Linux KVM(CentOS Host) ・開発運用チームはおなじ 513年7月26日金曜日
  • 6. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 6 Rubyでプログラムをすぐgithubからdeployしてwebを 構築できるサービス ・Ruby on Rails、Sinatra対応 ・ PaaS on IaaS SQALE (<グループ>Payperboy&co, PaaS) 613年7月26日金曜日
  • 7. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 7 お名前.com VPS VZ (Virtuozzo) VPS VZ(Virtuozzo := OpenVZ製品版) コンパネから共用サーバの用にメールアドレスやVirtualHostの設定ができるが ユーザの環境は独立 OS仮想環境 (OSのアプリケーション環境のみ仮想化) ただし、制限が多いが ・使いたい機能を適度に提供できる(mail, web) ・コントロールパネルからの設定の反映 ヒント! がここに 713年7月26日金曜日
  • 8. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 8 お名前.com VPS KVMとは(OpenStack Diablo環境) OpenStack DiabloのNovaの機能をベースに、機能を追加 ・ISO uploadでの自由なOSインストール、Live CD boot ・http/https/sshのみで接続が可能 (noVNC) ・コピペ可能なシリアルコンソール (anyterm, nova-console, conserver) ・virtIO ON/OFF (libvirt hooks) ・VIFのセキュリティ(spoofing対策とか、IP固定利用とか) (libvirt nwfilter, ISC dhcpd) ・REST API (novaclient, ) OpenStack Diablo お名前.com VPS KVM誕生 813年7月26日金曜日
  • 9. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 9 お名前.com VPS KVMのシステム構成概要 コンパネ系web (.Net + IIS) Windows Server 商材DB (mysql, Oracle) 課金とか 管理系サーバ (Linux KVMインスタンス) websocket-VNCクラスタ(noVNC) ssh/html5 consoleサーバ sftpサーバ rabbitmqサーバ dhcpサーバ ldapサーバ(dhcp, ssh) nova/keystone DB(mysql)サーバ nova Manage/APIサーバ/Glance ISO upload storage (GlusterFS, NFS) Linux KVM (nova Compute) CentOS 6.x nova Compute, collectd, kvm << APIサーバはコンパネアクセス、Glanceは 初期イメージのみ保存 << keystoneはテナント管理しない << IP固定割り当ての為 ISC dhcp + ldap << Diabloでオワコン、anyterm拡張で復活 << VMに対する月額課金を基本、帯域課金無し << コンパネ用のVMリソースグラフの自動生成 ConoHa開発 : これらの機能をFolsomにポーティングから始まった 913年7月26日金曜日
  • 10. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 10 ◎ConoHa 開発チーム ビジネスモデル構築、Spec : 4名ぐらい API (OpenStack, GMO hook API) : 2名 OpenStackインフラ(検証、解析、構築、Gluster、 hook作成と移植、IPv6v4デュアル環境検証) : 6名ぐらい Network Team : 1名+1 .Net html5コンパネ Team : 4名ぐらい 課金系(月後払い、日割り) : 4名ぐらい QA Team : 後半にのべ10名以上 終盤はいろんな方々がテスト ほか、サポートメンバーなど 1013年7月26日金曜日
  • 11. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 11 ◎ConoHa 開発の流れ 2012/09/27 : OpenStack 2012.2 Folsomリリース 2012/11/09 : KOF 大阪参加 ; 晩御飯の席で、事業サイドでなんかや りたい感が出てくる 2012/11月頃 : ConoHa環境を構築するDCフロアできる( このは の 棲家) 2013/01頃 : FolsomへのDiabloからの機能Porting開始 2013/02/23 : OSC Tokyo ; Folsom でIPv6/IPv4 Dualstackで 検証中であることを、経過報告 1113年7月26日金曜日
  • 12. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 12 ConoHa 開発の流れ (2) 2013/03頃 : ビジネスモデル化進行、同時にキャラ設定のベース、声優さん選びと かも進んでいる Grizzly rcに検証ベースを変更、再Porting開始 2013/04/05(JST) : OpenStack 2013.1 Grizzlyリリース、 それより少し前に、開発ベースをUbuntu 12.04LTS(UbuntuCloud OpenStack Grizzly rc2)に固定 2013/06中旬 : 新入社員へのOJTで、DevStack + Compute Nodeとかを企画 してみて、この時期のGrizzlyは普通に動くことを確認 >> 普通に動くことに、驚愕となる( ) 2013/06頃 : 当初のリリースターゲット、API開発はほぼ完了で機能のテスト開 始、インフラはテスト遅れ気味、.Netコンパネは開発が進みはじめる 1213年7月26日金曜日
  • 13. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 13 ConoHa 開発の流れ (3) 2013/06末 : リリースベースのLinux kernel 3.5.0系に変更  Nova Computeのインフラ仕様(libvirt, kernel, 他ライブラリ)が動作不安定で テストと行ったり来たり  この時点で 7/6,7,13,14の秋葉原イベントはすでに決定済みと知る 2013/06末 - 07最初 : Nova Compute nodeのクリーンインストール増産開始 (cobbler) 2013/07/04 : ConoHa リリース  月末締めの課金は開発継続 2013/07/6,7,13,14 : 秋葉原イベント敢行 1313年7月26日金曜日
  • 14. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 14 ◎ConoHa がOpenStack Grizzlyである理由 •NIC(VIF)の動的atach, detach •Grizzlyを待った主要因 •Folsom時点でも後半リポジトリに入った、Grizzlyで完全mergeされる •vm作成時ではなく、作成後にもネットワーク構成の変更が可能 •Quantum ovs plugin構成の安定化(Folsomより) •ローカルネットワーク構成 •実際に選択したのはLibvirtHybridOVSBridgeDriver (ovs + Linux bridge) •libvirt nwfilterを使いたかったので、これは選択肢狭い •OpenFlow系でfirewall, QoSが充実してほしいがまだ殆ど無い •セキュリティグループ •Grizzly = グリズリーさん = くま •くまはいいよね 1413年7月26日金曜日
  • 15. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 15 ConoHa実装 : VIF Driver : LibvirtHybridOVSBridgeDriver •Libvirt nwfilterの適用出来るovs + Linux Bridge兼用モード •構成的にはちょっと気持ち悪い気がする •ovsだけでできないの >> libvirtのnwfilterがLinux Bridge用 (iptables, ebtables) •Diablo Portingよりnwfilterが使いたかったので、選択 •virshコマンドとの併用 •tapがつなぐLinux Bridgeはnovaが叩く、作る (brctl addbr) •ovs-compat driverは不可 (今後なくなるので、まぁよし) •なので、ovs疎通できない状態でのvirsh startが可能 •将来的にはどうなるのか、このモードは •ovs, OpenFlowでのfirewall driverが進化進むと... •firewall driverもnovaからneutronに移行期 1513年7月26日金曜日
  • 16. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 16 ConoHa実装 : LibvirtHybridOVSBridgeDriver OpenStack Docmentより 1613年7月26日金曜日
  • 17. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 17 ConoHa実装 : LibvirtHybridOVSBridgeDriver •FlatVLAN + ovs(gre) Edge overlay的な構成モード •gre tunnelメッシュ構成にすべてのネットワークがvlanで入っている •すべてのzoneのCompute Nodeにフルメッシュ接続 Example) tunnel(vlan 1) := Ext. vlan 1001 tunnel(vlan 2) := (Local)tenant vlan 1 .... •外に出るときには、mod_vlan flowにより外部のvlanに変換 •gre tunnel内 VLAN数にはおそらく上限 (vlan id:4095が停止ネットワークの指定vlan id) •サービス的に、現在はquantum L3 agent無しで構成 •L3はNW機器に任せる <-- サービス構成として割り切り •テナントネットワークのL3要素は今回は無し •L3 node, L3 agentが自動で冗長とかできるのなら... •Quantum LBaaS agent が(今後)あれば良い 1713年7月26日金曜日
  • 18. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 18 ConoHa実装 : dhcp agent dnsmasqを起動するdhcp agent •ipv6 ipv4 Dualstack稼働が うまく稼働しない •dnsmasq を自動で起動する必要は ない (Network追加 << IP追加時のみ) ISC dhcpd driver(未使用) https://blueprints.launchpad.net/neutron/ +spec/quantum-dhcp ISC dhcpdをIPv4, IPv6べつに起動 ldapにより稼働させる (冗長性も向上) DHCP Node ISC DHCP server 10.0.1.11/23 eth VLAN 1 ISC DHCPv6 server 2400:cafe:beef:a00f: 10:0:1:11/64 VLAN 2 VLAN 3 10.0.3.11/23 2400:cafe:beef:a00g: 10:0:3:11/64 ldap clusterへ config 1813年7月26日金曜日
  • 19. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 19 ConoHaネットワーク (overview) gre tunnel、storageを別に(10G Base-T) (VLANごとに帯域固定) 管理系 L3 SW L3 SW console console console dhcp Internet console vnc サービス系 API / Manage API/nova Manage mq mq API / Manage mysql db nova DB keystone DB glance DB sftp sftp API / Manage mysql db 会員/課金 DB Storage Storage ISO storage (GlusterFS) mq ldap API / Manage コンパネweb (.Net) API nova Compute nova Compute nova Compute nova Compute nova Compute nova Compute nova Compute nova Compute nova Compute nova Compute コンパネ系 glance RAID 10 local disk RAID 10 local disk sftp quantum db quantum DB API/Mg系 storage系 gre tunnel 1913年7月26日金曜日
  • 20. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 20 ConoHaネットワーク (gre tunnel) Network Node Compute NodeCompute Node DHCP Node VM 1 VM 2 VM 1 VM 2 DHCP server 10.0.1.2/24 10.0.1.3 10.0.1.4 10.0.1.5 10.0.1.6 Network Interface patch port + OpenFlow rule OVS br-tun OVS br-tunOVS br-tun OVS br-tun OVS br-int 10.0.1.1 eth (trunk) OVS br-int OVS br-int OVS br-int WAN 8.8.0.1 GRE vlan mod_vlan gre tunnelがどんどん増えていく様: Compute node増設 Zoneに関係なく、メッシュに追加さ れる << どこかで、 メッシュツリーとかに したくなるのだが... 2013年7月26日金曜日
  • 21. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 21 ◎OpenStack改変部 •ACPI PowerShutdown •やっぱり無いので、libvirtドライバーに追加 •オリジナルスケジューラー •Grizzlyのスケジューラー + α: •minimum resource create logic •ノード指定vm作成(スタッフツール) •qcow2ローカルストレージimgのスナップショット機能 •今回はそのままPorting •Disk image リサイズ機能 2113年7月26日金曜日
  • 22. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 22 OpenStack + Linux : hooks OpenStackを利用したサービスを作るのに、欲しくなる要素 既存のComputeで利用可能hook ・libvirt hook (vm帯域制限、お試し期間設定など利用) http://www.libvirt.org/hooks.html /etc/libvirt/hooks/{lxc,qemu,daemon}/ 適当なスクリプトを置くと実行 ・upstart (ubuntu, EL6) (vlanごとの帯域設定(ovs) ) http://upstart.ubuntu.com/ post-start, pre-stopなど利用 ・networking (post-upでvlanごとの帯域設定) /etc/network/{if-down.d,if-post-down.d, if-pre-up.d,if-up.d} 機能をカスタマイズする要素 運用でのwork around適用 2213年7月26日金曜日
  • 23. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 23 OpenStackにも hook機能がほしい OpenStack自体にもhook機能あると良い plugin以外のOpenStack利用のエコシステム Objectがなにかするときにちょっとした機能を実行 Object: vm, vif, network, image, storage Method: create, modify, delete, start, stop, ... etc. ・Return codeの規定、ライブラリ ・bashでもphpでもなんでも良いので、hookさせたいものの広がりを ユーザーが作れるとか、良いかも 2313年7月26日金曜日
  • 24. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 24 コントロールパネル(cp) nova-novncproxy(noVNC) + nginx : html5 VNC nova-console + anyterm(旧Diabloより) : serial console iPad対応(noVNC)とかも 2413年7月26日金曜日
  • 25. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 25 コントロールパネル(cp) : 認証 oauth認証対応 (Facebook, Google+) 2513年7月26日金曜日
  • 26. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 26 コントロールパネル(cp) : ネットワーク MACアドレス生成ロジックを ランダムから変更 Dual NIC PCIeっぽいMAC ADDR. VIF nameはMAC + idに IPv6はIPv4の射影アドレスから割り当て 2613年7月26日金曜日
  • 27. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 27 2713年7月26日金曜日
  • 28. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 28 2813年7月26日金曜日
  • 29. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 29 2913年7月26日金曜日
  • 30. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 30 Ubuntu 12.04.2 LTS Ubuntu cloudの採用; メリット ★メリット - OpenStack開発チームと近い環境で開発運用のメリット(build環境) * 使おうと思えば開発に近いtrunk Grizzlyパッケージが使える * 修正をOpenStack側にcommitしやすくなるはず * .deb pkgのバージョン管理とbuildの厳密さ - kernelが新しいことでの新機能のメリット(どこまで使うか未定だが) * KVM: Nested KVM (提供予定) * KVM + Qemu: 9p(Plan9)FS[virtFS]とnetwork * KVM, Xen, LXCが標準で仮想化として使える nova-compute-kvm, nova-compute-xen, nova-compute-lxc - Quantumで必要な機能; ns(Name Space) routing * マルチテナントでネットワーク構築時、 192.168.1.0/24とか同じIP アサインのネットワークを作るときに必要 (EL6系でも RDO ではkernelやiproute2パッケージ提供あり) 3013年7月26日金曜日
  • 31. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 31 Ubuntu 12.04.2 LTS Ubuntu cloudの採用: デメリット ★デメリット - 開発 build環境 * .deb pkgのバージョン管理とbuildの厳密さによるもの いままでソースコード上書きとかしていたものが、dpkgに怒られるので ちゃんと.debのビルド運用 - Ubuntuのローカルミラーリポジトリとか作ると巨大すぎるdisk領域 * 大量セットアップで外部Mirrorとか見に行くとなんか遅い気が... - サーバーのHardwareサポートの未成熟(Driver) * Performanceをあまり重視しない * RedHatさんだと、リリースノートに何%性能向上とかでるけど、 Ubuntuはupstreamに依存、性能は下る場合もある (RedHatのしごとはすごい) - LTSなのに 12.04.1 ==> 12.04.2 とかでpkgバージョンが変わる場合 Linux kernel ([3.2] >> 3.5 >> 3.8), libvirt * CentOSでもlibvirtとか結構変わったけどねw 3113年7月26日金曜日
  • 32. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 32 ◎今後のConoHa •課金処理 (月末締めw) << マネタイズは大事です! 未解決事項 •ローカルネットワークの細かい見直し •未解決のquamtum metadata agent構成 •quantum LBaaS agent構成 •nginx L7 LBaaS作り 検証 •Heat, Ceilometer, DBaaS(autoscale) •API提供構成と課金との 褄あわせ、Proxy endpoint サービスとして •PaaS on IaaS, SaaS on IaaS •サービスのせる環境としても使っていく 3213年7月26日金曜日
  • 33. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 33 質問、要望、アドバイスなど有りましたら、のちほどお願い 致します iPadでのvnc操作とかは、デモ出来ます 3313年7月26日金曜日
  • 34. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 34 ご清聴ありがとうございました Special Thanks! GMO Internet Inc., System Div., SI Team and Cloud Team, Hostingh Team 3413年7月26日金曜日
  • 35. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 35 3513年7月26日金曜日
  • 36. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 36 3613年7月26日金曜日
  • 37. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 37 3713年7月26日金曜日
  • 38. ConoHa kvm-VPS; OpenStack Grizzlyのサービス実装について ConoHa誕生の話 38 API検証ツール兼Staffツール - VNCやAnyterm、帯域制限などwebで押せる ようになっている - vmのメンテナンスモード on/off - ACPI shutdownも 3813年7月26日金曜日