Cloudian®の構築と運用の基礎	




      2012.06.05	

  NTT Software Corporation
       http://www.ntts.co.jp/
      http://www.nttsoft.com/
アジェンダ	

・会社紹介	

・Webストレージへの取り組みの歴史	

・Cloudian®に対する取り組み	

・オブジェクトストレージとは	

・Cloudian®の構築例	

・Cloudian®の基本動作と運用	

・Amazon S3との互換性	

・OpenStack Swiftとの比較	

                         ※ Cloudian®は、ジェミナイ・モバイル・テクノロジーズ社の登録商標です。	

           2
会社紹介	

 社名: NTTソフトウェア株式会社	

 所在地: 東京都港区港南2-16-2 (本社)	
       Cloudian®の担当チームは横浜の関内事業所に在籍	

 創設: 1985年	

 主な業務: 受託開発、パッケージ開発/販売、コンサル、	
        その他・・・	




        3
NTTソフトのWebストレージへの取り組みの歴史	
    年代	
                       出来事	

               WebDAVベースのストレージサービスの開発	
  2002年頃∼	
     → 従来型のストレージ(NAS)と、手を加えたWebサーバをつないだ	
                  構成で、拡張性やコスト面に課題があった。	

               大容量Webストレージの検討	
                → スケールアウト型のストレージの登場などハードウェア面での	
  2009年頃∼	
                  進歩により、容量や運用の課題を解決できないか模索。	
                → コストや運用性の課題がクリアできず。	

               クラウドや、Hadoopに代表される分散システムが注目されるなか、	
               オブジェクト・ストレージ製品が実用化されはじめる。	
  2010年∼	
                 → この時点では、商用サービスに耐えうると判断できる製品	
                   が見つからず  	

               Cloudianに出会う	
  2011年5月	
      → S3 APIサポート、IAサーバで構築可(低コスト)、国内サポート、	
                    ソフトウェア製品 と、ほぼ希望通りの条件。	


           4
Cloudian®に対する取り組み	
この一年の取り組み	

 ・導入支援・構築作業	
 ・機能系検証   	
   ストレージ基本機能検証	
             今回は、実際に導入す
                             るにおいて、まず、気に
    (レプリケーションの確認など)	
                             なるであろうこれらの
   S3 API互換性検証	
             テーマを中心に紹介し
   アプリケーション動作検証	
            ます。	
 ・運用系検証	
   障害時挙動の確認	
   障害復旧手順の確認	
   増設/減設手順の確認	
   マルチデータセンタ構成の検証(遅延、分断の影響確認)	
 ・性能検証	
 ・他製品(OpenStack Swift)との比較	
       5
オブジェクトストレージとは	




 6
ネットワークストレージの分類	

  これまでのネット
  ワークストレージ         どのストレージを
  と何が違うの?	
        選べばよいの?	




  従来のストレージ	
          新ジャンル	


     NAS	
            オブジェクト	
                      ストレージ	
     SAN	




      7
NAS(Network Attached Storage)	
                               利用例	
                                ・ファイルサーバ	
                                 (共有フォルダ、NFSマウント)	
                                ・FTPサービス	
               クライアント	
 ファイル	



            ネットワーク	
                               主な方式、プロトコル	
             (LAN)	
            NFS、CIFS(SMB)	

          ファイル	

                               ・ネットワーク越しにファイルシステムを見せ
                               るための仕組み	
            ファイルシステム	
            (ext4、xfsなど)	
                               ・原則、ユーザ管理やアクセス制御(所有者、	
                                アクセス権、タイムスタンプ)などOSの機能	
                   Blocks	
     と連携して動作する。	
                               ・主にLAN上で利用。	

                      8
SAN(Storage Area Network)	
                                              【利用例】	
                                               ・高速な外付けハードディスク	
ファイル	
                                         ・光学ドライブ、テープドライブなどの	
                    クライアント	
                    リモート接続	
         ファイルシステム	
          ファイルシステム	
         (ext4、xfsなど)	
      (ext4、xfsなど)	

Blocks	
  ドライバー/HBA等	
 ドライバー/HBA等	
           主な方式、プロトコル	
                                               iSCSI、 FiberChannel(FC)	

                 ネットワーク	
                 (LANやSAN)	
                                              ・ネットワーク経由で接続可能な外付けディ
                                              スクのイメージ(ブロックを見せるための仕組
                                              み)	
                                              ・サーバ側でファイルをブロックに分割して
                                              ネットワーク越しに保存する	
                        Blocks	
 
                                              ・ストレージは、ファイルシステムの属性情報
                                              (ファイルの所有者やタイムスタンプ等)は制
                                              御しない。	
                                              ・主にLANやSAN上で利用。	
                    9
