SlideShare a Scribd company logo
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




OpenStack + KVM = お名前.com VPS
∼開発担当者が語る、ここだけの裏話#2∼
新機能 vnc強化とsnapshotについて

    GMOインターネット株式会社
    システム本部 サービス開発部 システムインテグレーションチーム
    郷古 直仁



     K-OF 2012, Osaka: 2012/11/10

http://www.slideshare.net/chroum/2012-osc-kyoto-openstack-vps-kvm




                                                                                           1
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




アジェンダ
•   ◎まずは自己紹介
•   ◎お名前.com VPSとは
    ‒ グルーブのほかのサービス紹介、製品の位置付けなど
•   ◎VPSのシステム構成概要
    – 全体概略、管理系サーバ、コンパネ系、ネットワーク
•   ◎CentOS 6.x + griddynamics.net版 OpenStack Diablo
    – どのようにしてOpenStackをVPSとして使っているか概略
•   ◎新機能:1) コンパネのhtml5 VNC 追加機能 (vmvga ドライバ対応)
•   ◎新機能:2) コンパネのhtml5 VNC 追加機能 (us keymap)
•   ◎新機能:3) snapshot機能
•   ◎まとめ、今後の展開とか




                                                                                      2
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




まずは自己紹介

•   郷古 直仁 (ゴウコ ナオト, Naoto Gohko)
    – @naoto_gohko ,
•   所属: GMOインターネット株式会社
•   部署: システム本部 サービス開発部 システムインテグレーションチーム
•   なにをしているのか: GMOグループ内のSI-er的な感じ
•   関わっているもの:
    – Bekkoame INTERNET, 3WEB, 社内webとmail, その他
       • お名前.com web系システムなど
    – お名前.com VPS VZ(Virtuozzo) ; インフラとか
    – GMOアプリクラウド; インフラとか
    – お名前.com VPS KVM ; インフラとか
    – 美雲あんず ; ちょっとした知り合いw


                                                                                     3
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




GMOインターネットの仮想化サービス
   (1) お名前.com VPS VZ                                      (2) GMOアプリクラウド
   Virtuozzo(OpenVZベース)、
   OS仮想化レベル、swap無し、リソースは
                                          EL6,
   Best Effort
                                          KVM運用
自由度、リソースきっちり                              ノウハウ等
   お名前.com VPS KVM
   Linux KVMでの仮想化
   一般ユーザに使っていただけるもの                                        KVM、ソーシャルアプリ、ソーシャ
   ユーザのリソースはきっちり分かれているVPS                                  ルwebの運用など、アプライアンス
   自由にインストールできる仮想環境の提供                                     のLB(Brocade ADX)がある。イ
                                                           メージテンプレート展開、専用サーバ
   VDI, リモートDesktop環境として影響
                                                           のハイブリッド運用、Fusion-IO専
   (3) お名前.com Desktop クラウド                                用サーバ、その他カスタマイズ構成可

   Hyper-V3, Thin ClientでWindows8開発など                Hyper-V VM, Windows専用提供

GMOインターネットグループの仮想化サービス
GMOクラウド VPS       GMOクラウド Public (Xen, KVM)                     SQALE (payperboy&co)
KVM、月額課金、Plesk     従量制、API開発機能あり                                 PaaS従量制、API開発機能あり

                                                                                          4
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




GMOアプリクラウド
 http://cloud.gmo.jp/
・ソーシャルプラットフォーマーなどに向けたアプライアンスLBがある仮想/
専用サーバ ハイブリッドクラウド
・Fusion IO ioDriveも専用サーバに選択可能
・東京Unit, US-Unitが選択可能 (大阪Unitのリクエスト募集中)




マスコット 「美雲あんず」
TGS 2012で大人気

                                                                                   5
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




GMOアプリクラウド
当初Xen (CentOS 5.3 dom0 + Xen 3.2)で開発


Scientific Linux / CentOS 6.0 リリース後
KVM仮想化対応


==> VPS-KVMの開発につながった
その後、OpenStack Diabloリリース後に
  「お名前.com VPS KVM」へ


開発/運用チームも同じチームが担当
技術と両方の製品の向上へ

                                                                                 6
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




SQALE (<グループ>Payperboy&co, PaaS)
Rubyでプログラムをすぐgithubからdeployしてweb
を構築できるサービス


・Ruby on Rails、Sinatra対応
・PaaSならでは

==> web, dbなどすぐ
deployして使い始める
ことができる




                                                                                 7
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




お名前.com VPS VZ (Virtuozzo)
VPS VZ(Virtuozzo := OpenVZ)


コンパネから共用サーバの用にメールアドレスやVirtualHostの設定ができる
がユーザの環境は独立
OS仮想環境 (OSのアプリケーション環境のみ仮想化)


  ただし制限がある
  ・Linux以外は使えない (FreeBSDとかReactOSとかはダメ)
  ・Swapとか使えない
  ・disk領域を自由に使えない
  ・プロセス単位のリソース制限により、HostがOOMkillerをかける
  ・コンソール機能がない


VPS KVMではそのへんの欲求不満を解消
OpenStackにもコンテナ(OpenVZ, LXC)使える日かきそうだな

                                                                                      8
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




お名前.com VPS VZ (Virtuozzo)
OS仮想化(コンテナ技術)が生きる場所


・ホスト側のファイルシステムの一部をchroot したファイルツリー
 ==> ホスト側からOS内のアプリへのconfigが可能
 ==> VPS VZのコンパネの動作
 Linux KVMでも徐々にlibguestfsによりできるようになりつつある


OS仮想化(コンテナ技術)で難しいこと
・ユーザごとの異なるファイルシステム
・ホストと異なるkernelのOSの稼働
・Host OSにGuest OSの稼働種類が
・/dev 以下へのアクセス (VPNやネットワークの高度利用に必要)




                                                                                 9
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎お名前.com VPS KVM

こんな機能があったらなぁ (エンジニア、利用者としてほしいことを検討、開
発側としてこんなのnative KVMなら使えるのに)


・ISO uploadでの自由なOSインストール、Live CD boot
・http/https/sshのみで接続が可能
・コピペ可能なシリアルコンソール
・virtIO ON/OFF
・GMOアプリクラウド実装されているイメージステージング機能(イメージテ
ンプレート)ほしいな
・VIFのセキュリティ(spoofing対策とか、IP固定利用とか)
・REST APIほしいな

幾つかはOpenStack Diabloが使えそうだ(当時)
                 使ってみよか(検証1ヶ月)

                                                                               10
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎お名前.com VPS KVM だいたいのシステム構成
コンパネ系web (.Net + IIS) Windows Server


商材DB (mysql) 課金とか


