OpenStack Block Storage って何?
●   OpenStack Compute(Nova:IaaS基盤)から
    独立したブロックストレージサービス機能
    –   VMインスタンス用の(追加)仮想ディスクを提供
          類似: Amazon Elastic Block Store(EBS)
    –   2012/9 OpenStack Folsom リリースで登場




          本資料では以後
        Cinder と表記します。
Cinder って何?
●   OpenStack Block Storage の開発プロジェクト名
    –   https://launchpad.net/cinder
    –   https://github.com/openstack/cinder
●   「Cinder」(英語)
    –   [名]燃え殻、消し炭、灰
        ●   シンデレラ(Cinderella)の
            語源
●   「Cinder Block」
    –   穴あきのコンクリートブロック
Cinderの機能
●   ボリュームの作成/削除
●   VMインスタンスへの
    ボリューム接続/切断    ボリューム     ボリューム

●
    ボリュームのスナップ
    ショット作成/削除     ボリューム     ボリューム

●   スナップショットからの
    ボリューム作成
●   Glance連携       Cinder
ボリュームの作成/削除
Cinderが管理するストレージ上に、VM用の
ボリューム(仮想ストレージ)を作成/削除します

 ボリュームの実体
 ●   Linux LVM     ボリューム     ボリューム

 ●   NFS上のファイル
 ●   商用ストレージ上の
     論理ディスク
 ●   分散ストレージ基盤上の    Cinder
     ボリューム
VMインスタンスへの
       ボリューム接続/切断
Cinderが管理するボリュームを、Nova上の
VMインスタンスが利用できるようにします
※VMのゲストOSには単なるローカルストレージに見える
スナップショットの作成/削除
Cinderが管理するボリュームのスナップショットを
作成します
※スナップショットはVMからアタッチ不可




   ボリューム   ボリューム   スナップ
                   ショット




               Cinder
スナップショットからのボリューム作成
Cinderが管理するスナップショットから
新規のボリュームを作成します
※ボリュームはVMからアタッチ可




   ボリューム   ボリューム    新規     スナップ
                   ボリューム   ショット




               Cinder
New!
                 Glance 連携
●   Glance のディスクイメージから
    Cinder のボリュームを作成します
●   Cinder のボリュームから
    Glance のディスクイメージを作成します


                                     新規
                 新規     ディスク
     ボリューム                          ディスク
                ボリューム   イメージ        イメージ



       Cinder              Glance
Cinder誕生の背景
●   OpenStack プロジェクトの方向性
       単独利用可能な単機能コンポーネントの
       単独利用可能な単機能コンポーネントの
     組み合わせによる完全OSSのクラウド基盤を提供
     組み合わせによる完全OSSのクラウド基盤を提供


●   OpenStack の歴史
         オールインワンな Nova の機能分割
         オールインワンな Nova の機能分割
OpenStack発足当時のNova

Nova
            ユーザ・
   VM管理    プロジェクト          ディスクイメージ
                           テンプレート管理
             管理



  仮想テナント    ブロック           オブジェクト
  ネットワーク   ストレージ
    管理       管理
                           ストレージ



                    オブジェクトストレージ   Swift
OpenStack Bexarリリース

Nova                         Glance

              ユーザ・     ディスクイメージ
   VM管理      プロジェクト    テンプレート管理
               管理


                              Swift
  仮想テナント       ブロック
  ネットワーク      ストレージ
    管理          管理     オブジェクト
                       ストレージ
OpenStack Diabloリリース

Nova             Keystone        Glance

                ユーザ・        ディスクイメージ
              プロジェクト管理      テンプレート管理
   VM管理



                                  Swift
  仮想テナント
  ネットワーク       ブロック
    管理        ストレージ         オブジェクト
                管理          ストレージ



   ※Novaの元機能は他コンポーネントのリリース後しばらく存続する
OpenStack Folsomリリース

        Nova     Keystone           Glance

                ユーザ・        ディスクイメージ
 VM管理          プロジェクト       テンプレート管理
                 管理



  Quantum          Cinder            Swift