オブジェクトストレージ	
                                                     はコレ	
                             【利用例】	
                               ・IaaSにおけるVMイメージなどの保管	
                              ・クラウドサービスのバックエンドストレージ	
ファイル	
           クライアント	
           ・画像や動画などのコンテンツサーバ	
                               (Contents Delivery Service)	
          ネットワーク	
           (WAN)	
                             【主要プロトコル】	
                              HTTP (REST、SOAP)	


                             ・Webストレージのイメージ	
            Web I/F          ・KeyValueStore型DBに近い(insert, select,
                             update, deleteでオブジェクトを操作)	
         META       OBJECT
                             ・HTTPなので、Webアプリから利用しやすい。	
                              (Non-PC端末からも利用しやすい。)	
          ファイルシステム	
          (ext4、xfsなど)	
     ・HTTPなので、WAN(インターネット)で利用し
                             やすい。(Firewallやロードバランサなど対応製
                Blocks	
 
                             品が多い)	
                    10
その他、オブジェクト・ストレージの特徴	
            データを『オブジェクト』として格納するのが、	
               オブジェクト・ストレージなのか?	



  多くのオブジェクト・ストレージが、分散システムとして実装されており、	
            以下の様な特徴も合わせ持つ	

 ● 可用性	
   → Webサーバのクラスタがそうであるように、1台壊れてもサービスが止まらない。	
 ● 信頼性	
   → データを自動的に複数のサーバに複製(レプリケーション)する。	
     また、障害があった場合、そこからデータを復旧する。	
 ● 拡張性	
   → これもWebサーバがそうであるように、サーバを並列化することで	
     容量制限なく、サービスを止めることなく拡張が可能である	
     (=スケールアウト可能)。	


       11
オブジェクト・ストレージの利用イメージ(1)	
 ● IaaS用のストレージとして・・・	



         IaaS基盤ソフトウェア	
                                  ・仮想マシンのOSイメージ	
                                  ・OSインストール用isoファイル	
                 管                ・スナップショット(バックアップ)	
                 理
                 	
               などの格納場所に利用	




                      ファイル入出力	




       VMホストサーバ群	




        12
オブジェクト・ストレージの利用イメージ(2)	
● ファイルサーバとして・・・	


                  ブラウザから	




                                スマ‐トフォン	

   PC-ブラウザ	
                             HTTP通信なの
                                         で、スマート
                                         フォンなどマル
                                         チデバイス対
                                         応もしやすい。	



                  一般的なS3 クライ
                  アントソフトから	
                               タブレット	
  PC-S3クライアント	

           13
オブジェクト・ストレージの利用イメージ(3)	
 ● Contents Delivery Serviceに・・・	




                                      データの	
                                      自動複製	




                                           リンク	
                        リンク	
  ユーザ	
                                    <A HREF=“http://.......”>


                                                                           	
                                                                       レクト
                                                               リダイ



                                                                                ユーザ	

複製を利用して、ユーザ                                                動画や画像など大きなファイ
の手近なロケーションにア                                               ルは、オブジェクト・ストレージ
クセスさせることで、負荷            Web/APサーバ	
                                                           に保存し、Webページからリン
を低減する。	
                                                   クする	



             14
ストレージの使い分け	

・オブジェクトストレージとこれまでのネットワークストレージは、何が違うのか?	

・NAS、SAN、オブジェクトストレージのどれを選べば良いのか?	




オブジェクトストレージは、NASやSANにとって変わるものではありません。	
それぞれ、得意分野がことなる製品群ですので、利用目的にあった製品を
選びましょう。	




       15
Cloudian ®の構築例	




16
材料(例)	
● Cloudianサーバ(IAサーバ) 3台∼	
  ・マニュアル上の推奨(?)スペック: 	
    CPU: 2 quad-core Intel Xeon E5-2600	
    32GB RAM,12-2TB SAS2 HD (24TB total)	
    (実際は、ディスク以外、もう少し低スペックでもいいかも・・・)	

● DNSサーバ 1台∼	
   ・必要に応じてPrimary +Secondery構成で・・・	
  ・サブドメイン部分をワイルドカード指定できるもの(BIND9などで可能)	

● ロードバランサ 1台∼	
   ・LVSなどソフトウェアロードバランサでも可。	
   ・HTTPSを利用したい場合は、SSL対応のものを推奨。	
    (Cloudianサーバ側でもSSL対応しているが、証明書の管理の手間や、	
    振り分け方式への制約があるため)	

● L2Switch 2台∼	
   ・ギガビット以上のL2/L3スイッチ。	
   ・もちろん、コストが許すなら10GbEなども可。	

          17