管理系サーバ (Linux KVMインスタンス)
  websocket-VNCクラスタ(noVNC)
  ssh/consoleサーバ
  sftpサーバ
  rabbitmqサーバ
  dhcpサーバ
  ldapサーバ(dhcp, ssh)
  nova/keystone DB(mysql)サーバ
  nova Manage/APIサーバ


ISO upload storage (GlusterFS, NFS)


Linux KVM (nova Compute) CentOS 6.x
   nova Compute, collectd, kvm



                                                                                            11
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




お名前.com VPS KVM ネットワーク
                                                  Internet




                                                                                                                                                      コンパネ系




                                                                                    L3 SW
                                                                                     L3 SW
                                                                                                                                                API / Manage
                                                                                                                                                 コンパネweb (.Net)
サービス系                                                                                                             API / Manage
                                                                                                                   mysql
                                                                                                                              db
                                                                                                                                                             API
                                                                                                                会員/課金 DB

                                                                                                                                                API / Manage
                                                                                                                                                 API/nova Manage

nova Compute                            nova Compute
  nova Compute                            nova Compute                                                                                管理系
    nova Compute                            nova Compute                                                                                                     glance
      nova Compute                            nova Compute
        nova Compute                            nova Compute

                                                                                             sftp    console        console           console
                                                                                              sftp    console        dhcp              vnc

                       RAID 10 local disk                      RAID 10 local disk




                                                                                                     mq                  API / Manage           mq
                                                                                                      ldap                mysql                  mq
                                                                                                                                      db
                                                                                                                        nova DB
                                                                         Storage                                        keystone DB
                                                                          Storage
                                                                     ISO storage
                                                                     (NFS)



                                                                                                                                                   12
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




お名前.com VPS KVM ネットワーク

お名前.com VPS VZ(Virtuozzo)のネットワーク構成の反省
・お客のIN/OUTにアプライアンスFirewallを置いた
  >> Portを制限していたが、結局80 port, 22 portなどで攻撃される
  (phpとか...)
  >> お客の利用状況で配下ネットワークトラブル
  >> 結局Linux bridge側で帯域制御など設定、アプライアンス意味ない
・mail gateway機能(お客がSPAM認定されにくくする為)
  >> 全体としてはうまくいったが不評もある
  >> 運用が大変


自由度を妨げる構成はVPS KVMではやめよう
Firewallが必要なら、Linux bridge(ebtables)とかで分散管理すればいい
じゃないか




                                                                                   13
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




お名前.com VPS KVM ネットワーク

Flat DHCP + VLAN bridge構成
    (FirewallとかはLinux bridgeで実現しよう)
インターネット側
  <=> GMOバックボーンNet(コアルータある)
    <=> L3 SW(dhcp relay設定)
      <=> 集線L2 SW
        <=> Rack L2 SW
          <=> Linux bonding(act.-stan.)
            <=> Linux VLAN
              <=> Linux bridge
                <=> VM VIF(tap - virtio NIC)

                                                                                  14
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




お名前.com VPS KVM ネットワーク
    Internet




               GMO core backbone




                                   L3 SW                                L3 SW
                                    L3 SW                                L2 SW

                 L3 SWにて、dhcp relayでネットワーク
                   の異なるdhcpに接続するように設定


                                                                             eth0           eth1
     console                            nova Compute
      dhcp
                                                                                    bond0

                                                              bridge.VLAN1
                                                                                     libvirt network filter
     console
      ldap
                                                              bridge.VLAN2
                                                                                     ebtalbes
                                                              bridge.VLAN3
                                                                                     tc htb (iproute)
    LDAPでユーザのVMのMAC                                                                  collectd
      ADDRESSとIPの管理

                                                       eth0
                                                       VM


                                                eth0           eth0                                eth0
                                                VM              VM                                 VM




                                                                                                             15
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎OpenStack griddynamics.net Diablo CentOS6版

 CentOS 6.xで動くようにpython系の部分をpython 2.6でback port
 libvirtの部分はCentOSのパッケージをリプレース
 http://yum.griddynamics.net/yum/diablo-centos/


 その結果=>
   ・パッケージングされているんだけどね、動かないよこれ(当時)
   ・当初は src.rpm が無いので、githubからソースと.specを落とす必
   要があった
   ・頻繁に更新されているので、とくにstableとかは無いらしいかった
   ・突然パッケージ構成が変わったりとか
   ・CentOS 6.3とかではOSのlibvirtのほうが新しいことに
   ・今回の「スナップショット処理」のリリースで新しい方に


 diablo-centosリポジトリは現在ありません
 (まぁ、今後はEPEL(6)版 OpenStackに移行していくんだろうなぁ)

                                                                                    16
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎OpenStack griddynamics.net Diablo CentOS6版

 機能強化ポイント
 ・shut off機能
   VPS VM != Cloud VM
   なので Terminateで削除されない、ACPI shutdownを試みるよう
 ・noVNCを最新版に
   最新のブラウザ追随、nginx websocket proxyにより処理サーバの設
   定とhttps対応、冗長(active-active)設定
 ・運用で使いやすいVNIC命名 (>>ここ重要<< 運用は重要です)
 ・anytermとnova-consoleによるシリアルコンソール再実装
 ・collectdによるリソースグラフ取得
 ・VirtIO ON/OFF
   APIでvirtIO on/offをdefine


   などなど ... そして直近のリリースでは、いくつか機能追加


                                                                                  17
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




機能強化) dashboard : vnc(noVNC)

最初なんか動かない
  >> noVNC周りをEssexのソースからバックポート(python周り)
  >> noVNC自体は最新の開発系からバックポート (javascript周り)
本来 noVNC は単体でも使えます
  (html5 Canvas + WebSocketによるvnc(rfb)実装)
  OpenStackにはauth系のコードが追加されています
  http://www.moongift.jp/2011/02/20110219-2/
  https://github.com/kanaka/noVNC
  http://novnc.com/


python-nova-*.rpm パッケージ
/usr/lib/python2.6/site-packages/nova/vnc/
以下...
みなさんは Essex以降 を使いましょう
(EssexではnoVNCとxvpの実装があるようだ)
                                                                                            18
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎コンパネから見たOpenStack: html5 vnc (1)
OpenStack dashboardのvnc実装を参考にnoVNCをコンパネに搭載
  >> Topページに実装することは使いやすさを考えて
  >>「クリックして開始」のajax実装でコンパネからのAPIコールを減らすw




                                                                                19
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




html5 vnc (2)
右クリックしてソースを見ればわかりますが、noVNC
websocket、Canvas対応
web browser必須
(IE8以下は
Chrome Frame)




                                                                                   20
