SlideShare a Scribd company logo
1 of 47
Download to read offline
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  OpenStack + KVM = お名前.com VPS
  ∼開発担当者が語る、ここだけの裏話∼



             OSC 2012 Kyoto: 2012/08/03
      OpenStack User MTG#07: 2012/08/28
         OSC 2012 Tokyo/Fall: 2012/09/08


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




                                                                                     1
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




   アジェンダ
   •   ◎お名前.com VPSとは
       ‒ グルーブのほかのサービスと違い、製品の位置づけ的なもの
   •   ◎VPSのシステム構成
       – 全体概略、管理系サーバ、コンパネ系、ネットワーク
   •   ◎CentOS 6.x + griddynamics.net版 OpenStack Diablo
       – なんでこれ選んだの、VPSとして問題点、修正点
   •   ◎コンパネから見たOpenStack
   •   ◎その他OSSを使っている部分、構築とか監視
   •   ◎トラブルと運用というDevOps
       – GlusterFS 3.3beta、noVNC、disk resize、FreeBSD
         virtio
   •   ◎まとめ、今後の展開とか


                                                                                2
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




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


  GMOインターネットグループの仮想化サービス
     GMOクラウド VPS                             GMOクラウド Public (Xen, KVM)
     KVM、月額課金、Pleskなど用意                       使った分だけ従量制、APIが最近公開されました


                                                                                      3
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ◎お名前.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ヶ月)

                                                                        4
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ◎お名前.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



                                                                                            5
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  お名前.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)



                                                                                                                                                        6
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  お名前.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)とかで分散管理すればいい
   じゃないか




                                                                            7
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  お名前.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)

                                                                           8
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  お名前.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




                                                                                                                      9
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




 ◎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に移行していくんだろうなぁ)


                                                                           10
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  OpenStack griddynamics.net Diablo CentOS6版

   別に公開しているけど、あなたのために公開しているん
   じゃないんだからねw


   的な感じで、VPSチーム API開発者から
   「ちゃんと動く環境をくれよ(# ゚Д゚)」
   と言われまくるインフラ側エンジニア


      => でもこれを選択してしまった当時の我々
      (CentOS 6.xを選択したからね)




                                                                       11
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  OpenStack griddynamics.net Diablo CentOS6版

   検証開始) まず、griddynamics版を動かすことから


   dashboardって使えそうだよね


   まずはシングルノード構成で動かしてみる
   > なんとか動いた


   glanceにVMを追加して、VMインスタンスを作成、起動




                                                                       12
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  クラウドOSとVPSの思想の違いに...

   検証) VM停止「Terminate」 : あれ...


   なんか強制停止(virsh destroy 相当)、削除...
    >> ACPIを使ったゆとりshutdownじゃないw


   ソースをあさり始める一同w


   python-nova-*.rpm パッケージ
   /usr/lib/python2.6/site-packages/nova/compute/
   /usr/lib/python2.6/site-packages/nova/virt/
   以下とか...

                                                                              13
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  shutoff(1)
  libvirtまわりの使い方 (nova/virt/driver.pyは泣けるw)
     ・停止ってクラウドだと課金に関係したりするからすぐ止まれってなってい
     るのかな(destroy call) (Essexでも同じだが、reboot(SOFT)ある)
     ・いわゆる「Terminate:停止」は「電源OFF + 削除」でした
     ・でもこれだとVPSでは使えないので、vmのACPIを使った正常
     shutdownを試みるcall shutoff を追加
   diff -uNr ../usr/lib/python2.6/site-packages/nova/virt/libvirt/connection.py ./virt/libvirt/connection.py
   --- ../usr/lib/python2.6/site-packages/nova/virt/libvirt/connection.py 2012-07-31 12:01:28.890335240 +0900
   +++ ./virt/libvirt/connection.py      2012-07-31 10:15:55.186268025 +0900
   @@ -1901,3 +1953,63 @@
       def set_host_enabled(self, host, enabled):
           """Sets the specified host's ability to accept new instances."""
           pass
   +
   +
   + def shutoff(self, instance, network_info, flag):          # GMO
   +        instance_name = instance['name']
   +
   +        try:
   +           virt_dom = self._lookup_by_name(instance_name)
   +        except exception.NotFound:
   +           virt_dom = None


                                                                                                                14
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  shutoff(2)
   +
   +   # If the instance is already terminated, we're still happy
   +   # Otherwise, destroy it
   +   if virt_dom is not None:
   +       try:
   +          virt_dom.shutdown()
   +       except libvirt.libvirtError as e:
   +          is_okay = False
   +          errcode = e.get_error_code()
   +          if errcode == libvirt.VIR_ERR_OPERATION_INVALID:
   +              # If the instance if already shut off, we get this:
   +              # Code=55 Error=Requested operation is not valid:
   +              # domain is not running
   +              (state, _max_mem, _mem, _cpus, _t) = virt_dom.info()
   +              if state == power_state.SHUTOFF:
   +                  is_okay = True
   +
   +        if not is_okay:
   +            LOG.warning(_("Error from libvirt during shutdown of "
   +                     "%(instance_name)s. Code=%(errcode)s "
   +                     "Error=%(e)s") %
   +                   locals())
   +            raise
   +
   +




                                                                                                           15
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  shutoff(3)
   +     """Called at an interval until the VM is gone."""
   +     timeout_count = range(FLAGS.shutoff_retry_count)
   +     while timeout_count:                # Y.Kawada
   +        try:
   +            state = self.get_info(instance_name)['state']
   +        except exception.NotFound:
   +            msg = _("During shutoff, %s disappeared.") % instance_name
   +            LOG.info(msg)
   +            break
   +        if state == power_state.SHUTOFF:
   +            msg = _("Instance %s shutoff successfully. stat:%s") % (instance_name, state)
   +            LOG.info(msg)
   +            break
   +
   +       timeout_count.pop()
   +       utils.my_logger('waiting... shutoff pw_state: %s' % state)
   +       if len(timeout_count) == 0:
   +           utils.my_logger("Error shutoff: %s time over, try to destroy." % instance_name)
   +
   +          """ try to destroy."""
   +          msg = _("try destroy. :%s") % (instance_name)
   +          LOG.info(msg)
   +          self.destroy(instance, network_info, cleanup=False)
   +          break
   +       time.sleep(1)
   +
   +   return True



                                                                                                          16
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  検証) 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の実装があるようだ)
                                                                                         17
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  noVNC

   あとのコンパネのところで...




                                                                   18
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  クラウドOSとVPSの思想の違いに...

   というように、一つ一つAPI単位で検証とか動作確認を行なっていった


   と、同時にDiablo(当時), Essex(現在)からどんどん分岐(泣)


   追加とか変更とか、例えば
     ・computeホスト毎のvmインスタンスlimit
       なんか、Diablo標準ではテナントごとにしかlimitが無い
          標準だけだと、host上には無茶なくらい作られるよ(limitはある)
       vcpu, memoryで上限設定 (Essexではいろいろ実装されている)
     ・try: except:
       処理のロギングとか地道な回避ロジックとか入れたほうがいいんじゃな
       かろうかね
     ・VIF(VMのattachするインターフェース)の名称を変更
       VMインスタンス名とそのVIF名がわかりやすいほうが都合が良い
          インスタンスIDでどのvm インスタンスか判別できるように

                                                                          19
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  try:
  except:
   修正とか)
        ログとらないと、API使ったコンパネ開発しづらいので色々やってい
        るうちにちゃんと except で catch しようねっと
             diff -uNr ../usr/lib/python2.6/site-packages/nova/vnc/auth.py ./vnc/auth.py
             --- ../usr/lib/python2.6/site-packages/nova/vnc/auth.py 2012-07-31 12:01:28.900514682 +0900
             +++ ./vnc/auth.py        2012-07-31 10:15:55.190267491 +0900
             @@ -52,7 +52,12 @@

                  if not token:
                      referrer = req.environ.get('HTTP_REFERER')
             -        auth_params = urlparse.parse_qs(urlparse.urlparse(referrer).query)
             +         try:
             +           auth_params = urlparse.parse_qs(urlparse.urlparse(referrer).query)
             +         except:
             +           LOG.audit(_("Unauthorized Access: (%s)"), req.environ)
             +           return webob.exc.HTTPForbidden(detail='Unauthorized')
             +
                    if 'token' in auth_params:
                         token = auth_params['token'][0]




                                                                                                             20
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  VIF名称変更

  VPSは運用性が命
  例) vmインスタンスが下記の命名則
  ( iu1 + - + インスタンスID)
         iu1-000001c8


  ・インスタンスID(16進数)に頭にvnをつける
  ・eth0, eth1 ... と増えた時の為 >> suffix -0 , -1 ...
        vn000001c8-0 (tap) >> eth0 (VM内)


  コンパネのための帯域計測(collectd)、
  トラブルシュートをやりやすくする為、
  あとは帯域制限(tc)とかebtablesとかわかりやすい



                                                                           21
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  VIF名称変更
   修正とか)
             diff -uNr ../usr/lib/python2.6/site-packages/nova/virt/libvirt/vif.py ./virt/libvirt/vif.py
             --- ../usr/lib/python2.6/site-packages/nova/virt/libvirt/vif.py 2012-07-31 12:01:28.890335240 +0900
             +++ ./virt/libvirt/vif.py    2012-07-31 10:15:55.186268025 +0900
             @@ -38,7 +38,7 @@
             class LibvirtBridgeDriver(VIFDriver):
                 """VIF driver for Linux bridge."""

             - def _get_configurations(self, network, mapping):
             + def _get_configurations(self, network, mapping, instance):
                 """Get a dictionary of VIF configurations for bridge type."""
                 # Assume that the gateway also acts as the dhcp server.
                 gateway6 = mapping.get('gateway6')
             @@ -59,6 +59,7 @@
                    extra_params = "n"

                 result = {
             +       'name': instance['name'].split('-')[1], # Y.Kawada
                   'id': mac_id,
                   'bridge_name': network['bridge'],
                   'mac_address': mapping['mac'],
             @@ -90,7 +91,7 @@
                                      network['bridge'],
                                      network['bridge_interface'])

             -     return self._get_configurations(network, mapping)
             +      return self._get_configurations(network, mapping, instance)

                 def unplug(self, instance, network, mapping):
                   """No manual unplugging required."""

                                                                                                              22
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ◎コンパネから見たOpenStack: 電源ボタン
   起動, 再起動, シャットダウン, 電源OFF ボタン
     >> 先ほどの shutoff callの追加を反映
     >> 再起動は
        shutoff > start の順番にAPI call
        (libvirtにある reboot はkvmでは未実装らしいので)




                                                                          23
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~

       Internet

      お名前.com VPS : APIの経路
                                                                                                              コンパネ系




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

                                                                                                        API / Manage
                                                                                                         API/nova Manage