仮想テナント          ブロック
ネットワーク         ストレージ         オブジェクト
  管理             管理          ストレージ



    ※Cinder だけ Nova のソースコードから派生した
Compute
                   Novaの構成(Essex)
          Volume
  API


            API




nova-api                             nova-
                                    compute

nova-cert                            nova-
                                    network
  nova-                  DB
scheduler                            nova-
                                    volume
Cinderの構成(Folsom)
              アタッチ/デタッチ操作
     Volume
      API +


                関連APIを追加


cinder-api




 cinder-          DB
scheduler                   cinder-
                            volume
Cinderの新機能(Folsom)
●   専用クライアントライブラリ・コマンド
    –   python-cinderclient
    –   cinder
●   アベイラビリティゾーン
●   Glance連携
●
    ドライバ追加
    –   NetApp NFS/iSCSI
    –   Zadara
    –   Linux NFS
Cinder 次期リリース開発項目(抜粋)
●   API拡張(ver.2)
●   ボリュームタイプスケジューラー
●   ボリュームの複製
●   起動可能ボリュームの一覧表示
●   1つの cinder-volume による複数ストレージ管理
Cinder 次期リリース開発項目(抜粋)
●   新ドライバ
    –   HP 3PAR
    –   Fibre Channel
    –   VMホスト上のQCOW2 +
        定期的なスナップショットのSwiftバックアップ
●   メータリング・課金
●   Nova 同様のサービス管理
Question ?
API拡張(ver.2)
●   必須項目
    –   Add capability to update metadata for volumes and snapshots
    –   Add filtering of API requests by attributes and metadata (for example list volumes or
        snapshots by name, date, etc.)
    –   Add Markers and Pagination in line with the other openstack projects
    –   Add capability to delete volumes that have snapshots
    –   Add capability to list snapshots filtred by volume ID
    –   Update /volumes and /volumes/details to match behavior of other openstack projects
    –   Update limits and quotas to key on volume_type and not be global
    –   Change ID of volume types to be a UUID and change all references to volume type in the
        API to use the UUID rather than the volume type name
    –   Change "display_name" attribute to "name" in the API for consistency with other services.
    –   Add a field to display what instance is being attached to when in the "attaching" state.
●   推奨項目
    –   Add capability to create a volume and attach to an instance in a single API call
    –   2. Add better error messaging when an attach or detach fails