会員/課金 DB
                     OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot
                                                                                  API / Manage
                                                                                   API/nova Manag
     html5 vnc (3)
                                                                   管理系
                                                                                                       g


           sftp      console              console                 console
            sftp      console              dhcp                    vnc

k




                      mq                         API / Manage                    mq
                       ldap                       mysql                           mq
                                                                  db
                                               nova DB
e                                              keystone DB
ge
e
                                                                                        21
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




html5 vnc (3): 構成とか
nginxによるwebsocketのreverse proxy + dnsラウンドロビン


nginx websocket reverse proxy patch
(nginx 1.3で取り込まれなかった)
https://github.com/yaoweibin/nginx_tcp_proxy_module


これにより、
・本来のPort 6080で待ち受けるvncproxyのPort 80/443対応
・将来的な負荷分散構成
にしている

[n-gohko@vnc1001 ~]$ ps axu | grep nova | grep -v grep
root 15509 0.4 2.0 451048 81164 ?           S Jul11 152:13 /usr/bin/python /usr/bin/nova-vncproxy --flagfile=/etc/nova/
nova.conf --logfile=/var/log/nova/nova-vncproxy.log --pidfile=/var/run/nova/nova-vncproxy.pid


[n-gohko@vnc1001 ~]$ ps axu | grep nginx | grep -v grep
root   1303 0.0 0.0 93188 1492 ?       Ss Jun26 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 1304 0.1 0.0 94100 3472 ?         S Jun26 54:44 nginx: worker process



                                                                                                               22
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




html5 vnc (3): 構成とか
nginx websocket reverse proxyこんな感じ
tcp {
  proxy_read_timeout 6000;
  proxy_send_timeout 6000;
  upstream websockets {
   server 172.20.113.31:6080;

        #check interval=3000 rise=2 fall=5 timeout=1000;
        check_http_send "GET / HTTP/1.0rnrn";
    }

    server {
     #listen 6081;
     server_name _;
     listen 443;

        access_log /var/log/nginx/access.ssl.log;
        ssl             on;
        ssl_certificate     /etc/nginx/ssl/ast.myvps.jp/ast.myvps.jp.pem;
        ssl_certificate_key /etc/nginx/ssl/ast.myvps.jp/ast.myvps.jp.key;
        ssl_protocols        SSLv3 TLSv1;
        ssl_ciphers         HIGH:!ADH:!MD5;

        tcp_nodelay on;
        proxy_pass websockets;
    }
}



                                                                                                                  23
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




html5 serial console: anyterm + conserver
nova-console(ajax-term)の部分をanytermに置換
(OpenStack Diabloにあったajax-termは動かなかった)
http://anyterm.org/
anyterm単体では、webで接続した後に任意のコマンドを実行させる機能が
あるので、そのあたりを利用 (anyterm --> consoleコマンド実行)


(OpenStack Essexでは
ajax-term機能は削除されています)


動かないので、別実装することに


Point
・pop-upした時のURL
・ [Enter `^Ec? for help]
・iu1-000007ff

                                                                                       24
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




html5 serial console: anyterm
 こんなかんじで token を渡して接続開始
 https://console1001.myvps.jp/anyterm/proxy/11048/
 anyterm.html?token=bb268280-8e4e-41c1-894f-
 ac325079530f&title=iu1-000007ff


 nova-consoleをhttpd apacheの
 reverse proxy配下で動かしています
 (Port 80/443対応、負荷分散対応)

[root@console1001 ~]# ps -aef | grep httpd | grep -v grep
root   1523 1 0 Jul09 ?         00:00:38 /usr/sbin/httpd
apache 3385 1523 0 Jul29 ?          00:00:04 /usr/sbin/httpd
apache 3386 1523 0 Jul29 ?          00:00:04 /usr/sbin/httpd
apache 3387 1523 0 Jul29 ?          00:00:04 /usr/sbin/httpd
apache 23084 1523 0 Jul31 ?          00:00:03 /usr/sbin/httpd
apache 26971 1523 0 Aug01 ?           00:00:02 /usr/sbin/httpd

[root@console1001 ~]# netstat -antp | grep python
tcp    0   0 172.20.113.36:33841         172.20.113.54:3306       ESTABLISHED 2712/python
tcp    0   0 172.20.113.36:44081         172.20.113.32:5672       ESTABLISHED 2712/python
tcp    0   0 172.20.113.36:44084         172.20.113.32:5672       ESTABLISHED 2712/python


                                                                                                             25
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




ssh serial console: ldap ssh + conserver
ssh serial consoleとして利用


ssh loginのshellとして、consoleに接続するコマンドを実行
  sshでのvmコントロールメニューとかも実装できる


anytermとssh serial consoleに
 [Enter `^Ec? for help]
と表示されるのはその名残


具体的には、conserverに
  virsh console <vm instance>
を叩かせています




                                                                                      26
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能1) vmvgaドライバ対応
・libvirtにdefineするkvmのインスタンス設定でVideoドライバを選択でき
るようにする機能


OpenStack標準では cirrus
vmvgaドライバはvmwareで使われるドライバ。


残念なお知らせ)
 debian 6.0.6のkernelでは動作に不具合がある場合が...


やっていることは以下の部分のVMインスタンス設定を書き換えて
virsh define <vm>.xml すること
 	
 	
 	
 	
 	
 <video>
 -	
 	
 	
 	
 	
 	
 <model	
 type='cirrus'	
 vram='9216'	
 heads='1'/>
 +	
 	
 	
 	
 	
 	
 <model	
 type='vmvga'	
 vram='9216'	
 heads='1'/>
 +	
 	
 	
 	
 	
 	
 <alias	
 name='video0'/>
 	
 	
 	
 	
 	
 	
 	
 <address	
 type='pci'	
 domain='0x0000'	
 bus='0x00'	
 slot='0x02'	
 function='0x0'/>
 	
 	
 	
 	
 	
 </video>


                                                                                                         27
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能2) us keymapドライバ対応
 ・libvirtにdefineするkvmのインスタンス設定でVNCのkeymapを選択で
 きるようにする機能


 標準では ja にしている(jisキーボード対応)


 US配列のキーボードでも扱えるように

標準環境
	
 	
 	
 <graphics	
 type='vnc'	
 port='-1'	
 autoport='yes'	
 listen='0.0.0.0'	
 keymap='ja'>

en-us	
 keymap環境
	
 	
 	
 <graphics	
 type='vnc'	
 port='-1'	
 autoport='yes'	
 listen='0.0.0.0'	
 keymap='en-us'>




                                                                                                     28
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能3) snapshot機能
・vm disk imageのスナップショット機能
  *1) スナップショット作成
  *2) revert disk(applie)でスナップショット移動
  *3) convertによる単一diskイメージ化とコンパクト(圧縮)化