a Compute
ova Compute                                                                                   管理系
 nova Compute                                                                                                        glance
   nova Compute
     nova Compute

                                                  sftp       console        console           console
                                                   sftp       console        dhcp              vnc

                    RAID 10 local disk




                                                              mq                 API / Manage           mq
                                                               ldap               mysql                  mq
                                                                                              db
                                                                                nova DB                         24
  12年9月4日火曜日                  Storage                                           keystone DB
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




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




                                                                        25
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




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




                                                                      26
12年9月4日火曜日
会員/課金 DB
                                    OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~
                                                                                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
                                                                                      27
    12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  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



                                                                                                                 28
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  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;
      }
  }



                                                                                                                   29
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  リソースグラフ: collectd
  collectd-virtというパッケ
  ージがEPEL6にある
  collectd-virt
  collectd-rrdtool
  の組み合わせ(rrdでデータ保
  存)
     libvirt環境のリソースデ
     ータ取得機能
  nova-computeで稼働。そ
  のままvmのリソースデータ
  をrrdで取得してくれるの
  で、便利


  あとは、コンパネでrrdをグ
  ラフにするだけです

                                                                          30
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  リソースグラフ: collectd
  以下のようにパッケージ入っています
  (rrdとかmysqlとか、csvとかへのデータ取得が便利なので、
  いろいろ使えます)

    [root@cnode-a1001 novaclient]# rpm -qa | grep collectd
    collectd-4.10.3-1.el6.x86_64
    collectd-web-4.10.3-1.el6.x86_64
    collectd-rrdtool-4.10.3-1.el6.x86_64
    collectd-virt-4.10.3-1.el6.x86_64




                                                                                        31
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  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

                                                                               32
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  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


                                                                                                             33
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  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>
  を叩かせています




                                                                               34
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ISO upload: ldap ssh(sftp) chroot + NFS
  ldap sshのconsoleの副産物としてsftp uploadを使えることに
     (openssh 5.4p1にpatchあて)


  NFS storage上にユーザをchrootしています
  (NFS chrootはパッチがいる)
    >> proftpdにもmod_sftp機能があるのでそれに移行検討中


  一週間で削除するのは、quotaの実装の問題




                                                                         35
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ISO upload: ldap ssh(sftp) chroot + NFS
  当初NFS serverをGlusterFSで構築していました


  スケールするはずだった (〃 ̄∇ ̄)ノ彡☆ウキャキャキャッ


  ただ、使っていたバージョンが
     GlusterFS 3.3beta (だいぶリリース前)
  brickトラブル多発、見えたり見えなかったり...


  GlusterFS quota機能
    フォルダにquotaをかけられる一見便利な機能だった
    >> quota checkにGlusterFS全体をlockする動作があることがわかる
    quotaを捨てて、一週間でISOを削除する方向にリリース後転換


    さらに上記の「見えたり見えなかったり」問い合わせでGlusterFSも...
  ここはリベンジします(GlusterFS 3.3 正式版は基本、安定しています)

                                                                           36
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ◎その他OSSを使っている部分、構築、運用、監視
  監視: OS側 Nagios 3.3.1 (EPEL6版)
      Hardware側 IBM Director + HP SIM (Freeだけどnot OSS)
      HPのサーバ監視は使っているサーバがg7世代だとOSにagent必要
      (これがトラブルのもとだったりもする)
      HPはgen8に期待∩゚∀゚∩age


  構築: cobbler (kickstart network install) (EPEL6版)


  cobblerに各hostを登録することで、dhcp, dns, Nagiosの設定の生成
  cobblerのtriggerで実行
  (残念ながらIBM Director, HP SIMへの登録は手動)




                                                                               37
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  cobbler triggerでnagios設定
       [n-gohko@v2cob1001 libvirt]$ find /var/lib/cobbler/triggers/
       /var/lib/cobbler/triggers/
       /var/lib/cobbler/triggers/sync
       /var/lib/cobbler/triggers/sync/post
       /var/lib/cobbler/triggers/sync/post/201-post-chmod-644-tftpboot-kick.sh
       /var/lib/cobbler/triggers/sync/post/nagios-add-hosts.sh
       /var/lib/cobbler/triggers/sync/post/301-post-chmod-644-tftpboot-kick.sh
       /var/lib/cobbler/triggers/sync/pre
       /var/lib/cobbler/triggers/delete
       /var/lib/cobbler/triggers/delete/file
       /var/lib/cobbler/triggers/delete/file/post
       /var/lib/cobbler/triggers/delete/file/pre
       /var/lib/cobbler/triggers/delete/distro
       /var/lib/cobbler/triggers/delete/distro/post
       /var/lib/cobbler/triggers/delete/distro/pre
       /var/lib/cobbler/triggers/delete/mgmtclass
       /var/lib/cobbler/triggers/delete/mgmtclass/post
       /var/lib/cobbler/triggers/delete/mgmtclass/pre
       /var/lib/cobbler/triggers/delete/package
       /var/lib/cobbler/triggers/delete/package/post
       /var/lib/cobbler/triggers/delete/package/pre
       /var/lib/cobbler/triggers/delete/system
       /var/lib/cobbler/triggers/delete/system/post
       /var/lib/cobbler/triggers/delete/system/pre
       /var/lib/cobbler/triggers/delete/profile
       以下略 ...

                                                                                                  38
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ◎トラブルと運用というDevOps: 1) GlusterFS 3.3beta
  下記のgluser.orgのドキュメントをみて歓喜した日々よ、さようなら
    >> ストレージをサービスするにはいつか乗り越えるまで取り下げる
    >> 正確に容量を取得するために全体にロックかけるのはわからないでもない
    けど、ちょっと困った実装(泣)




                                                                     39
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  トラブルと運用というDevOps: 2) virt resize
  disk imageのリサイズ機能のリリース
     ・20GB + 拡張diskという当初の仕様は
        >> GlanceのOSイメージ(標準CentOS 6.2)の扱いを楽にするため
        >> GMOアプリクラウドのステージング機能から由来
     ・ 意外と不評 (泣)
        >> アプリクラウドがLVMでくっつけるのが標準だったので考えが甘かっ
        た


  diskのサイズ変更(10%単位)ができるように
     ・拡張はimageにresizeをかける、fsckかければOSも何とか
     ・縮小側はOS側でちょっと困ったことに
       >> 縮小側imageは新規作成する仕様に




                                                                         40
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  トラブルと運用というDevOps: 3) vnc
  Google chrome dev 20.xでコンパネを開いてみた
  あれ、noVNC動かない((((;゚Д゚))))ガクガクブルブル


  noVNCを更に新しいものに追従してupdate
  chrome 20.xがリリースされるまでになんとか修正


  ブラウザの進化とともに、noVNC(html5)周りは常に注意が必要




                                                                           41
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~



 DEMO: DNSを使ったname base冗長構成
 DNSにsub domain とそのNSレコードを作る

                                                                 Internet                   sub domain NSでは、それ
 MacBook-Air:$ dig ns d.myvps.jp                                                            ぞれwwwを名乗らせる
 ;d.myvps.jp.        IN NS

                                                                       MacBook-Air:$ dig www.d.myvps.jp @d-ns01.myvps.jp
 ;; ANSWER SECTION:                                                    ;; QUESTION SECTION:
 d.myvps.jp.    5   IN    NS d-ns01.myvps.jp.                          ;www.d.myvps.jp.            IN A
 d.myvps.jp.    5   IN    NS d-ns02.myvps.jp.
                                                                       ;; ANSWER SECTION:
                                                                       www.d.myvps.jp.         5   IN    A   157.7.129.212
 ;; ADDITIONAL SECTION:
 d-ns01.myvps.jp. 86400   IN   A   157.7.129.212                       MacBook-Air:$ dig www.d.myvps.jp @d-ns02.myvps.jp
 d-ns02.myvps.jp. 86400   IN   A   157.7.129.213                       ;; QUESTION SECTION:
                                                                       ;www.d.myvps.jp.            IN A

    DNS                                                                ;; ANSWER SECTION:
                                                                       www.d.myvps.jp.         5   IN    A   157.7.129.213




                   DNS +                     DNS +                          web server                  web server
                   L7(reverse proxy)         L7(reverse proxy)
                   d-ns01.                   d-ns02.                        w01.                        w02.
                   157.7.129.212             157.7.129.213                  157.7.129.214               157.7.129.215

 reverse proxyでw01, w02
 を追加




                                                                                                             42
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




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


  ・OpenStack DiabloにかぎらずVPSへの適用にはちょっと手を入れる必要
  がありそう
  ・OpenStack Hypervisor Driverまわりは実はまだまだやるべきことが
  たくさん残っているね(Essex以降でも)


  ・VPSなので、ネットワークはsimpleで構築しました
  (なので、セキュリティは各自、お願いm(。_。;))m ペコペコ… )


  ・追加IPの要望(冗長、Floting IP)、IPv6などは今後の課題
    >> さきほども、ブースで要望うけました
    >> vipとして追加IPを割り振るのか、追加NICとして割り振るのか




                                                                         43
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ◎まとめと今後の展開とか(2)
     http://b.hatena.ne.jp/articles/201206/9110




                                                                                         44
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ◎まとめと今後の展開とか(2)
  はてな さんの要望もごもっとも。検討中




   vncの機能周りはとくに




                                                                     45
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




  ◎まとめと今後の展開とか(3)
  ・qemu-img convert周りの機能とかと、ストレージのリベンジで新しい機
  能とか


  ・CentOS 6.3, Essexに移行するのか? 2nd Unit
  (OpenStackがversion upした時に、Hosting業者はどうすべきか)


  ・最近はCentOS 6.x + EPEL Essexを使い始めました(検証とか別案件)
    ・APIをモジュールとして追加できれば ==> VPS Stack 的な使い方
    ・インスタンス追加アルゴリズムもモジュール(ドライバ)だと良い
      (LBのラウンドロビン、リーストコネクトなどと同様ユーザが選択)
    ・どんなコミニュティへの提案・貢献したらいいんだろう




                                                                         46