OpenStack Block Storage (Cinder)

  • 2.
    OpenStack Block Storageって何? ● OpenStack Compute(Nova:IaaS基盤)から 独立したブロックストレージサービス機能 – VMインスタンス用の(追加)仮想ディスクを提供 類似: Amazon Elastic Block Store(EBS) – 2012/9 OpenStack Folsom リリースで登場 本資料では以後 Cinder と表記します。
  • 3.
    Cinder って何? ● OpenStack Block Storage の開発プロジェクト名 – https://launchpad.net/cinder – https://github.com/openstack/cinder ● 「Cinder」(英語) – [名]燃え殻、消し炭、灰 ● シンデレラ(Cinderella)の 語源 ● 「Cinder Block」 – 穴あきのコンクリートブロック
  • 4.
    Cinderの機能 ● ボリュームの作成/削除 ● VMインスタンスへの ボリューム接続/切断 ボリューム ボリューム ● ボリュームのスナップ ショット作成/削除 ボリューム ボリューム ● スナップショットからの ボリューム作成 ● Glance連携 Cinder
  • 5.
    ボリュームの作成/削除 Cinderが管理するストレージ上に、VM用の ボリューム(仮想ストレージ)を作成/削除します ボリュームの実体 ● Linux LVM ボリューム ボリューム ● NFS上のファイル ● 商用ストレージ上の 論理ディスク ● 分散ストレージ基盤上の Cinder ボリューム
  • 6.
    VMインスタンスへの ボリューム接続/切断 Cinderが管理するボリュームを、Nova上の VMインスタンスが利用できるようにします ※VMのゲストOSには単なるローカルストレージに見える
  • 7.
  • 8.
  • 9.
    New! Glance 連携 ● Glance のディスクイメージから Cinder のボリュームを作成します ● Cinder のボリュームから Glance のディスクイメージを作成します 新規 新規 ディスク ボリューム ディスク ボリューム イメージ イメージ Cinder Glance
  • 10.
    Cinder誕生の背景 ● OpenStack プロジェクトの方向性 単独利用可能な単機能コンポーネントの 単独利用可能な単機能コンポーネントの 組み合わせによる完全OSSのクラウド基盤を提供 組み合わせによる完全OSSのクラウド基盤を提供 ● OpenStack の歴史 オールインワンな Nova の機能分割 オールインワンな Nova の機能分割
  • 11.
    OpenStack発足当時のNova Nova ユーザ・ VM管理 プロジェクト ディスクイメージ テンプレート管理 管理 仮想テナント ブロック オブジェクト ネットワーク ストレージ 管理 管理 ストレージ オブジェクトストレージ Swift
  • 12.
    OpenStack Bexarリリース Nova Glance ユーザ・ ディスクイメージ VM管理 プロジェクト テンプレート管理 管理 Swift 仮想テナント ブロック ネットワーク ストレージ 管理 管理 オブジェクト ストレージ
  • 13.
    OpenStack Diabloリリース Nova Keystone Glance ユーザ・ ディスクイメージ プロジェクト管理 テンプレート管理 VM管理 Swift 仮想テナント ネットワーク ブロック 管理 ストレージ オブジェクト 管理 ストレージ ※Novaの元機能は他コンポーネントのリリース後しばらく存続する
  • 14.
    OpenStack Folsomリリース Nova Keystone Glance ユーザ・ ディスクイメージ VM管理 プロジェクト テンプレート管理 管理 Quantum Cinder Swift 仮想テナント ブロック ネットワーク ストレージ オブジェクト 管理 管理 ストレージ ※Cinder だけ Nova のソースコードから派生した
  • 15.
    Compute Novaの構成(Essex) Volume API API nova-api nova- compute nova-cert nova- network nova- DB scheduler nova- volume
  • 16.
    Cinderの構成(Folsom) アタッチ/デタッチ操作 Volume API + 関連APIを追加 cinder-api cinder- DB scheduler cinder- volume
  • 17.
    Cinderの新機能(Folsom) ● 専用クライアントライブラリ・コマンド – python-cinderclient – cinder ● アベイラビリティゾーン ● Glance連携 ● ドライバ追加 – NetApp NFS/iSCSI – Zadara – Linux NFS
  • 18.
    Cinder 次期リリース開発項目(抜粋) ● API拡張(ver.2) ● ボリュームタイプスケジューラー ● ボリュームの複製 ● 起動可能ボリュームの一覧表示 ● 1つの cinder-volume による複数ストレージ管理
  • 19.
    Cinder 次期リリース開発項目(抜粋) ● 新ドライバ – HP 3PAR – Fibre Channel – VMホスト上のQCOW2 + 定期的なスナップショットのSwiftバックアップ ● メータリング・課金 ● Nova 同様のサービス管理
  • 20.
  • 22.
    API拡張(ver.2) ● 必須項目 – Add capability to update metadata for volumes and snapshots – Add filtering of API requests by attributes and metadata (for example list volumes or snapshots by name, date, etc.) – Add Markers and Pagination in line with the other openstack projects – Add capability to delete volumes that have snapshots – Add capability to list snapshots filtred by volume ID – Update /volumes and /volumes/details to match behavior of other openstack projects – Update limits and quotas to key on volume_type and not be global – Change ID of volume types to be a UUID and change all references to volume type in the API to use the UUID rather than the volume type name – Change "display_name" attribute to "name" in the API for consistency with other services. – Add a field to display what instance is being attached to when in the "attaching" state. ● 推奨項目 – Add capability to create a volume and attach to an instance in a single API call – 2. Add better error messaging when an attach or detach fails