これにより、1契約のVPSで全く異なる環境を切り替えて使うことが可能!!



                                          たとえば、以下のようなOOSSま
                                          るごとの切り替えが可能です
                                          ・UUbbuunnttuu  ddeesskkttoopp
                                          ・BBlluueeOOnnyyxx  55110088RR
                                          ・SSmmaarrttOOSS

                                          しっぱいしても戻せる!!!!




                                                                                  29
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能3) snapshot機能 ; snapshot create
*1) スナップショット作成


うらで何をしているかといえば、
  # qemu-img snapshot -c <snapshot_id> disk.img


という普通のことをしています



                       OOppeennSSttaacckkのスナップショットは今回使い
                       ませんでした。

                       細かい操作を実装したかったので

                       同様の理由で、vviirrsshh  ssnnaappsshhoottも使ってい
                       ません




                                                                                      30
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能3) snapshot機能 ; snapshot create




            取得したスナップショットは  “◯�”
            現在書き込んでいる領域は  “●”

            現在位置から他の場所に移動するときには、
            一旦スナップショットを取ってから  “◯�”をクリック


                                                                                31
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能3) snapshot機能 ; snapshot revert disk
*2) スナップショットへのロールバック


うらで何をしているかといえば、
  # qemu-img snapshot -a <snapshot_id> disk.img


という動作


simple !




                                                                                      32
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能3) snapshot機能 ; snapshot revert disk




         取得済みスナップショットは  “◯�”をクリック

         すると、ロールバックのボタンが現れるので、ボタン
         を押すとそのスナップに移動します。
         また、わかりやすいラベルの編集もできます。


                                                                                33
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能3) snapshot機能 ; convert
*3) スナップショットから単一disk imageへのコンバート


うらで何をしているかといえば、
  # qemu-img convert -f qcow2 -O qcow2 ¥
     disk.img(old) disk.img(new)


という動作
余計なdiskのスナップショットを消して、ユーザ領域確保!!
  ★要注意★ >> 現在稼働している領域以外は、スナップが全て消えます<<


            現在選択している  “●”のところが選択されます。

            ほかの領域からコンバートしたい場合には、ロールバ
            ックを選択して、スナップを移動してから実行してく
            ださい


                                                                                     34
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能3) snapshot機能 ; convert




  上のようなダイアログが出ます。

  コンバートには容量によってものすごく時間がかかるのも注意事項。

  ほんとにスナップショットが消えるので、
  要注意です。要注意です。要注意です。
     大事なことなので、33回言いました

                                                                                35
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; DEMO




             DDEEMMOO




                                                                                  36
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     DDEEMMOOの内容をスライドで再現します

     ・まず、DDEEMMOO環境ですが、すでにSSmmaarrttOOSS((OOppeennSSoollaarriiss系  
     OOSS))が稼働している状態です。スナップショットをとるには、今回
     の機能ではsshhuuttddoowwnnする必要があるので、電源を落とします

                                                                                   37
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・VVPPSSの電源が落ちた状態で、スナップショットを取得します
     ・現在のVVPPSS“●”にはスナップショット後の現在位置です
     ・スナップショット位置を移動して、もう一度スナップショット
     を取ると、上の図のように分岐していきます
     ・UUbbuunnttuu  DDeesskkttoopp,,  BBlluueeOOnnyyxx,,  SSmmaarrttOOSSで分岐しています

                                                                                      38
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・上記のように、スナップショットを取ると  “◯�”が一つ増えま
     す。  “22001122//1111//1122  1122::3388::4444”  が増えてます




                                                                                 39
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・このまま取得したスナップショットをクリックすると、ラベル
     をわかりやすいように変更できます。図の例では、
     “SSmmaarrttOOSS  22001122”
       とわかるように文字を入�れています

                                                                             40
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・UUbbuunnttuu  DDeesskkttooppにスナップショットを移動します。「ロール
     バック」というボタンを押すと、UUbbuunnttuu  DDeesskkttooppに移動しま
     す。
     ・SSmmaarrttOOSSではvviirrttIIOO  OOFFFFでしたが、UUbbuunnttuu  DDeesskkttooppに移動
     したことでvviirrttIIOO  OONNになります。
                                                                                     41
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・UUbbuunnttuuのggrruubb22が起動しました。




                                                                                  42
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・UUbbuunnttuu  DDeesskkttooppのllooggiinn画面です。インストール時にddhhccppで
     やっているので、上記のような画面になります。



                                                                                   43
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・UUbbuunnttuu  DDeesskkttooppにllooggiinnして、FFiirreeffooxxで  “美�雲あんず”を検
     索した画面です。次に、インストール済みのBBlluueeOOnnyyxxに切り替え
     ます
                                                                                    44
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・スナップショットを切り替えるため、一旦UUbbuunnttuu  DDeesskkttooppの
     電源を落とします。
     ・すると、vvnnccは切れますが、起動のステータスはすぐに切り替わ
     らないので、少しだけ待ちます。

                                                                                45
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・“22001122//1111//1100  1111::4400::5511”のスナップショットは
     BBlluueeOOnnyyxxのインストールしたものであることが分岐でわかるの
     で、ここに移動します。
     ・vviirrttIIOO  OONNからvviirrttIIOO  OOFFFFに移動により切り替わります

                                                                                 46
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・BBlluueeOOnnyyxx  55110088RR  CCeennttOOSS  66..33  2200112200990033をいれてありま
     す。CCeennttOOSS  66..33ベースなので、vvnnccコンソールはそのような表
     示になります
     ・wweebbのBBlluueeOOnnyyxxの管理画面もアクセスできました

                                                                                     47
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・BBlluueeOOnnyyxx  55110088RR  CCeennttOOSS  66..33  2200112200990033をいれてありま
     す。CCeennttOOSS  66..33ベースなので、vvnnccコンソールはそのような表
     示になります
     ・wweebbのBBlluueeOOnnyyxxの管理画面もアクセスできました

                                                                                     48
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎新機能; スナップショット機能 DEMO




     ・このように、スナップショットによってOOSSの切り替えや状態を
     保存して、変更前のものに変更したりなど様々使えます。
     ・今回のスナップショットはlliivvee((稼動状態ではない))ではないです
     が、LLiinnuuxx  KKVVMMの動作とリクエストを見ながら今後改�良します

                                                                               49
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎まとめと今後の展開とか(1)
・とりあえず、200 > compute nodeのDiablo環境を運用中


・VPSとして運用するにはnova-clientをいじって独自APIを追加する覚悟
・VNCは画面操作の要, シリアルコンソールも必要


・独自APIが転じて、新機能追加
  ★1) VNC keymap en-us 対応
  ★2) VNC vmvgaドライバ対応
  ★3) スナップショット処理の実装




                                                                                   50
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