12年9月4日火曜日
OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~




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




  Special Thanks!
    GMO Internet Inc., System Div., SI Team and Cloud Team
    途中まで準備していただいた Yamada san

                                                                               47
12年9月4日火曜日

More Related Content

What's hot

メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3日本Javaユーザーグループ
 
OSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGOSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGHideki Saito
 
WowzaMediaServer for EC2 導入編
WowzaMediaServer for EC2 導入編WowzaMediaServer for EC2 導入編
WowzaMediaServer for EC2 導入編BeMarble
 
JAWS Summit Satoshi Yokota
JAWS Summit Satoshi YokotaJAWS Summit Satoshi Yokota
JAWS Summit Satoshi Yokotasatoshi
 
TechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VTechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VKuninobu SaSaki
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)axsh co., LTD.
 
1st OCDET Baremetal MTG OpenStack baremetal compute by GMO AppsCloud
1st OCDET Baremetal MTG OpenStack baremetal compute by GMO AppsCloud1st OCDET Baremetal MTG OpenStack baremetal compute by GMO AppsCloud
1st OCDET Baremetal MTG OpenStack baremetal compute by GMO AppsCloudNaoto Gohko
 

What's hot (8)

メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
 
OSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGOSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUG
 
WowzaMediaServer for EC2 導入編
WowzaMediaServer for EC2 導入編WowzaMediaServer for EC2 導入編
WowzaMediaServer for EC2 導入編
 