システム構成例(サーバ、ネットワーク)	
 【3ノードでの例】	
  こんな感じ ↓ にネットワーク機器とサーバを設置し接続します。	

                                        サービス・ネット	
          データ同期ネット	




                               DNSサーバ	
                                                     Cloudianノード#1	
エンドユーザ	
                インターネット	
                  など	

                            ロードバランサ	
      L2SW	
                                                     Cloudianノード#2	
   L2SW	

エンドユーザ	



                                                     Cloudianノード#3	


   ※ユーザアクセスネットワークと、データ同期用ネットワークは分けることを推奨します。	
   データ同期ネットワークでは、ユーザアクセスによるトラフィックの3倍程度のトラフィックがかか
   る場合があります。	

           18
ディスク・レイアウト	
  Diskは、1サーバ・10本以上を推奨。	
                                                                                                                   RAID5やRAID6でも動作は
	
 	
 	
 	
 OS領域	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 :	
 2本(RAID1)	
                                                                  可能	
	
 	
 	
 	
 CassandraのCommitLog:	
 2本(RAID1)	
 
	
 	
 	
 	
 Data領域	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 :	
 6本(RAID	
 5+0)→	
 現時点では、データ領域は	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1パーティーションが推奨。	
 



                             ミラー	
                                       ミラー	




                OS領域	
                                 CommitLog領域	
                                             データ領域	
                (RAID1)	
                                (RAID1)	
                                               (RAID5+0)	
                                                                                  書込頻度大 → 高速
                                                                                  なドライブを推奨	

一般論として、レプリケーションをとる分散系システムでは、RAIDを組まない方が高速な
場合があるという話もありますが・・・	
→ ディスク故障時の手間や復旧に要する時間を考えると、RAIDを組んだ方が良い。	
 (1パーティーションで構成しているため、1本壊れても全データの復旧が必要になる。)	

                             19
OSの種類と設定	

 ・正式サポートされているOSは、CentOS 5.xまたは、RedHat Enterprise Linux 5.x	
  (ただし、RHEL/CentOS 6.1で2∼3ヶ月動かした範囲では特に問題は	
   発生しなかった。)	

 ・ファイルシステムは、ext4 	
  ‐ ext4は遅いと言う噂もあり、ジャーナリングをオフにするなどカスタマイズも試し	
    たがあまり、性能差を実感することはなかった。(※ Cassandra構成の場合)	
  ‐ ただし、1ノードで16TB以上を実現するには、xfs(RHEL 6.2で正式サポート)	
    などの採用の検討が必要。 	
    ※ RHELではext4は、1パーティーション16TBまでしかサポートされていないため	

 ・OSのリソース制限設定(limits.conf)の変更	
  ‐ デフォルトだと、使っているうちに問題が発生することも・・・	
  ‐ 例えば、CentOS6.xでは、nprocのデフォルト値が1024で、過負荷時に、	
    スレッドが生成できずにエラーが発生。	

 ・その他、必要に応じてJavaのチューニングも行います。	


          20
Cloudian®のソフトウェア構成	
  インストールが完了すると、以下の様なプログラム(プロセス)が、各ノードで動作します。	

   Cloudian® ノード	

   ユーザ・フロントエンド部	
                                      管理機能部	


    Cloudian Storage I/F                                          Cloudian
                                         Cloudian Admin I/F
    (S3 Compatible I/F)                                          Management
                                         (Administration I/F)
                                                                  Console




    ストレージ部	


      Reports
                               AccountInfo                               Credentials
        DB
                    Apache         DB        HyperStore          Redis       DB

                   Cassandra
       Meta                       QoS           User
       Data                       DB            Data




              21
Cloudianの基本動作と運用	




  22
ファイルが複製される仕組みは?	
【ファイルが複製される仕組み(RF(複製)=3・Write CL=QUORUM(定足数保証)の場合)】	
                            ② 隣のノードに複製(レプリ                    二番目に書き込まれるノードを
                            カ)が生成される。	
                       別データセンターにおいて置
  ① ファイルが                                                     けば、2つのデータセンターに
  アップロードされ                                                    データが複製されることが保
  ると・・・	
                                                     証される。	
                         レプリカ	
                        レプリカ	
                          A	
B	
          他データセンター	
                     ⑤ 3つめの複製は、
                                                                         同時に作成してい
                                                                         るが、応答は待た
                                                                         ない。(非同期)	

                  Token=0                  Token=100        Token=200

                                                           ・Replication Factor =
                                 更新完了	
                     クラスタ内に作成する複製数	

                                            ③ 複製元に、複製      ・ConsistencyLevel =
                        正常応答	
              が完了した旨の応        書き込み(読み込み)の一貫性保証度	
        ファイル	
                              答を返す。	
                                                            ONE = 1ノードに書き込めれば成功	
                             ④ 最初の書込と
                             複製数の合計が、                       QUORUM=全複製数に対する最小過半	
                             全複製数(3)の過                              数書き込めれば成功	
                             半数(2)を超えた
                             時点で、クライアン                      ALL=全複製数、書き込めれば成功	
                             トには、正常応答
                             を返す。	
            ※ Token: サーバを識別するIDの様なもの、実際は0∼2^127-1

             23