◎まとめと今後の展開とか(2)
・snapshotはあとは外部ストレージにバックアップできるといいなぁ


・追加IPの要望(冗長、Floting IP)、IPv6などは今後の課題
  >> さきほども、ブースで要望うけました
  >> 追加NIC無しで、IP Aliasとして使える方向で検討開始
  >> IPv6はネットワーク整備中


・webデザイナーさん達でも、すぐにwebデプロイ、config修正できる環境
とかも要望をい頂いています
  >> injectionでの設定投入
  >> cloud-init対応など




                                                                                  51
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




イベントで配るパンフレットに60日間無料のお試し申し込
み(1GB memoryプラン)がついています


また、GMOアプリクラウド マスコットの
 「美雲あんず」K-OF 2012 ロゴ入りステッカー
もたくさんありますので、記念にもらってください


質問、要望など有りましたら、ブースまでよろしく




                                                                             52
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




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




Special Thanks!
  GMO Internet Inc., System Div., SI Team and Cloud Team,
  Hostingh Team

                                                                                      53
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




おまけ




                                                                         54
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




TGS 2012 の様子




                                            「美雲あんず」仕様 Honda Fit

                                                                                  55
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot




 TGS 2012 「美雲あんず」痛車




                                                    「美雲あんず」声優 内田真礼 さん
                                                    先に声優さんを決めてから、Pixiveで
                                                    キャラクターを募集




GMOアプリクラウドチームはこの痛車で、
ゲームを作っている会社さんに営業に行く事も
ありますw




                                                                                   56

More Related Content