JAWS Summit Satoshi Yokota
JAWS Summit Satoshi YokotaJAWS Summit Satoshi Yokota
JAWS Summit Satoshi Yokota
 
TechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VTechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-V
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
 
XenServer Overview
XenServer OverviewXenServer Overview
XenServer Overview
 
1st OCDET Baremetal MTG OpenStack baremetal compute by GMO AppsCloud
1st OCDET Baremetal MTG OpenStack baremetal compute by GMO AppsCloud1st OCDET Baremetal MTG OpenStack baremetal compute by GMO AppsCloud
1st OCDET Baremetal MTG OpenStack baremetal compute by GMO AppsCloud
 

Viewers also liked

Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web ServiceShinji Tanaka
 
Puppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPADPuppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPADGosuke Miyashita
 
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例Shibuya.trac 2009新年会 - とある会社でのTrac利用事例
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例Kanu orz
 
第二回Bitvisor読書会 前半 Intel-VT について
第二回Bitvisor読書会 前半 Intel-VT について第二回Bitvisor読書会 前半 Intel-VT について
第二回Bitvisor読書会 前半 Intel-VT についてTsuyoshi OZAWA
 
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメYukitaka Ohmura
 

Viewers also liked (7)

Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
 
Monit
MonitMonit
Monit
 
Puppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPADPuppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPAD
 
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例Shibuya.trac 2009新年会 - とある会社でのTrac利用事例
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例
 
第二回Bitvisor読書会 前半 Intel-VT について
第二回Bitvisor読書会 前半 Intel-VT について第二回Bitvisor読書会 前半 Intel-VT について
第二回Bitvisor読書会 前半 Intel-VT について
 
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
 
SSH力をつけよう
SSH力をつけようSSH力をつけよう
SSH力をつけよう
 

Similar to 2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm

20120309 cloud mix-public クラウドごった煮
20120309 cloud mix-public クラウドごった煮 20120309 cloud mix-public クラウドごった煮
20120309 cloud mix-public クラウドごった煮 Kentaro Ebisawa
 
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用Abe Junichiro
 
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...Naoto Gohko
 
JOSUG 9th Study
JOSUG 9th StudyJOSUG 9th Study
JOSUG 9th Studyirix_jp
 
Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会axsh co., LTD.
 
Mashup Award 7 Caravan in Fukuoka
Mashup Award 7 Caravan in FukuokaMashup Award 7 Caravan in Fukuoka
Mashup Award 7 Caravan in FukuokaKazumi Hirose
 
OSC2011 Tokyo/Fall JOSUG
OSC2011 Tokyo/Fall JOSUGOSC2011 Tokyo/Fall JOSUG
OSC2011 Tokyo/Fall JOSUGHideki Saito
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Kenta Suzuki
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティKuniyasu Suzaki
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築VOYAGE GROUP
 
Windows Azure AppFabric 第2章
Windows Azure AppFabric 第2章Windows Azure AppFabric 第2章
Windows Azure AppFabric 第2章Tatsuaki Sakai
 
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APIGoogle Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APImaruyama097
 
Google Compute EngineとPipe API
Google Compute EngineとPipe APIGoogle Compute EngineとPipe API
Google Compute EngineとPipe APImaruyama097
 
いよいよ SAP Business Suite 正式サポート! SAP on AWS
いよいよ SAP Business Suite 正式サポート!  SAP on AWSいよいよ SAP Business Suite 正式サポート!  SAP on AWS
いよいよ SAP Business Suite 正式サポート! SAP on AWSMasaru Hiroki
 
OSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; OverviewOSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; Overviewirix_jp
 

Similar to 2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm (20)

20120309 cloud mix-public クラウドごった煮
20120309 cloud mix-public クラウドごった煮 20120309 cloud mix-public クラウドごった煮
20120309 cloud mix-public クラウドごった煮
 
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
 
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
 
JOSUG 9th Study
JOSUG 9th StudyJOSUG 9th Study
JOSUG 9th Study
 
Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会
 
Mashup Award 7 Caravan in Fukuoka
Mashup Award 7 Caravan in FukuokaMashup Award 7 Caravan in Fukuoka
Mashup Award 7 Caravan in Fukuoka
 
Amazon Web Servicesブース:UI×API×AWS 横田 聡
Amazon Web Servicesブース:UI×API×AWS 横田 聡Amazon Web Servicesブース:UI×API×AWS 横田 聡
Amazon Web Servicesブース:UI×API×AWS 横田 聡
 
OSC2011 Tokyo/Fall JOSUG
OSC2011 Tokyo/Fall JOSUGOSC2011 Tokyo/Fall JOSUG
OSC2011 Tokyo/Fall JOSUG
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
 
20110406aws accenture
20110406aws accenture20110406aws accenture
20110406aws accenture
 
Reinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdfReinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdf
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
 
OpenStack概要
OpenStack概要OpenStack概要
OpenStack概要
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
 
Windows Azure AppFabric 第2章
Windows Azure AppFabric 第2章Windows Azure AppFabric 第2章
Windows Azure AppFabric 第2章
 
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APIGoogle Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
 
Google Compute EngineとPipe API
Google Compute EngineとPipe APIGoogle Compute EngineとPipe API
Google Compute EngineとPipe API
 
いよいよ SAP Business Suite 正式サポート! SAP on AWS
いよいよ SAP Business Suite 正式サポート!  SAP on AWSいよいよ SAP Business Suite 正式サポート!  SAP on AWS
いよいよ SAP Business Suite 正式サポート! SAP on AWS
 
SAP on AWS情報
SAP on AWS情報SAP on AWS情報
SAP on AWS情報
 
OSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; OverviewOSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; Overview
 

More from Naoto Gohko

ODC 2020 : "Rocky 8"
ODC 2020 : "Rocky 8"ODC 2020 : "Rocky 8"
ODC 2020 : "Rocky 8"Naoto Gohko
 
2019 0704 about ConoHa VM migration from C1 to C2
2019 0704 about ConoHa VM migration from C1 to C22019 0704 about ConoHa VM migration from C1 to C2
2019 0704 about ConoHa VM migration from C1 to C2Naoto Gohko
 
serverless openstack 101
serverless openstack 101serverless openstack 101
serverless openstack 101Naoto Gohko
 
2018 04-14-cockroachdb-20-now-available
2018 04-14-cockroachdb-20-now-available2018 04-14-cockroachdb-20-now-available
2018 04-14-cockroachdb-20-now-availableNaoto Gohko
 
2017 0715 osc17do conoha cloud osclient
2017 0715 osc17do conoha cloud osclient2017 0715 osc17do conoha cloud osclient
2017 0715 osc17do conoha cloud osclientNaoto Gohko
 
2017 0306 Apache OpenWhisk starting
2017 0306 Apache OpenWhisk starting2017 0306 Apache OpenWhisk starting
2017 0306 Apache OpenWhisk startingNaoto Gohko
 
Miracle Linux seminer Hatohol and ConoHa
Miracle Linux seminer Hatohol and ConoHaMiracle Linux seminer Hatohol and ConoHa
Miracle Linux seminer Hatohol and ConoHaNaoto Gohko
 