障害検証の結果(サマリ)	
前頁の挙動を前提に、以下のような障害パターンを想定した検証を行いました。	

・ディスク障害 = 1パーティーション構成なので、ボリュームが壊れると、復旧
時間大 → RAID化を推奨	

・ノード障害 = 同一データのレプリカを持つノードが全て同時に壊れなければ
問題なし。 復旧時にはRepairコマンドが必要。	

・データセンタ障害(クラスタの分断) = データセンタまるごと障害が発生場合
もサービスレベルを維持したい場合は、レプリカ数を多めに設定した方が良い。
また、一時的にConsistencyLevelやReplication Factorの変更といった運用対
処も効果あり。	

結果: データが復旧できなくなるような状況は発生しませ  	
    んでした。	
Ver.1.x(Cassandra Only)バージョンでは、復旧時間やデータ整合性確認の時間が長いなどの課題
もあったが、Ver.2.x(HyperStore)の登場で、劇的に改善!	

         24
Amazon S3との互換性は?(API対応状況)	
今後、サポートが表明されているAPIを含めれば、カバー率90%以上	
ただし、現在、サポートされていないAPIも利用頻度が低いであろうものが多く・・・	
    → 主要APIは網羅されており、実用上問題なし!	
 Operations	
                      Suported/unsupported	
            カバー率	
 Operations on the Service	
              1/1	
                       100%	
 Operations on Buckets	
                                        11/26	
                        42%	

 Operations on Objects	
                11/16	
                        69%	
    Unsuppouted API	
                                                            Unsuppouted API	
    LifeCycle (PUT/GET/DELETE)	
   一見、低く見えるがサポート
    Policy(PUT/GET/DELETE)	
                                DELETE Multi Objects	
                                   されていないのは、利用頻
    Website(PUT/GET/DELETE)	
                               GET Object torrent	
                                   度の低いAPI	
    Notification (PUT/GET)	
                                POST Object	
    Payment(PUT/GET)	
                                      Upload Part ‐ Copy	
    Head Bucket	
                                           List Parts	
    List Multipart Uploads	

                    25
Amazon S3との互換性は?(アプリ動作状況)	
一般的なS3クライアントでの動作確認の例	
   Operations	
 フォルダ操作	
       オブジェクト操作	
 バージョニング	
 メタ情報操作	
 マルチパート	
Products	
      (作成/読込/削除)	
   (作成/読込/更新/削 (作成/読込/削除)	
      アップロード	
                               除)	

s3fs	
              △(※)	
                                                                  ○	
                S3fs-cなどでは            ○	
       ‐	
       ‐	
                                                                設定で選択	
                     可能	
Dragon Disk	
                                                     ‐	
                       ○	
            ○	
       ○	
       ○	
   将来サポート
                                                                  予定	
s3curl	
                       ○	
            ○	
       ○	
       ○	
      ○	

※ s3fsではフォルダの作成方法が、他のS3クライアントと異なるため (s3fs側の制約)	




                                       凡例:○・・・主要機能で問題なく利用可能	
                                            ・・・Cloudianの問題で利用できない機能がある	
                                           ‐・・・クライアントソフト側で機能に対応していない	

                  26
OpenStack Swiftとの比較	
No.	
 項目	
               Cloudian	
               Swift	
1	
   アーキテクチャ	
                                         二層(?)構造	
                              P2P型	
               アクセス制御層(Auth&Proxyサー
                          (全ノードが同一構成)	
           バ)とストレージ層(Acct, Container,
                                                        Objectサーバ)	
2	
   API	
                  Amazon S3互換	
            RackSpace(CloudFiles)互換	
                               REST I/F	
                     REST I/F	
3	
   認証方式	
                メッセージ認証	
                 トークンベースの認証	
                         (共有秘密鍵でメッセージ             (セッション毎にユーザ名とパスワー
                              に署名)	
                     ドで認証)	
4	
   主な管理方法	
              CMC(WebGUI)	
                                                                CUI	
                          Admin API(REST I/F)	
5	
   QoS機能	
                                      有り	
                      無し	
      (容量、トラフィック量制限)	
6	
   課金機能	
                          有り	
                      無し	
7	
   商用サポート	
                                         オープンソース	
                             国内サポート有り	
           (米国ではRackSpace社がサポートメ
                                                    ニューを提供している模様)	

               27
OpenStack Swiftとの比較	
あくまで個人的な印象ですが・・・	