2012 OpenStack + KVM = onamae.com VPS #2 ~ vnc and snapshot ~

  • 1. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot OpenStack + KVM = お名前.com VPS ∼開発担当者が語る、ここだけの裏話#2∼ 新機能 vnc強化とsnapshotについて GMOインターネット株式会社 システム本部 サービス開発部 システムインテグレーションチーム 郷古 直仁 K-OF 2012, Osaka: 2012/11/10 http://www.slideshare.net/chroum/2012-osc-kyoto-openstack-vps-kvm 1
  • 2. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot アジェンダ • ◎まずは自己紹介 • ◎お名前.com VPSとは ‒ グルーブのほかのサービス紹介、製品の位置付けなど • ◎VPSのシステム構成概要 – 全体概略、管理系サーバ、コンパネ系、ネットワーク • ◎CentOS 6.x + griddynamics.net版 OpenStack Diablo – どのようにしてOpenStackをVPSとして使っているか概略 • ◎新機能:1) コンパネのhtml5 VNC 追加機能 (vmvga ドライバ対応) • ◎新機能:2) コンパネのhtml5 VNC 追加機能 (us keymap) • ◎新機能:3) snapshot機能 • ◎まとめ、今後の展開とか 2
  • 3. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot まずは自己紹介 • 郷古 直仁 (ゴウコ ナオト, Naoto Gohko) – @naoto_gohko , • 所属: GMOインターネット株式会社 • 部署: システム本部 サービス開発部 システムインテグレーションチーム • なにをしているのか: GMOグループ内のSI-er的な感じ • 関わっているもの: – Bekkoame INTERNET, 3WEB, 社内webとmail, その他 • お名前.com web系システムなど – お名前.com VPS VZ(Virtuozzo) ; インフラとか – GMOアプリクラウド; インフラとか – お名前.com VPS KVM ; インフラとか – 美雲あんず ; ちょっとした知り合いw 3
  • 4. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot GMOインターネットの仮想化サービス (1) お名前.com VPS VZ (2) GMOアプリクラウド Virtuozzo(OpenVZベース)、 OS仮想化レベル、swap無し、リソースは EL6, Best Effort KVM運用 自由度、リソースきっちり ノウハウ等 お名前.com VPS KVM Linux KVMでの仮想化 一般ユーザに使っていただけるもの KVM、ソーシャルアプリ、ソーシャ ユーザのリソースはきっちり分かれているVPS ルwebの運用など、アプライアンス 自由にインストールできる仮想環境の提供 のLB(Brocade ADX)がある。イ メージテンプレート展開、専用サーバ VDI, リモートDesktop環境として影響 のハイブリッド運用、Fusion-IO専 (3) お名前.com Desktop クラウド 用サーバ、その他カスタマイズ構成可 Hyper-V3, Thin ClientでWindows8開発など Hyper-V VM, Windows専用提供 GMOインターネットグループの仮想化サービス GMOクラウド VPS GMOクラウド Public (Xen, KVM) SQALE (payperboy&co) KVM、月額課金、Plesk 従量制、API開発機能あり PaaS従量制、API開発機能あり 4
  • 5. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot GMOアプリクラウド http://cloud.gmo.jp/ ・ソーシャルプラットフォーマーなどに向けたアプライアンスLBがある仮想/ 専用サーバ ハイブリッドクラウド ・Fusion IO ioDriveも専用サーバに選択可能 ・東京Unit, US-Unitが選択可能 (大阪Unitのリクエスト募集中) マスコット 「美雲あんず」 TGS 2012で大人気 5
  • 6. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot GMOアプリクラウド 当初Xen (CentOS 5.3 dom0 + Xen 3.2)で開発 Scientific Linux / CentOS 6.0 リリース後 KVM仮想化対応 ==> VPS-KVMの開発につながった その後、OpenStack Diabloリリース後に   「お名前.com VPS KVM」へ 開発/運用チームも同じチームが担当 技術と両方の製品の向上へ 6
  • 7. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot SQALE (<グループ>Payperboy&co, PaaS) Rubyでプログラムをすぐgithubからdeployしてweb を構築できるサービス ・Ruby on Rails、Sinatra対応 ・PaaSならでは ==> web, dbなどすぐ deployして使い始める ことができる 7
  • 8. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot お名前.com VPS VZ (Virtuozzo) VPS VZ(Virtuozzo := OpenVZ) コンパネから共用サーバの用にメールアドレスやVirtualHostの設定ができる がユーザの環境は独立 OS仮想環境 (OSのアプリケーション環境のみ仮想化) ただし制限がある ・Linux以外は使えない (FreeBSDとかReactOSとかはダメ) ・Swapとか使えない ・disk領域を自由に使えない ・プロセス単位のリソース制限により、HostがOOMkillerをかける ・コンソール機能がない VPS KVMではそのへんの欲求不満を解消 OpenStackにもコンテナ(OpenVZ, LXC)使える日かきそうだな 8
  • 9. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot お名前.com VPS VZ (Virtuozzo) OS仮想化(コンテナ技術)が生きる場所 ・ホスト側のファイルシステムの一部をchroot したファイルツリー ==> ホスト側からOS内のアプリへのconfigが可能 ==> VPS VZのコンパネの動作 Linux KVMでも徐々にlibguestfsによりできるようになりつつある OS仮想化(コンテナ技術)で難しいこと ・ユーザごとの異なるファイルシステム ・ホストと異なるkernelのOSの稼働 ・Host OSにGuest OSの稼働種類が ・/dev 以下へのアクセス (VPNやネットワークの高度利用に必要) 9
  • 10. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎お名前.com VPS KVM こんな機能があったらなぁ (エンジニア、利用者としてほしいことを検討、開 発側としてこんなのnative KVMなら使えるのに) ・ISO uploadでの自由なOSインストール、Live CD boot ・http/https/sshのみで接続が可能 ・コピペ可能なシリアルコンソール ・virtIO ON/OFF ・GMOアプリクラウド実装されているイメージステージング機能(イメージテ ンプレート)ほしいな ・VIFのセキュリティ(spoofing対策とか、IP固定利用とか) ・REST APIほしいな 幾つかはOpenStack Diabloが使えそうだ(当時) 使ってみよか(検証1ヶ月) 10
  • 11. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎お名前.com VPS KVM だいたいのシステム構成 コンパネ系web (.Net + IIS) Windows Server 商材DB (mysql) 課金とか 管理系サーバ (Linux KVMインスタンス) websocket-VNCクラスタ(noVNC) ssh/consoleサーバ sftpサーバ rabbitmqサーバ dhcpサーバ ldapサーバ(dhcp, ssh) nova/keystone DB(mysql)サーバ nova Manage/APIサーバ ISO upload storage (GlusterFS, NFS) Linux KVM (nova Compute) CentOS 6.x nova Compute, collectd, kvm 11
  • 12. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot お名前.com VPS KVM ネットワーク Internet コンパネ系 L3 SW L3 SW API / Manage コンパネweb (.Net) サービス系 API / Manage mysql db API 会員/課金 DB API / Manage API/nova Manage nova Compute nova Compute nova Compute nova Compute 管理系 nova Compute nova Compute glance nova Compute nova Compute nova Compute nova Compute sftp console console console sftp console dhcp vnc RAID 10 local disk RAID 10 local disk mq API / Manage mq ldap mysql mq db nova DB Storage keystone DB Storage ISO storage (NFS) 12
  • 13. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot お名前.com VPS KVM ネットワーク お名前.com VPS VZ(Virtuozzo)のネットワーク構成の反省 ・お客のIN/OUTにアプライアンスFirewallを置いた >> Portを制限していたが、結局80 port, 22 portなどで攻撃される (phpとか...) >> お客の利用状況で配下ネットワークトラブル >> 結局Linux bridge側で帯域制御など設定、アプライアンス意味ない ・mail gateway機能(お客がSPAM認定されにくくする為) >> 全体としてはうまくいったが不評もある >> 運用が大変 自由度を妨げる構成はVPS KVMではやめよう Firewallが必要なら、Linux bridge(ebtables)とかで分散管理すればいい じゃないか 13
  • 14. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot お名前.com VPS KVM ネットワーク Flat DHCP + VLAN bridge構成 (FirewallとかはLinux bridgeで実現しよう) インターネット側 <=> GMOバックボーンNet(コアルータある) <=> L3 SW(dhcp relay設定) <=> 集線L2 SW <=> Rack L2 SW <=> Linux bonding(act.-stan.) <=> Linux VLAN <=> Linux bridge <=> VM VIF(tap - virtio NIC) 14
  • 15. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot お名前.com VPS KVM ネットワーク Internet GMO core backbone L3 SW L3 SW L3 SW L2 SW L3 SWにて、dhcp relayでネットワーク の異なるdhcpに接続するように設定 eth0 eth1 console nova Compute dhcp bond0 bridge.VLAN1 libvirt network filter console ldap bridge.VLAN2 ebtalbes bridge.VLAN3 tc htb (iproute) LDAPでユーザのVMのMAC collectd ADDRESSとIPの管理 eth0 VM eth0 eth0 eth0 VM VM VM 15
  • 16. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎OpenStack griddynamics.net Diablo CentOS6版 CentOS 6.xで動くようにpython系の部分をpython 2.6でback port libvirtの部分はCentOSのパッケージをリプレース http://yum.griddynamics.net/yum/diablo-centos/ その結果=> ・パッケージングされているんだけどね、動かないよこれ(当時) ・当初は src.rpm が無いので、githubからソースと.specを落とす必 要があった ・頻繁に更新されているので、とくにstableとかは無いらしいかった ・突然パッケージ構成が変わったりとか ・CentOS 6.3とかではOSのlibvirtのほうが新しいことに ・今回の「スナップショット処理」のリリースで新しい方に diablo-centosリポジトリは現在ありません (まぁ、今後はEPEL(6)版 OpenStackに移行していくんだろうなぁ) 16
  • 17. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎OpenStack griddynamics.net Diablo CentOS6版 機能強化ポイント ・shut off機能 VPS VM != Cloud VM なので Terminateで削除されない、ACPI shutdownを試みるよう ・noVNCを最新版に 最新のブラウザ追随、nginx websocket proxyにより処理サーバの設 定とhttps対応、冗長(active-active)設定 ・運用で使いやすいVNIC命名 (>>ここ重要<< 運用は重要です) ・anytermとnova-consoleによるシリアルコンソール再実装 ・collectdによるリソースグラフ取得 ・VirtIO ON/OFF APIでvirtIO on/offをdefine などなど ... そして直近のリリースでは、いくつか機能追加 17
  • 18. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot 機能強化) dashboard : vnc(noVNC) 最初なんか動かない >> noVNC周りをEssexのソースからバックポート(python周り) >> noVNC自体は最新の開発系からバックポート (javascript周り) 本来 noVNC は単体でも使えます (html5 Canvas + WebSocketによるvnc(rfb)実装) OpenStackにはauth系のコードが追加されています http://www.moongift.jp/2011/02/20110219-2/ https://github.com/kanaka/noVNC http://novnc.com/ python-nova-*.rpm パッケージ /usr/lib/python2.6/site-packages/nova/vnc/ 以下... みなさんは Essex以降 を使いましょう (EssexではnoVNCとxvpの実装があるようだ) 18
  • 19. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎コンパネから見たOpenStack: html5 vnc (1) OpenStack dashboardのvnc実装を参考にnoVNCをコンパネに搭載 >> Topページに実装することは使いやすさを考えて >>「クリックして開始」のajax実装でコンパネからのAPIコールを減らすw 19
  • 20. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot html5 vnc (2) 右クリックしてソースを見ればわかりますが、noVNC websocket、Canvas対応 web browser必須 (IE8以下は Chrome Frame) 20
  • 21. 会員/課金 DB OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot API / Manage API/nova Manag html5 vnc (3) 管理系 g sftp console console console sftp console dhcp vnc k mq API / Manage mq ldap mysql mq db nova DB e keystone DB ge e 21
  • 22. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot html5 vnc (3): 構成とか nginxによるwebsocketのreverse proxy + dnsラウンドロビン nginx websocket reverse proxy patch (nginx 1.3で取り込まれなかった) https://github.com/yaoweibin/nginx_tcp_proxy_module これにより、 ・本来のPort 6080で待ち受けるvncproxyのPort 80/443対応 ・将来的な負荷分散構成 にしている [n-gohko@vnc1001 ~]$ ps axu | grep nova | grep -v grep root 15509 0.4 2.0 451048 81164 ? S Jul11 152:13 /usr/bin/python /usr/bin/nova-vncproxy --flagfile=/etc/nova/ nova.conf --logfile=/var/log/nova/nova-vncproxy.log --pidfile=/var/run/nova/nova-vncproxy.pid [n-gohko@vnc1001 ~]$ ps axu | grep nginx | grep -v grep root 1303 0.0 0.0 93188 1492 ? Ss Jun26 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 1304 0.1 0.0 94100 3472 ? S Jun26 54:44 nginx: worker process 22
  • 23. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot html5 vnc (3): 構成とか nginx websocket reverse proxyこんな感じ tcp { proxy_read_timeout 6000; proxy_send_timeout 6000; upstream websockets { server 172.20.113.31:6080; #check interval=3000 rise=2 fall=5 timeout=1000; check_http_send "GET / HTTP/1.0rnrn"; } server { #listen 6081; server_name _; listen 443; access_log /var/log/nginx/access.ssl.log; ssl on; ssl_certificate /etc/nginx/ssl/ast.myvps.jp/ast.myvps.jp.pem; ssl_certificate_key /etc/nginx/ssl/ast.myvps.jp/ast.myvps.jp.key; ssl_protocols SSLv3 TLSv1; ssl_ciphers HIGH:!ADH:!MD5; tcp_nodelay on; proxy_pass websockets; } } 23
  • 24. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot html5 serial console: anyterm + conserver nova-console(ajax-term)の部分をanytermに置換 (OpenStack Diabloにあったajax-termは動かなかった) http://anyterm.org/ anyterm単体では、webで接続した後に任意のコマンドを実行させる機能が あるので、そのあたりを利用 (anyterm --> consoleコマンド実行) (OpenStack Essexでは ajax-term機能は削除されています) 動かないので、別実装することに Point ・pop-upした時のURL ・ [Enter `^Ec? for help] ・iu1-000007ff 24
  • 25. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot html5 serial console: anyterm こんなかんじで token を渡して接続開始 https://console1001.myvps.jp/anyterm/proxy/11048/ anyterm.html?token=bb268280-8e4e-41c1-894f- ac325079530f&title=iu1-000007ff nova-consoleをhttpd apacheの reverse proxy配下で動かしています (Port 80/443対応、負荷分散対応) [root@console1001 ~]# ps -aef | grep httpd | grep -v grep root 1523 1 0 Jul09 ? 00:00:38 /usr/sbin/httpd apache 3385 1523 0 Jul29 ? 00:00:04 /usr/sbin/httpd apache 3386 1523 0 Jul29 ? 00:00:04 /usr/sbin/httpd apache 3387 1523 0 Jul29 ? 00:00:04 /usr/sbin/httpd apache 23084 1523 0 Jul31 ? 00:00:03 /usr/sbin/httpd apache 26971 1523 0 Aug01 ? 00:00:02 /usr/sbin/httpd [root@console1001 ~]# netstat -antp | grep python tcp 0 0 172.20.113.36:33841 172.20.113.54:3306 ESTABLISHED 2712/python tcp 0 0 172.20.113.36:44081 172.20.113.32:5672 ESTABLISHED 2712/python tcp 0 0 172.20.113.36:44084 172.20.113.32:5672 ESTABLISHED 2712/python 25
  • 26. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ssh serial console: ldap ssh + conserver ssh serial consoleとして利用 ssh loginのshellとして、consoleに接続するコマンドを実行 sshでのvmコントロールメニューとかも実装できる anytermとssh serial consoleに [Enter `^Ec? for help] と表示されるのはその名残 具体的には、conserverに virsh console <vm instance> を叩かせています 26
  • 27. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能1) vmvgaドライバ対応 ・libvirtにdefineするkvmのインスタンス設定でVideoドライバを選択でき るようにする機能 OpenStack標準では cirrus vmvgaドライバはvmwareで使われるドライバ。 残念なお知らせ) debian 6.0.6のkernelでは動作に不具合がある場合が... やっていることは以下の部分のVMインスタンス設定を書き換えて virsh define <vm>.xml すること <video> - <model type='cirrus' vram='9216' heads='1'/> + <model type='vmvga' vram='9216' heads='1'/> + <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> 27
  • 28. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能2) us keymapドライバ対応 ・libvirtにdefineするkvmのインスタンス設定でVNCのkeymapを選択で きるようにする機能 標準では ja にしている(jisキーボード対応) US配列のキーボードでも扱えるように 標準環境 <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='ja'> en-us keymap環境 <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='en-us'> 28
  • 29. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能3) snapshot機能 ・vm disk imageのスナップショット機能 *1) スナップショット作成 *2) revert disk(applie)でスナップショット移動 *3) convertによる単一diskイメージ化とコンパクト(圧縮)化 これにより、1契約のVPSで全く異なる環境を切り替えて使うことが可能!! たとえば、以下のようなOOSSま るごとの切り替えが可能です ・UUbbuunnttuu ddeesskkttoopp ・BBlluueeOOnnyyxx 55110088RR ・SSmmaarrttOOSS しっぱいしても戻せる!!!! 29
  • 30. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能3) snapshot機能 ; snapshot create *1) スナップショット作成 うらで何をしているかといえば、 # qemu-img snapshot -c <snapshot_id> disk.img という普通のことをしています OOppeennSSttaacckkのスナップショットは今回使い ませんでした。 細かい操作を実装したかったので 同様の理由で、vviirrsshh ssnnaappsshhoottも使ってい ません 30
  • 31. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能3) snapshot機能 ; snapshot create 取得したスナップショットは “◯�” 現在書き込んでいる領域は “●” 現在位置から他の場所に移動するときには、 一旦スナップショットを取ってから “◯�”をクリック 31
  • 32. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能3) snapshot機能 ; snapshot revert disk *2) スナップショットへのロールバック うらで何をしているかといえば、 # qemu-img snapshot -a <snapshot_id> disk.img という動作 simple ! 32
  • 33. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能3) snapshot機能 ; snapshot revert disk 取得済みスナップショットは “◯�”をクリック すると、ロールバックのボタンが現れるので、ボタン を押すとそのスナップに移動します。 また、わかりやすいラベルの編集もできます。 33
  • 34. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能3) snapshot機能 ; convert *3) スナップショットから単一disk imageへのコンバート うらで何をしているかといえば、 # qemu-img convert -f qcow2 -O qcow2 ¥ disk.img(old) disk.img(new) という動作 余計なdiskのスナップショットを消して、ユーザ領域確保!! ★要注意★ >> 現在稼働している領域以外は、スナップが全て消えます<< 現在選択している “●”のところが選択されます。 ほかの領域からコンバートしたい場合には、ロールバ ックを選択して、スナップを移動してから実行してく ださい 34
  • 35. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能3) snapshot機能 ; convert 上のようなダイアログが出ます。 コンバートには容量によってものすごく時間がかかるのも注意事項。 ほんとにスナップショットが消えるので、 要注意です。要注意です。要注意です。 大事なことなので、33回言いました 35
  • 36. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; DEMO DDEEMMOO 36
  • 37. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO DDEEMMOOの内容をスライドで再現します ・まず、DDEEMMOO環境ですが、すでにSSmmaarrttOOSS((OOppeennSSoollaarriiss系 OOSS))が稼働している状態です。スナップショットをとるには、今回 の機能ではsshhuuttddoowwnnする必要があるので、電源を落とします 37
  • 38. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・VVPPSSの電源が落ちた状態で、スナップショットを取得します ・現在のVVPPSS“●”にはスナップショット後の現在位置です ・スナップショット位置を移動して、もう一度スナップショット を取ると、上の図のように分岐していきます ・UUbbuunnttuu DDeesskkttoopp,, BBlluueeOOnnyyxx,, SSmmaarrttOOSSで分岐しています 38
  • 39. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・上記のように、スナップショットを取ると “◯�”が一つ増えま す。 “22001122//1111//1122 1122::3388::4444” が増えてます 39
  • 40. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・このまま取得したスナップショットをクリックすると、ラベル をわかりやすいように変更できます。図の例では、 “SSmmaarrttOOSS 22001122” とわかるように文字を入�れています 40
  • 41. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・UUbbuunnttuu DDeesskkttooppにスナップショットを移動します。「ロール バック」というボタンを押すと、UUbbuunnttuu DDeesskkttooppに移動しま す。 ・SSmmaarrttOOSSではvviirrttIIOO OOFFFFでしたが、UUbbuunnttuu DDeesskkttooppに移動 したことでvviirrttIIOO OONNになります。 41
  • 42. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・UUbbuunnttuuのggrruubb22が起動しました。 42
  • 43. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・UUbbuunnttuu DDeesskkttooppのllooggiinn画面です。インストール時にddhhccppで やっているので、上記のような画面になります。 43
  • 44. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・UUbbuunnttuu DDeesskkttooppにllooggiinnして、FFiirreeffooxxで “美�雲あんず”を検 索した画面です。次に、インストール済みのBBlluueeOOnnyyxxに切り替え ます 44
  • 45. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・スナップショットを切り替えるため、一旦UUbbuunnttuu DDeesskkttooppの 電源を落とします。 ・すると、vvnnccは切れますが、起動のステータスはすぐに切り替わ らないので、少しだけ待ちます。 45
  • 46. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・“22001122//1111//1100 1111::4400::5511”のスナップショットは BBlluueeOOnnyyxxのインストールしたものであることが分岐でわかるの で、ここに移動します。 ・vviirrttIIOO OONNからvviirrttIIOO OOFFFFに移動により切り替わります 46
  • 47. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・BBlluueeOOnnyyxx 55110088RR CCeennttOOSS 66..33 2200112200990033をいれてありま す。CCeennttOOSS 66..33ベースなので、vvnnccコンソールはそのような表 示になります ・wweebbのBBlluueeOOnnyyxxの管理画面もアクセスできました 47
  • 48. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・BBlluueeOOnnyyxx 55110088RR CCeennttOOSS 66..33 2200112200990033をいれてありま す。CCeennttOOSS 66..33ベースなので、vvnnccコンソールはそのような表 示になります ・wweebbのBBlluueeOOnnyyxxの管理画面もアクセスできました 48
  • 49. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎新機能; スナップショット機能 DEMO ・このように、スナップショットによってOOSSの切り替えや状態を 保存して、変更前のものに変更したりなど様々使えます。 ・今回のスナップショットはlliivvee((稼動状態ではない))ではないです が、LLiinnuuxx KKVVMMの動作とリクエストを見ながら今後改�良します 49
  • 50. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎まとめと今後の展開とか(1) ・とりあえず、200 > compute nodeのDiablo環境を運用中 ・VPSとして運用するにはnova-clientをいじって独自APIを追加する覚悟 ・VNCは画面操作の要, シリアルコンソールも必要 ・独自APIが転じて、新機能追加 ★1) VNC keymap en-us 対応 ★2) VNC vmvgaドライバ対応 ★3) スナップショット処理の実装 50
  • 51. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ◎まとめと今後の展開とか(2) ・snapshotはあとは外部ストレージにバックアップできるといいなぁ ・追加IPの要望(冗長、Floting IP)、IPv6などは今後の課題 >> さきほども、ブースで要望うけました >> 追加NIC無しで、IP Aliasとして使える方向で検討開始 >> IPv6はネットワーク整備中 ・webデザイナーさん達でも、すぐにwebデプロイ、config修正できる環境 とかも要望をい頂いています >> injectionでの設定投入 >> cloud-init対応など 51
  • 52. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot イベントで配るパンフレットに60日間無料のお試し申し込 み(1GB memoryプラン)がついています また、GMOアプリクラウド マスコットの  「美雲あんず」K-OF 2012 ロゴ入りステッカー もたくさんありますので、記念にもらってください 質問、要望など有りましたら、ブースまでよろしく 52
  • 53. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot ご清聴ありがとうございました Special Thanks! GMO Internet Inc., System Div., SI Team and Cloud Team, Hostingh Team 53
  • 54. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot おまけ 54
  • 55. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot TGS 2012 の様子 「美雲あんず」仕様 Honda Fit 55
  • 56. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話#2〜~  vnc強化,  snapshot TGS 2012 「美雲あんず」痛車 「美雲あんず」声優 内田真礼 さん 先に声優さんを決めてから、Pixiveで キャラクターを募集 GMOアプリクラウドチームはこの痛車で、 ゲームを作っている会社さんに営業に行く事も ありますw 56