2016 1214-dev-night-vol1-in-tanita
2016 1214-dev-night-vol1-in-tanita2016 1214-dev-night-vol1-in-tanita
2016 1214-dev-night-vol1-in-tanitaNaoto Gohko
 
OSunC Chiba LT Ubuntu 14.04 to 16.04.1 upgrade with ConfigDrive cloud image
OSunC Chiba LT Ubuntu 14.04 to 16.04.1 upgrade with ConfigDrive cloud imageOSunC Chiba LT Ubuntu 14.04 to 16.04.1 upgrade with ConfigDrive cloud image
OSunC Chiba LT Ubuntu 14.04 to 16.04.1 upgrade with ConfigDrive cloud imageNaoto Gohko
 
Openstack days taiwan 2016 0712
Openstack days taiwan 2016 0712Openstack days taiwan 2016 0712
Openstack days taiwan 2016 0712Naoto Gohko
 
2016 0626 ubuntu 1604 LTS party LT
2016 0626 ubuntu 1604 LTS party LT2016 0626 ubuntu 1604 LTS party LT
2016 0626 ubuntu 1604 LTS party LTNaoto Gohko
 
OpenStack ComputingはHyper-Convergedの夢を見るのか?
OpenStack ComputingはHyper-Convergedの夢を見るのか?OpenStack ComputingはHyper-Convergedの夢を見るのか?
OpenStack ComputingはHyper-Convergedの夢を見るのか?Naoto Gohko
 
OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...
OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...
OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...Naoto Gohko
 
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI toolNaoto Gohko
 
Janog36 ConoHa: Making GSLB - OpenStack Designate and PowerDNS
Janog36 ConoHa: Making GSLB - OpenStack Designate and PowerDNSJanog36 ConoHa: Making GSLB - OpenStack Designate and PowerDNS
Janog36 ConoHa: Making GSLB - OpenStack Designate and PowerDNSNaoto Gohko
 
Openstack summit walk DNSaaS 2015-0713 Summit LT
Openstack summit walk DNSaaS 2015-0713 Summit LTOpenstack summit walk DNSaaS 2015-0713 Summit LT
Openstack summit walk DNSaaS 2015-0713 Summit LTNaoto Gohko
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet ServicesNaoto Gohko
 
Open stack swift is too Enterprise? 2014/12/01 advent cal
Open stack swift is too Enterprise?  2014/12/01 advent calOpen stack swift is too Enterprise?  2014/12/01 advent cal
Open stack swift is too Enterprise? 2014/12/01 advent calNaoto Gohko
 
TechOYAJI 2014 tokyo summer LT; CentOS7 and RDO Icehouse OpenStack
TechOYAJI 2014 tokyo summer LT;  CentOS7 and RDO Icehouse OpenStackTechOYAJI 2014 tokyo summer LT;  CentOS7 and RDO Icehouse OpenStack
TechOYAJI 2014 tokyo summer LT; CentOS7 and RDO Icehouse OpenStackNaoto Gohko
 
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API DragonJOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API DragonNaoto Gohko
 

More from Naoto Gohko (20)

ODC 2020 : "Rocky 8"
ODC 2020 : "Rocky 8"ODC 2020 : "Rocky 8"
ODC 2020 : "Rocky 8"
 
2019 0704 about ConoHa VM migration from C1 to C2
2019 0704 about ConoHa VM migration from C1 to C22019 0704 about ConoHa VM migration from C1 to C2
2019 0704 about ConoHa VM migration from C1 to C2
 
serverless openstack 101
serverless openstack 101serverless openstack 101
serverless openstack 101
 
2018 04-14-cockroachdb-20-now-available
2018 04-14-cockroachdb-20-now-available2018 04-14-cockroachdb-20-now-available
2018 04-14-cockroachdb-20-now-available
 
2017 0715 osc17do conoha cloud osclient
2017 0715 osc17do conoha cloud osclient2017 0715 osc17do conoha cloud osclient
2017 0715 osc17do conoha cloud osclient
 
2017 0306 Apache OpenWhisk starting
2017 0306 Apache OpenWhisk starting2017 0306 Apache OpenWhisk starting
2017 0306 Apache OpenWhisk starting
 
Miracle Linux seminer Hatohol and ConoHa
Miracle Linux seminer Hatohol and ConoHaMiracle Linux seminer Hatohol and ConoHa
Miracle Linux seminer Hatohol and ConoHa
 
2016 1214-dev-night-vol1-in-tanita
2016 1214-dev-night-vol1-in-tanita2016 1214-dev-night-vol1-in-tanita
2016 1214-dev-night-vol1-in-tanita
 
OSunC Chiba LT Ubuntu 14.04 to 16.04.1 upgrade with ConfigDrive cloud image
OSunC Chiba LT Ubuntu 14.04 to 16.04.1 upgrade with ConfigDrive cloud imageOSunC Chiba LT Ubuntu 14.04 to 16.04.1 upgrade with ConfigDrive cloud image
OSunC Chiba LT Ubuntu 14.04 to 16.04.1 upgrade with ConfigDrive cloud image
 
Openstack days taiwan 2016 0712
Openstack days taiwan 2016 0712Openstack days taiwan 2016 0712
Openstack days taiwan 2016 0712
 
2016 0626 ubuntu 1604 LTS party LT
2016 0626 ubuntu 1604 LTS party LT2016 0626 ubuntu 1604 LTS party LT
2016 0626 ubuntu 1604 LTS party LT
 
OpenStack ComputingはHyper-Convergedの夢を見るのか?
OpenStack ComputingはHyper-Convergedの夢を見るのか?OpenStack ComputingはHyper-Convergedの夢を見るのか?
OpenStack ComputingはHyper-Convergedの夢を見るのか?
 
OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...
OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...
OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...
 
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
 
Janog36 ConoHa: Making GSLB - OpenStack Designate and PowerDNS
Janog36 ConoHa: Making GSLB - OpenStack Designate and PowerDNSJanog36 ConoHa: Making GSLB - OpenStack Designate and PowerDNS
Janog36 ConoHa: Making GSLB - OpenStack Designate and PowerDNS
 
Openstack summit walk DNSaaS 2015-0713 Summit LT
Openstack summit walk DNSaaS 2015-0713 Summit LTOpenstack summit walk DNSaaS 2015-0713 Summit LT
Openstack summit walk DNSaaS 2015-0713 Summit LT
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
 
Open stack swift is too Enterprise? 2014/12/01 advent cal
Open stack swift is too Enterprise?  2014/12/01 advent calOpen stack swift is too Enterprise?  2014/12/01 advent cal
Open stack swift is too Enterprise? 2014/12/01 advent cal
 
TechOYAJI 2014 tokyo summer LT; CentOS7 and RDO Icehouse OpenStack
TechOYAJI 2014 tokyo summer LT;  CentOS7 and RDO Icehouse OpenStackTechOYAJI 2014 tokyo summer LT;  CentOS7 and RDO Icehouse OpenStack
TechOYAJI 2014 tokyo summer LT; CentOS7 and RDO Icehouse OpenStack
 
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API DragonJOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
 

Recently uploaded

キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版Takayuki Nakayama
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313ssuserf8ea02
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024Hideki Saito
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整えるonozaty
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析sugiuralab
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。iPride Co., Ltd.
 
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))yoshidakids7
 
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜Naomi Yamasaki
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りiPride Co., Ltd.
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~honeshabri
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG-Audio
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」IGDA Japan SIG-Audio
 

Recently uploaded (12)

キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整える
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
 
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))
 
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
 

2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm

  • 1. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ OpenStack + KVM = お名前.com VPS ∼開発担当者が語る、ここだけの裏話∼ OSC 2012 Kyoto: 2012/08/03 OpenStack User MTG#07: 2012/08/28 OSC 2012 Tokyo/Fall: 2012/09/08 http://www.slideshare.net/chroum/2012-osc-kyoto-openstack-vps-kvm 1 12年9月4日火曜日
  • 2. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ アジェンダ • ◎お名前.com VPSとは ‒ グルーブのほかのサービスと違い、製品の位置づけ的なもの • ◎VPSのシステム構成 – 全体概略、管理系サーバ、コンパネ系、ネットワーク • ◎CentOS 6.x + griddynamics.net版 OpenStack Diablo – なんでこれ選んだの、VPSとして問題点、修正点 • ◎コンパネから見たOpenStack • ◎その他OSSを使っている部分、構築とか監視 • ◎トラブルと運用というDevOps – GlusterFS 3.3beta、noVNC、disk resize、FreeBSD virtio • ◎まとめ、今後の展開とか 2 12年9月4日火曜日
  • 3. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ GMOインターネットの仮想化サービス (1) お名前.com VPS VZ (2) GMOアプリクラウド Virtuozzo(OpenVZベース)、 OS仮想化レベル、swap無し、リソースは Best Effort EL6, 自由度、リソースきっちり KVM運用 ノウハウ等 お名前.com VPS KVM Linux KVMでの仮想化 一般ユーザに使っていただけるもの KVM、ソーシャルアプリ、ソーシャ ユーザのリソースはきっちり分かれているVPS ルwebの運用など、アプライアンス 自由にインストールできる仮想環境の提供 のLB(Brocade ADX)がある。イ メージテンプレート展開、専用サーバ (3) お名前.com Windows Desktop のハイブリッド運用、Fusion-IO専 Hyper-V, RDP 用サーバ、その他カスタマイズ構成可 GMOインターネットグループの仮想化サービス GMOクラウド VPS GMOクラウド Public (Xen, KVM) KVM、月額課金、Pleskなど用意 使った分だけ従量制、APIが最近公開されました 3 12年9月4日火曜日
  • 4. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎お名前.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ヶ月) 4 12年9月4日火曜日
  • 5. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎お名前.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 5 12年9月4日火曜日
  • 6. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ お名前.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) 6 12年9月4日火曜日
  • 7. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ お名前.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)とかで分散管理すればいい じゃないか 7 12年9月4日火曜日
  • 8. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ お名前.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) 8 12年9月4日火曜日
  • 9. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ お名前.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 9 12年9月4日火曜日
  • 10. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎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に移行していくんだろうなぁ) 10 12年9月4日火曜日
  • 11. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ OpenStack griddynamics.net Diablo CentOS6版 別に公開しているけど、あなたのために公開しているん じゃないんだからねw 的な感じで、VPSチーム API開発者から 「ちゃんと動く環境をくれよ(# ゚Д゚)」 と言われまくるインフラ側エンジニア => でもこれを選択してしまった当時の我々 (CentOS 6.xを選択したからね) 11 12年9月4日火曜日
  • 12. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ OpenStack griddynamics.net Diablo CentOS6版 検証開始) まず、griddynamics版を動かすことから dashboardって使えそうだよね まずはシングルノード構成で動かしてみる > なんとか動いた glanceにVMを追加して、VMインスタンスを作成、起動 12 12年9月4日火曜日
  • 13. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ クラウドOSとVPSの思想の違いに... 検証) VM停止「Terminate」 : あれ... なんか強制停止(virsh destroy 相当)、削除... >> ACPIを使ったゆとりshutdownじゃないw ソースをあさり始める一同w python-nova-*.rpm パッケージ /usr/lib/python2.6/site-packages/nova/compute/ /usr/lib/python2.6/site-packages/nova/virt/ 以下とか... 13 12年9月4日火曜日
  • 14. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ shutoff(1) libvirtまわりの使い方 (nova/virt/driver.pyは泣けるw) ・停止ってクラウドだと課金に関係したりするからすぐ止まれってなってい るのかな(destroy call) (Essexでも同じだが、reboot(SOFT)ある) ・いわゆる「Terminate:停止」は「電源OFF + 削除」でした ・でもこれだとVPSでは使えないので、vmのACPIを使った正常 shutdownを試みるcall shutoff を追加 diff -uNr ../usr/lib/python2.6/site-packages/nova/virt/libvirt/connection.py ./virt/libvirt/connection.py --- ../usr/lib/python2.6/site-packages/nova/virt/libvirt/connection.py 2012-07-31 12:01:28.890335240 +0900 +++ ./virt/libvirt/connection.py 2012-07-31 10:15:55.186268025 +0900 @@ -1901,3 +1953,63 @@ def set_host_enabled(self, host, enabled): """Sets the specified host's ability to accept new instances.""" pass + + + def shutoff(self, instance, network_info, flag): # GMO + instance_name = instance['name'] + + try: + virt_dom = self._lookup_by_name(instance_name) + except exception.NotFound: + virt_dom = None 14 12年9月4日火曜日
  • 15. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ shutoff(2) + + # If the instance is already terminated, we're still happy + # Otherwise, destroy it + if virt_dom is not None: + try: + virt_dom.shutdown() + except libvirt.libvirtError as e: + is_okay = False + errcode = e.get_error_code() + if errcode == libvirt.VIR_ERR_OPERATION_INVALID: + # If the instance if already shut off, we get this: + # Code=55 Error=Requested operation is not valid: + # domain is not running + (state, _max_mem, _mem, _cpus, _t) = virt_dom.info() + if state == power_state.SHUTOFF: + is_okay = True + + if not is_okay: + LOG.warning(_("Error from libvirt during shutdown of " + "%(instance_name)s. Code=%(errcode)s " + "Error=%(e)s") % + locals()) + raise + + 15 12年9月4日火曜日
  • 16. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ shutoff(3) + """Called at an interval until the VM is gone.""" + timeout_count = range(FLAGS.shutoff_retry_count) + while timeout_count: # Y.Kawada + try: + state = self.get_info(instance_name)['state'] + except exception.NotFound: + msg = _("During shutoff, %s disappeared.") % instance_name + LOG.info(msg) + break + if state == power_state.SHUTOFF: + msg = _("Instance %s shutoff successfully. stat:%s") % (instance_name, state) + LOG.info(msg) + break + + timeout_count.pop() + utils.my_logger('waiting... shutoff pw_state: %s' % state) + if len(timeout_count) == 0: + utils.my_logger("Error shutoff: %s time over, try to destroy." % instance_name) + + """ try to destroy.""" + msg = _("try destroy. :%s") % (instance_name) + LOG.info(msg) + self.destroy(instance, network_info, cleanup=False) + break + time.sleep(1) + + return True 16 12年9月4日火曜日
  • 17. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ 検証) 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の実装があるようだ) 17 12年9月4日火曜日
  • 18. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ noVNC あとのコンパネのところで... 18 12年9月4日火曜日
  • 19. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ クラウドOSとVPSの思想の違いに... というように、一つ一つAPI単位で検証とか動作確認を行なっていった と、同時にDiablo(当時), Essex(現在)からどんどん分岐(泣) 追加とか変更とか、例えば ・computeホスト毎のvmインスタンスlimit なんか、Diablo標準ではテナントごとにしかlimitが無い 標準だけだと、host上には無茶なくらい作られるよ(limitはある) vcpu, memoryで上限設定 (Essexではいろいろ実装されている) ・try: except: 処理のロギングとか地道な回避ロジックとか入れたほうがいいんじゃな かろうかね ・VIF(VMのattachするインターフェース)の名称を変更 VMインスタンス名とそのVIF名がわかりやすいほうが都合が良い インスタンスIDでどのvm インスタンスか判別できるように 19 12年9月4日火曜日
  • 20. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ try: except: 修正とか) ログとらないと、API使ったコンパネ開発しづらいので色々やってい るうちにちゃんと except で catch しようねっと diff -uNr ../usr/lib/python2.6/site-packages/nova/vnc/auth.py ./vnc/auth.py --- ../usr/lib/python2.6/site-packages/nova/vnc/auth.py 2012-07-31 12:01:28.900514682 +0900 +++ ./vnc/auth.py 2012-07-31 10:15:55.190267491 +0900 @@ -52,7 +52,12 @@ if not token: referrer = req.environ.get('HTTP_REFERER') - auth_params = urlparse.parse_qs(urlparse.urlparse(referrer).query) + try: + auth_params = urlparse.parse_qs(urlparse.urlparse(referrer).query) + except: + LOG.audit(_("Unauthorized Access: (%s)"), req.environ) + return webob.exc.HTTPForbidden(detail='Unauthorized') + if 'token' in auth_params: token = auth_params['token'][0] 20 12年9月4日火曜日
  • 21. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ VIF名称変更 VPSは運用性が命 例) vmインスタンスが下記の命名則 ( iu1 + - + インスタンスID) iu1-000001c8 ・インスタンスID(16進数)に頭にvnをつける ・eth0, eth1 ... と増えた時の為 >> suffix -0 , -1 ... vn000001c8-0 (tap) >> eth0 (VM内) コンパネのための帯域計測(collectd)、 トラブルシュートをやりやすくする為、 あとは帯域制限(tc)とかebtablesとかわかりやすい 21 12年9月4日火曜日
  • 22. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ VIF名称変更 修正とか) diff -uNr ../usr/lib/python2.6/site-packages/nova/virt/libvirt/vif.py ./virt/libvirt/vif.py --- ../usr/lib/python2.6/site-packages/nova/virt/libvirt/vif.py 2012-07-31 12:01:28.890335240 +0900 +++ ./virt/libvirt/vif.py 2012-07-31 10:15:55.186268025 +0900 @@ -38,7 +38,7 @@ class LibvirtBridgeDriver(VIFDriver): """VIF driver for Linux bridge.""" - def _get_configurations(self, network, mapping): + def _get_configurations(self, network, mapping, instance): """Get a dictionary of VIF configurations for bridge type.""" # Assume that the gateway also acts as the dhcp server. gateway6 = mapping.get('gateway6') @@ -59,6 +59,7 @@ extra_params = "n" result = { + 'name': instance['name'].split('-')[1], # Y.Kawada 'id': mac_id, 'bridge_name': network['bridge'], 'mac_address': mapping['mac'], @@ -90,7 +91,7 @@ network['bridge'], network['bridge_interface']) - return self._get_configurations(network, mapping) + return self._get_configurations(network, mapping, instance) def unplug(self, instance, network, mapping): """No manual unplugging required.""" 22 12年9月4日火曜日
  • 23. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎コンパネから見たOpenStack: 電源ボタン 起動, 再起動, シャットダウン, 電源OFF ボタン >> 先ほどの shutoff callの追加を反映 >> 再起動は shutoff > start の順番にAPI call (libvirtにある reboot はkvmでは未実装らしいので) 23 12年9月4日火曜日
  • 24. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ Internet お名前.com VPS : APIの経路 コンパネ系 L3 SW L3 SW API / Manage コンパネweb (.Net) API / Manage mysql db API 会員/課金 DB API / Manage API/nova Manage a Compute ova Compute 管理系 nova Compute glance nova Compute nova Compute sftp console console console sftp console dhcp vnc RAID 10 local disk mq API / Manage mq ldap mysql mq db nova DB 24 12年9月4日火曜日 Storage keystone DB
  • 25. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎コンパネから見たOpenStack: html5 vnc (1) OpenStack dashboardのvnc実装を参考にnoVNCをコンパネに搭載 >> Topページに実装することは使いやすさを考えて >>「クリックして開始」のajax実装でコンパネからのAPIコールを減らすw 25 12年9月4日火曜日
  • 26. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ html5 vnc (2) 右クリックしてソースを見ればわかりますが、noVNC websocket、Canvas対応 web browser必須 (IE8以下は Chrome Frame) 26 12年9月4日火曜日
  • 27. 会員/課金 DB OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ 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 27 12年9月4日火曜日
  • 28. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ 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 28 12年9月4日火曜日
  • 29. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ 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; } } 29 12年9月4日火曜日
  • 30. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ リソースグラフ: collectd collectd-virtというパッケ ージがEPEL6にある collectd-virt collectd-rrdtool の組み合わせ(rrdでデータ保 存) libvirt環境のリソースデ ータ取得機能 nova-computeで稼働。そ のままvmのリソースデータ をrrdで取得してくれるの で、便利 あとは、コンパネでrrdをグ ラフにするだけです 30 12年9月4日火曜日
  • 31. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ リソースグラフ: collectd 以下のようにパッケージ入っています (rrdとかmysqlとか、csvとかへのデータ取得が便利なので、 いろいろ使えます) [root@cnode-a1001 novaclient]# rpm -qa | grep collectd collectd-4.10.3-1.el6.x86_64 collectd-web-4.10.3-1.el6.x86_64 collectd-rrdtool-4.10.3-1.el6.x86_64 collectd-virt-4.10.3-1.el6.x86_64 31 12年9月4日火曜日
  • 32. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ 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 32 12年9月4日火曜日
  • 33. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ 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 33 12年9月4日火曜日
  • 34. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ 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> を叩かせています 34 12年9月4日火曜日
  • 35. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ISO upload: ldap ssh(sftp) chroot + NFS ldap sshのconsoleの副産物としてsftp uploadを使えることに (openssh 5.4p1にpatchあて) NFS storage上にユーザをchrootしています (NFS chrootはパッチがいる) >> proftpdにもmod_sftp機能があるのでそれに移行検討中 一週間で削除するのは、quotaの実装の問題 35 12年9月4日火曜日
  • 36. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ISO upload: ldap ssh(sftp) chroot + NFS 当初NFS serverをGlusterFSで構築していました スケールするはずだった (〃 ̄∇ ̄)ノ彡☆ウキャキャキャッ ただ、使っていたバージョンが GlusterFS 3.3beta (だいぶリリース前) brickトラブル多発、見えたり見えなかったり... GlusterFS quota機能 フォルダにquotaをかけられる一見便利な機能だった >> quota checkにGlusterFS全体をlockする動作があることがわかる quotaを捨てて、一週間でISOを削除する方向にリリース後転換 さらに上記の「見えたり見えなかったり」問い合わせでGlusterFSも... ここはリベンジします(GlusterFS 3.3 正式版は基本、安定しています) 36 12年9月4日火曜日
  • 37. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎その他OSSを使っている部分、構築、運用、監視 監視: OS側 Nagios 3.3.1 (EPEL6版) Hardware側 IBM Director + HP SIM (Freeだけどnot OSS) HPのサーバ監視は使っているサーバがg7世代だとOSにagent必要 (これがトラブルのもとだったりもする) HPはgen8に期待∩゚∀゚∩age 構築: cobbler (kickstart network install) (EPEL6版) cobblerに各hostを登録することで、dhcp, dns, Nagiosの設定の生成 cobblerのtriggerで実行 (残念ながらIBM Director, HP SIMへの登録は手動) 37 12年9月4日火曜日
  • 38. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ cobbler triggerでnagios設定 [n-gohko@v2cob1001 libvirt]$ find /var/lib/cobbler/triggers/ /var/lib/cobbler/triggers/ /var/lib/cobbler/triggers/sync /var/lib/cobbler/triggers/sync/post /var/lib/cobbler/triggers/sync/post/201-post-chmod-644-tftpboot-kick.sh /var/lib/cobbler/triggers/sync/post/nagios-add-hosts.sh /var/lib/cobbler/triggers/sync/post/301-post-chmod-644-tftpboot-kick.sh /var/lib/cobbler/triggers/sync/pre /var/lib/cobbler/triggers/delete /var/lib/cobbler/triggers/delete/file /var/lib/cobbler/triggers/delete/file/post /var/lib/cobbler/triggers/delete/file/pre /var/lib/cobbler/triggers/delete/distro /var/lib/cobbler/triggers/delete/distro/post /var/lib/cobbler/triggers/delete/distro/pre /var/lib/cobbler/triggers/delete/mgmtclass /var/lib/cobbler/triggers/delete/mgmtclass/post /var/lib/cobbler/triggers/delete/mgmtclass/pre /var/lib/cobbler/triggers/delete/package /var/lib/cobbler/triggers/delete/package/post /var/lib/cobbler/triggers/delete/package/pre /var/lib/cobbler/triggers/delete/system /var/lib/cobbler/triggers/delete/system/post /var/lib/cobbler/triggers/delete/system/pre /var/lib/cobbler/triggers/delete/profile 以下略 ... 38 12年9月4日火曜日
  • 39. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎トラブルと運用というDevOps: 1) GlusterFS 3.3beta 下記のgluser.orgのドキュメントをみて歓喜した日々よ、さようなら >> ストレージをサービスするにはいつか乗り越えるまで取り下げる >> 正確に容量を取得するために全体にロックかけるのはわからないでもない けど、ちょっと困った実装(泣) 39 12年9月4日火曜日
  • 40. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ トラブルと運用というDevOps: 2) virt resize disk imageのリサイズ機能のリリース ・20GB + 拡張diskという当初の仕様は >> GlanceのOSイメージ(標準CentOS 6.2)の扱いを楽にするため >> GMOアプリクラウドのステージング機能から由来 ・ 意外と不評 (泣) >> アプリクラウドがLVMでくっつけるのが標準だったので考えが甘かっ た diskのサイズ変更(10%単位)ができるように ・拡張はimageにresizeをかける、fsckかければOSも何とか ・縮小側はOS側でちょっと困ったことに >> 縮小側imageは新規作成する仕様に 40 12年9月4日火曜日
  • 41. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ トラブルと運用というDevOps: 3) vnc Google chrome dev 20.xでコンパネを開いてみた あれ、noVNC動かない((((;゚Д゚))))ガクガクブルブル noVNCを更に新しいものに追従してupdate chrome 20.xがリリースされるまでになんとか修正 ブラウザの進化とともに、noVNC(html5)周りは常に注意が必要 41 12年9月4日火曜日
  • 42. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ DEMO: DNSを使ったname base冗長構成 DNSにsub domain とそのNSレコードを作る Internet sub domain NSでは、それ MacBook-Air:$ dig ns d.myvps.jp ぞれwwwを名乗らせる ;d.myvps.jp. IN NS MacBook-Air:$ dig www.d.myvps.jp @d-ns01.myvps.jp ;; ANSWER SECTION: ;; QUESTION SECTION: d.myvps.jp. 5 IN NS d-ns01.myvps.jp. ;www.d.myvps.jp. IN A d.myvps.jp. 5 IN NS d-ns02.myvps.jp. ;; ANSWER SECTION: www.d.myvps.jp. 5 IN A 157.7.129.212 ;; ADDITIONAL SECTION: d-ns01.myvps.jp. 86400 IN A 157.7.129.212 MacBook-Air:$ dig www.d.myvps.jp @d-ns02.myvps.jp d-ns02.myvps.jp. 86400 IN A 157.7.129.213 ;; QUESTION SECTION: ;www.d.myvps.jp. IN A DNS ;; ANSWER SECTION: www.d.myvps.jp. 5 IN A 157.7.129.213 DNS + DNS + web server web server L7(reverse proxy) L7(reverse proxy) d-ns01. d-ns02. w01. w02. 157.7.129.212 157.7.129.213 157.7.129.214 157.7.129.215 reverse proxyでw01, w02 を追加 42 12年9月4日火曜日
  • 43. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎まとめと今後の展開とか(1) ・とりあえず、200 > compute nodeのDiablo環境を運用中 ・OpenStack DiabloにかぎらずVPSへの適用にはちょっと手を入れる必要 がありそう ・OpenStack Hypervisor Driverまわりは実はまだまだやるべきことが たくさん残っているね(Essex以降でも) ・VPSなので、ネットワークはsimpleで構築しました (なので、セキュリティは各自、お願いm(。_。;))m ペコペコ… ) ・追加IPの要望(冗長、Floting IP)、IPv6などは今後の課題 >> さきほども、ブースで要望うけました >> vipとして追加IPを割り振るのか、追加NICとして割り振るのか 43 12年9月4日火曜日
  • 44. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎まとめと今後の展開とか(2) http://b.hatena.ne.jp/articles/201206/9110 44 12年9月4日火曜日
  • 45. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎まとめと今後の展開とか(2) はてな さんの要望もごもっとも。検討中 vncの機能周りはとくに 45 12年9月4日火曜日
  • 46. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ◎まとめと今後の展開とか(3) ・qemu-img convert周りの機能とかと、ストレージのリベンジで新しい機 能とか ・CentOS 6.3, Essexに移行するのか? 2nd Unit (OpenStackがversion upした時に、Hosting業者はどうすべきか) ・最近はCentOS 6.x + EPEL Essexを使い始めました(検証とか別案件) ・APIをモジュールとして追加できれば ==> VPS Stack 的な使い方 ・インスタンス追加アルゴリズムもモジュール(ドライバ)だと良い (LBのラウンドロビン、リーストコネクトなどと同様ユーザが選択) ・どんなコミニュティへの提案・貢献したらいいんだろう 46 12年9月4日火曜日
  • 47. OpenStack  +  KVM  =  お名前.com  VPS    〜~開発担当者が語る、ここだけの裏裏話〜~ ご清聴ありがとうございました Special Thanks! GMO Internet Inc., System Div., SI Team and Cloud Team 途中まで準備していただいた Yamada san 47 12年9月4日火曜日