OpenStack Swiftは・・・	

 ・Amazon S3との互換性は高くない。	
  → その代わり、RackSpaceのAPI互換がある。	

 ・使い勝手の部分で、発展途上な部分がある。	
  → GUI、管理系APIの有無、課金系機能などが不足。	

 ・オープンソースプロジェクトで規模も大きいため開発方針(機
  能追加や統廃合など)や仕様(変更)の把握しにくさがある。
  (保守性に懸念)	


          28
まとめ	
                                の特徴	
  世の中のトレンド・・・	
                  ・自動レプリケーションによる可用性	
  ビックデータ化	
                  ・一貫性レベルによる信頼性	

   クラウド化	
        ・Amazon S3 APIによる汎用性	

                  ・分散構成による拡張性	
 マルチデバイス化	
                  ・国内商用サポートによる保守性	


         Cloudianは、これらのトレンドに	
         合致するソリューションである。	

        29
最後に・・・・	
NTTソフトウェアではCloudianのライセンス販売だけでなく、	

 ・セキュリティ/クラウド(OpenStackなど)/ビッグデータの分野
 におけるお客様のご要望にあったシステム構成、ご利用方法
 のご提案	

 ・これまでのCloudianの構築や検証経験などに基づいた導入支
 援、検証支援	


 ・様々なシステム開発経験を生かしたユーザインターフェース
 や課金機能、監視機能などのカスタマイズ	


 など、お客様に最適なソリューションのご提案をいたします。	

       30
連絡先	
【Cloudianに関するお問い合わせ】	

NTTソフトウェア株式会社 	
ソリューション事業推進本部	
ネットワーク・ソリューション事業部 第二事業ユニット	
  Cloudian担当:  cloudian@cs.ntts.co.jp 	


【その他、弊社のソリューションについては・・・】	

● NTTソフトウェア・ホームページ	
  http://www.ntts.co.jp/	



         31
ご静聴、ありがとうございました。	




 32

Cloudianの構築と運用の基礎 (Cloudian Summit 2012)

  • 1.
    Cloudian®の構築と運用の基礎 2012.06.05 NTT Software Corporation http://www.ntts.co.jp/ http://www.nttsoft.com/
  • 2.
  • 3.
    会社紹介 社名: NTTソフトウェア株式会社 所在地: 東京都港区港南2-16-2 (本社)       Cloudian®の担当チームは横浜の関内事業所に在籍 創設: 1985年 主な業務: 受託開発、パッケージ開発/販売、コンサル、        その他・・・ 3
  • 4.
    NTTソフトのWebストレージへの取り組みの歴史 年代 出来事 WebDAVベースのストレージサービスの開発 2002年頃∼  → 従来型のストレージ(NAS)と、手を加えたWebサーバをつないだ    構成で、拡張性やコスト面に課題があった。 大容量Webストレージの検討  → スケールアウト型のストレージの登場などハードウェア面での 2009年頃∼    進歩により、容量や運用の課題を解決できないか模索。  → コストや運用性の課題がクリアできず。 クラウドや、Hadoopに代表される分散システムが注目されるなか、 オブジェクト・ストレージ製品が実用化されはじめる。 2010年∼   → この時点では、商用サービスに耐えうると判断できる製品     が見つからず   Cloudianに出会う 2011年5月   → S3 APIサポート、IAサーバで構築可(低コスト)、国内サポート、 ソフトウェア製品 と、ほぼ希望通りの条件。 4
  • 5.
    Cloudian®に対する取り組み この一年の取り組み  ・導入支援・構築作業  ・機能系検証       ストレージ基本機能検証 今回は、実際に導入す るにおいて、まず、気に     (レプリケーションの確認など) なるであろうこれらの    S3 API互換性検証 テーマを中心に紹介し    アプリケーション動作検証 ます。  ・運用系検証    障害時挙動の確認    障害復旧手順の確認    増設/減設手順の確認    マルチデータセンタ構成の検証(遅延、分断の影響確認)  ・性能検証  ・他製品(OpenStack Swift)との比較 5
  • 6.
  • 7.
    ネットワークストレージの分類 これまでのネット ワークストレージ どのストレージを と何が違うの? 選べばよいの? 従来のストレージ 新ジャンル NAS オブジェクト ストレージ SAN 7
  • 8.
    NAS(Network Attached Storage) 利用例  ・ファイルサーバ   (共有フォルダ、NFSマウント)  ・FTPサービス クライアント ファイル ネットワーク 主な方式、プロトコル (LAN)  NFS、CIFS(SMB) ファイル ・ネットワーク越しにファイルシステムを見せ るための仕組み ファイルシステム (ext4、xfsなど) ・原則、ユーザ管理やアクセス制御(所有者、  アクセス権、タイムスタンプ)などOSの機能 Blocks  と連携して動作する。 ・主にLAN上で利用。 8
  • 9.
    SAN(Storage Area Network) 【利用例】  ・高速な外付けハードディスク ファイル  ・光学ドライブ、テープドライブなどの クライアント   リモート接続 ファイルシステム ファイルシステム (ext4、xfsなど) (ext4、xfsなど) Blocks ドライバー/HBA等 ドライバー/HBA等 主な方式、プロトコル  iSCSI、 FiberChannel(FC) ネットワーク (LANやSAN) ・ネットワーク経由で接続可能な外付けディ スクのイメージ(ブロックを見せるための仕組 み) ・サーバ側でファイルをブロックに分割して ネットワーク越しに保存する Blocks ・ストレージは、ファイルシステムの属性情報 (ファイルの所有者やタイムスタンプ等)は制 御しない。 ・主にLANやSAN上で利用。 9
  • 10.
    オブジェクトストレージ はコレ 【利用例】   ・IaaSにおけるVMイメージなどの保管  ・クラウドサービスのバックエンドストレージ ファイル クライアント  ・画像や動画などのコンテンツサーバ (Contents Delivery Service) ネットワーク (WAN) 【主要プロトコル】  HTTP (REST、SOAP) ・Webストレージのイメージ Web I/F ・KeyValueStore型DBに近い(insert, select, update, deleteでオブジェクトを操作) META OBJECT ・HTTPなので、Webアプリから利用しやすい。 (Non-PC端末からも利用しやすい。) ファイルシステム (ext4、xfsなど) ・HTTPなので、WAN(インターネット)で利用し やすい。(Firewallやロードバランサなど対応製 Blocks 品が多い) 10
  • 11.
    その他、オブジェクト・ストレージの特徴 データを『オブジェクト』として格納するのが、 オブジェクト・ストレージなのか? 多くのオブジェクト・ストレージが、分散システムとして実装されており、 以下の様な特徴も合わせ持つ ● 可用性   → Webサーバのクラスタがそうであるように、1台壊れてもサービスが止まらない。 ● 信頼性   → データを自動的に複数のサーバに複製(レプリケーション)する。     また、障害があった場合、そこからデータを復旧する。 ● 拡張性   → これもWebサーバがそうであるように、サーバを並列化することで     容量制限なく、サービスを止めることなく拡張が可能である     (=スケールアウト可能)。 11
  • 12.
    オブジェクト・ストレージの利用イメージ(1) ● IaaS用のストレージとして・・・ IaaS基盤ソフトウェア ・仮想マシンのOSイメージ ・OSインストール用isoファイル 管 ・スナップショット(バックアップ) 理 などの格納場所に利用 ファイル入出力 VMホストサーバ群 12
  • 13.
    オブジェクト・ストレージの利用イメージ(2) ● ファイルサーバとして・・・ ブラウザから スマ‐トフォン PC-ブラウザ HTTP通信なの で、スマート フォンなどマル チデバイス対 応もしやすい。 一般的なS3 クライ アントソフトから タブレット PC-S3クライアント 13
  • 14.
    オブジェクト・ストレージの利用イメージ(3) ● ContentsDelivery Serviceに・・・ データの 自動複製 リンク リンク ユーザ <A HREF=“http://.......”> レクト リダイ ユーザ 複製を利用して、ユーザ 動画や画像など大きなファイ の手近なロケーションにア ルは、オブジェクト・ストレージ クセスさせることで、負荷 Web/APサーバ に保存し、Webページからリン を低減する。 クする 14
  • 15.
  • 16.
  • 17.
    材料(例) ● Cloudianサーバ(IAサーバ) 3台∼   ・マニュアル上の推奨(?)スペック:     CPU: 2 quad-core Intel Xeon E5-2600     32GB RAM,12-2TB SAS2 HD (24TB total)     (実際は、ディスク以外、もう少し低スペックでもいいかも・・・) ● DNSサーバ 1台∼    ・必要に応じてPrimary +Secondery構成で・・・  ・サブドメイン部分をワイルドカード指定できるもの(BIND9などで可能) ● ロードバランサ 1台∼ ・LVSなどソフトウェアロードバランサでも可。    ・HTTPSを利用したい場合は、SSL対応のものを推奨。 (Cloudianサーバ側でもSSL対応しているが、証明書の管理の手間や、     振り分け方式への制約があるため) ● L2Switch 2台∼    ・ギガビット以上のL2/L3スイッチ。    ・もちろん、コストが許すなら10GbEなども可。 17
  • 18.
    システム構成例(サーバ、ネットワーク) 【3ノードでの例】  こんな感じ↓ にネットワーク機器とサーバを設置し接続します。 サービス・ネット データ同期ネット DNSサーバ Cloudianノード#1 エンドユーザ インターネット など ロードバランサ L2SW Cloudianノード#2 L2SW エンドユーザ Cloudianノード#3 ※ユーザアクセスネットワークと、データ同期用ネットワークは分けることを推奨します。 データ同期ネットワークでは、ユーザアクセスによるトラフィックの3倍程度のトラフィックがかか る場合があります。 18
  • 19.
    ディスク・レイアウト Diskは、1サーバ・10本以上を推奨。 RAID5やRAID6でも動作は OS領域 : 2本(RAID1) 可能 CassandraのCommitLog: 2本(RAID1) Data領域 : 6本(RAID 5+0)→ 現時点では、データ領域は 1パーティーションが推奨。 ミラー ミラー OS領域 CommitLog領域 データ領域 (RAID1) (RAID1) (RAID5+0) 書込頻度大 → 高速 なドライブを推奨 一般論として、レプリケーションをとる分散系システムでは、RAIDを組まない方が高速な 場合があるという話もありますが・・・ → ディスク故障時の手間や復旧に要する時間を考えると、RAIDを組んだ方が良い。  (1パーティーションで構成しているため、1本壊れても全データの復旧が必要になる。) 19
  • 20.
    OSの種類と設定 ・正式サポートされているOSは、CentOS 5.xまたは、RedHatEnterprise Linux 5.x  (ただし、RHEL/CentOS 6.1で2∼3ヶ月動かした範囲では特に問題は   発生しなかった。) ・ファイルシステムは、ext4  ‐ ext4は遅いと言う噂もあり、ジャーナリングをオフにするなどカスタマイズも試し    たがあまり、性能差を実感することはなかった。(※ Cassandra構成の場合)  ‐ ただし、1ノードで16TB以上を実現するには、xfs(RHEL 6.2で正式サポート)    などの採用の検討が必要。    ※ RHELではext4は、1パーティーション16TBまでしかサポートされていないため ・OSのリソース制限設定(limits.conf)の変更 ‐ デフォルトだと、使っているうちに問題が発生することも・・・ ‐ 例えば、CentOS6.xでは、nprocのデフォルト値が1024で、過負荷時に、 スレッドが生成できずにエラーが発生。 ・その他、必要に応じてJavaのチューニングも行います。 20
  • 21.
    Cloudian®のソフトウェア構成 インストールが完了すると、以下の様なプログラム(プロセス)が、各ノードで動作します。 Cloudian® ノード ユーザ・フロントエンド部 管理機能部 Cloudian Storage I/F Cloudian Cloudian Admin I/F (S3 Compatible I/F) Management (Administration I/F) Console ストレージ部 Reports AccountInfo Credentials DB Apache DB HyperStore Redis DB Cassandra Meta QoS User Data DB Data 21
  • 22.
  • 23.
    ファイルが複製される仕組みは? 【ファイルが複製される仕組み(RF(複製)=3・Write CL=QUORUM(定足数保証)の場合)】 ② 隣のノードに複製(レプリ 二番目に書き込まれるノードを カ)が生成される。 別データセンターにおいて置 ① ファイルが けば、2つのデータセンターに アップロードされ データが複製されることが保 ると・・・ 証される。 レプリカ レプリカ A B 他データセンター ⑤ 3つめの複製は、 同時に作成してい るが、応答は待た ない。(非同期) Token=0 Token=100 Token=200 ・Replication Factor = 更新完了  クラスタ内に作成する複製数 ③ 複製元に、複製 ・ConsistencyLevel = 正常応答 が完了した旨の応  書き込み(読み込み)の一貫性保証度 ファイル 答を返す。  ONE = 1ノードに書き込めれば成功 ④ 最初の書込と 複製数の合計が、  QUORUM=全複製数に対する最小過半 全複製数(3)の過   数書き込めれば成功 半数(2)を超えた 時点で、クライアン  ALL=全複製数、書き込めれば成功 トには、正常応答 を返す。 ※ Token: サーバを識別するIDの様なもの、実際は0∼2^127-1 23
  • 24.
    障害検証の結果(サマリ) 前頁の挙動を前提に、以下のような障害パターンを想定した検証を行いました。 ・ディスク障害 = 1パーティーション構成なので、ボリュームが壊れると、復旧 時間大 →RAID化を推奨 ・ノード障害 = 同一データのレプリカを持つノードが全て同時に壊れなければ 問題なし。 復旧時にはRepairコマンドが必要。 ・データセンタ障害(クラスタの分断) = データセンタまるごと障害が発生場合 もサービスレベルを維持したい場合は、レプリカ数を多めに設定した方が良い。 また、一時的にConsistencyLevelやReplication Factorの変更といった運用対 処も効果あり。 結果: データが復旧できなくなるような状況は発生しませ       んでした。 Ver.1.x(Cassandra Only)バージョンでは、復旧時間やデータ整合性確認の時間が長いなどの課題 もあったが、Ver.2.x(HyperStore)の登場で、劇的に改善! 24
  • 25.
    Amazon S3との互換性は?(API対応状況) 今後、サポートが表明されているAPIを含めれば、カバー率90%以上 ただし、現在、サポートされていないAPIも利用頻度が低いであろうものが多く・・・   → 主要APIは網羅されており、実用上問題なし! Operations Suported/unsupported カバー率 Operations on the Service 1/1 100% Operations on Buckets 11/26 42% Operations on Objects 11/16 69% Unsuppouted API Unsuppouted API LifeCycle (PUT/GET/DELETE) 一見、低く見えるがサポート Policy(PUT/GET/DELETE) DELETE Multi Objects されていないのは、利用頻 Website(PUT/GET/DELETE) GET Object torrent 度の低いAPI Notification (PUT/GET) POST Object Payment(PUT/GET) Upload Part ‐ Copy Head Bucket List Parts List Multipart Uploads 25
  • 26.
    Amazon S3との互換性は?(アプリ動作状況) 一般的なS3クライアントでの動作確認の例 Operations フォルダ操作 オブジェクト操作 バージョニング メタ情報操作 マルチパート Products (作成/読込/削除) (作成/読込/更新/削 (作成/読込/削除) アップロード 除) s3fs △(※) ○ S3fs-cなどでは ○ ‐ ‐ 設定で選択 可能 Dragon Disk ‐ ○ ○ ○ ○ 将来サポート 予定 s3curl ○ ○ ○ ○ ○ ※ s3fsではフォルダの作成方法が、他のS3クライアントと異なるため (s3fs側の制約) 凡例:○・・・主要機能で問題なく利用可能      ・・・Cloudianの問題で利用できない機能がある     ‐・・・クライアントソフト側で機能に対応していない 26
  • 27.
    OpenStack Swiftとの比較 No. 項目 Cloudian Swift 1 アーキテクチャ 二層(?)構造 P2P型  アクセス制御層(Auth&Proxyサー (全ノードが同一構成) バ)とストレージ層(Acct, Container, Objectサーバ) 2 API Amazon S3互換 RackSpace(CloudFiles)互換 REST I/F REST I/F 3 認証方式 メッセージ認証 トークンベースの認証 (共有秘密鍵でメッセージ (セッション毎にユーザ名とパスワー に署名) ドで認証) 4 主な管理方法 CMC(WebGUI) CUI Admin API(REST I/F) 5 QoS機能 有り 無し (容量、トラフィック量制限) 6 課金機能 有り 無し 7 商用サポート オープンソース 国内サポート有り (米国ではRackSpace社がサポートメ ニューを提供している模様) 27
  • 28.
    OpenStack Swiftとの比較 あくまで個人的な印象ですが・・・ OpenStack Swiftは・・・  ・AmazonS3との互換性は高くない。   → その代わり、RackSpaceのAPI互換がある。  ・使い勝手の部分で、発展途上な部分がある。   → GUI、管理系APIの有無、課金系機能などが不足。  ・オープンソースプロジェクトで規模も大きいため開発方針(機 能追加や統廃合など)や仕様(変更)の把握しにくさがある。 (保守性に懸念) 28
  • 29.
    まとめ の特徴 世の中のトレンド・・・ ・自動レプリケーションによる可用性 ビックデータ化 ・一貫性レベルによる信頼性 クラウド化 ・Amazon S3 APIによる汎用性 ・分散構成による拡張性 マルチデバイス化 ・国内商用サポートによる保守性 Cloudianは、これらのトレンドに 合致するソリューションである。 29
  • 30.
    最後に・・・・ NTTソフトウェアではCloudianのライセンス販売だけでなく、 ・セキュリティ/クラウド(OpenStackなど)/ビッグデータの分野 におけるお客様のご要望にあったシステム構成、ご利用方法 のご提案 ・これまでのCloudianの構築や検証経験などに基づいた導入支 援、検証支援 ・様々なシステム開発経験を生かしたユーザインターフェース や課金機能、監視機能などのカスタマイズ など、お客様に最適なソリューションのご提案をいたします。 30
  • 31.
    連絡先 【Cloudianに関するお問い合わせ】 NTTソフトウェア株式会社 ソリューション事業推進本部 ネットワーク・ソリューション事業部 第二事業ユニット   Cloudian担当: cloudian@cs.ntts.co.jp 【その他、弊社のソリューションについては・・・】 ● NTTソフトウェア・ホームページ http://www.ntts.co.jp/ 31
  • 32.