Cloudian nosql casestudy_20120318

10,541 views

Published on

2012年3月18日開催InfoTalkにおけるプレゼンテーション資料です。Cloudianの概要、CloudianへのCassandraとRedisの実装、NOSQLデータベースの性能比較、独自開発のHyperStoreについて説明しています。

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,541
On SlideShare
0
From Embeds
0
Number of Embeds
8,106
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Cloudian nosql casestudy_20120318

  1. 1. S3 REST API完全準拠クラウドストレージCloudian®におけるNOSQL活用事例InfoTalk — Spring Break 2012 (NoSQL) #infotalkMarch 18th, 2012Tatsuya Kawano @tatsuya6502ジェミナイ・モバイル・テクノロジーズ
  2. 2. 本日の内容1.Cloudian の概要 ®2.Cassandra in Cloudian3.Cassandraのデータモデル4.HyperStore™5.HyperStoreの性能
  3. 3. 7620億オブジェクト!出典: Amazon Web Services Blog
  4. 4. S3エコシステム を利用できるターンキー・パッケージソフトウェア
  5. 5. 2011年8月1日ベータサービスを開始
  6. 6. 2011年9月29日Niftyクラウドストレージサービス 開始
  7. 7. S3エコシステム ユーザー・ツール エンタテインメント バックアップ ファイル共有 マイクロブログエンタープライズ・ソリューション ファイル・システム API ソフトウェア
  8. 8. ユースケースサービスプロバイダー向け エンタープライズ向け価格競争力に優れたクラウド・ストレー SAN / NAS といった外付けハードディスジサービスの提供が可能に クのバックアップや代替えとして対象:通信キャリア、クラウドサービス・プロバイダー、 対象:アプライアンス・ベンダー、システム・インテグレーター、   データセンター等 通信キャリア、クラウドサービス・プロバイダー、データセンター等
  9. 9. Cloudian®:マルチテナント型クラウドストレージシステム1. ターンキー・パッケージング・ソフトウェア製品 •S3 REST API 完全準拠 • 既存 S3 アプリがそのまま動作 • ソフトウェアライセンス、保守、 アップグレードの全てを含む、 ソフトウェア使用料金2. 安全かつ低廉なストレージ • NOSQL データベースを使用 • 単一障害点(SPOF)が無い •マルチデータセンター機能3. 柔軟な管理機能 • 従量制課金ができる統計・課金計算機能 •マルチテナント機能 • パブリッククラウド、プライベートクラウド両方に対応
  10. 10. S3 API準拠の実現方法一般的な「S3 準拠」のストア Cloudian S3サーバ(ネイティブ) S3 HyperStore S3 アダプタ API S3 ネイティブAPI API ネイティブ API データ・ストア データ・ストア 重複部分のみサポート。 ネイティブS3 サーバなら S3に新機能が追加されると S3 API に完全対応できる その差が拡大
  11. 11. Cassandra in CloudianなぜCassandraを選んだのか?•スケーラブル• 稼働中のシステムにノードを追加することでスケールアウトできる• 分散型(P2Pアーキテクチャー)、単一障害点がない•信頼性が高い• ネットワークやハードウェア故障への耐性がある• データセンター間レプリケーション• データの一貫性レベルが調整可能•高速• 特に書き込みが高速
  12. 12. 複数のNOSQLを評価 遅延時間の バリューサイズ 遅延時間の中央値 30分間で 95パーセンタイル値 スループット (ミリ秒) 処理した (ミリ秒) (件/秒) 1KB 件数 Get Put Get PutHibari 0.1.8 1.027 1.676 3.069 2.881 8,775 15,804,196Cassandra 1.0 1.016 0.949 2.476 4.789 8,748 15,755,306Cassandra 0.8.6 1.282 0.948 5.729 2.243 8,700 15,668,017Riak 1.0.1 3.281 5.541 22.296 74.663 8,489 15,288,692LevelDBHBase 0.90.4 3,278 3.692 13.045 13.754 8,404 15,135,436CDH3u2出典:「NOSQLの基礎知識」 リックテレコム、2012年4月出版予定
  13. 13. Cloudian™の論理アーキテクチャ Admin 認証情報 サーバー (Redis) HTTPS ログイン HTTP QoS DBアカウント設定/ HTTPS 管理コンソール S3サーバーセキュリティキー Servlets (Redis) HTTP レポート HTTPData Explorer データサーバー ユーザーデータ (Cassandra) ウェブUI アカウント情報 (Cassandra) HTTP or HTTPS (S3) レポートアプリケーション (Cassandra) 13
  14. 14. ネットワーク構成: 高可用性の最小構成 管理 コンソール 認証情報/QOS (Redis)UIからの HTTP/HTTPS S3/Adminブラウザー サーバー Sticky Cassandraリクエスト セッションアプリケーション LBからの HTTP/HTTPSS3リクエスト 管理 コンソール Cred/QOS (Redis) S3/Admin サーバー Cassandra
  15. 15. ネットワーク構成:マルチデータセンター構成の一例 管理 管理 管理 管理 コンソール コンソール コンソール コンソール S3/Admin S3/Admin S3/Admin S3/Admin Cassandra Cassandra Cassandra Cassandra サーバー サーバー サーバー サーバー Redis Redis Redis Redis マスター スレーブ マスター スレーブ S3/Admin S3/Admin S3/Admin S3/Admin Cassandra Cassandra Cassandra Cassandra サーバー サーバー サーバー サーバー データセンター1 データセンター2 ユーザーは S3 バケット名により ホームDC(データセンター)にルーティングされる S3/Adminサーバーは ホームDC にデータを保存 S3オブジェクト、レポート、ユーザー情報は、CassandraによりDC間で複製される 認証情報/QOS情報は、RedisによりローカルDCとリモートDCのスレーブへ複製される
  16. 16. オブジェクトストアとしてのCassandra• BLOBストレージ • グループごとに column family を作成 • 行キー <バケットID>/<オブジェクトID>• オブジェクトのメタデータ • ACL (アクセスコントロールリスト)、オブジェクトのサイズ・・・ • Cassandra 行キャッシュを活用• 巨大なS3オブジェクトのサポート • マルチパート Amazon S3 multi-part APIを使ってアップロード • チャンキング 大きなオブジェクトを小さなチャンク(例 10MB)に分割して保存 • HTTPレンジヘッダー ダウンロード時は HEAD リクエストでオブジェクトのサイズを 取得してから、スタートのバイト位置と長さを指定してダウンロード • HyperStore™ 巨大なオブジェクトをネイティブなファイルシステムに保存
  17. 17. Cassandraにアカウント情報を格納データモデル•ユーザー •- ID, name, contact info, など•グループ•レーティングプラン• セキュリティ認証情報(Credentials)NOTES• 静的 データ。カラム数は固定• ユーザーCFのgroupIDに二次インデックスを作成• MySQLなどのリレーショナルDBに格納することもできるが、 構成要素を増やしたくなかった
  18. 18. Cassandra for Reportsデータモデル• Raw column family • ユーザー、グループ • トランザクションタイプ(HTTP GET、PUT、DELETE) • オブジェクトのパス(path) • サイズ• Rollup column families. • RollupHour   1時間ごとの利用状況をRawデータから集計 • RollupDay   毎日の利用状況をRawデータから集計 • RollupMonth  毎月の利用状況をRawデータから集計NOTES• 読み書き比率:書き込み > 読み出し• Cassandra の TTL (time-to-live) で自動削除
  19. 19. Cassandraの課題大きなデータの扱いで性能が劣化ディスクの使用効率が悪い 19
  20. 20. 大きなデータの扱いで性能が劣化 遅延時間の 遅延時間の中央値 30分間で バリューサイズ 95パーセンタイル値 スループット (ミリ秒) 処理した (ミリ秒) 100KB (件/秒) 件数 Get Put Get PutHibari 0.1.8 9.268 12.299 61.914 75.934 2,073 3,733,136Cassandra 1.0 28.551 9.992 379.745 155.680 1,699 3,060,198Cassandra 0.8.6 34.099 8.402 1,015.888 333.048 1,336 2,406,446バリューサイズ 1KBHibari 0.1.8 1.027 1.676 3.069 2.881 8,775 15,804,196Cassandra 1.0 1.016 0.949 2.476 4.789 8,748 15,755,306Cassandra 0.8.6 1.282 0.948 5.729 2.243 8,700 15,668,017出典:「NOSQLの基礎知識」 リックテレコム、2012年4月出版予定
  21. 21. HyperStore™(特許出願中) Admin 認証情報HyperStore サーバー (Redis) • ストレージのハイブリッド化により S3 QoS サーバー (Redis) 処理性能とディスク利用効率の向上を実現 • オブジェクトの大きさに応じて データストア 最適なストレージを自動選択 HyperStore™ Manager メタデータは引き続きCassandraに格納 Data Store (Cassandra) パーティショニング、レプリケーション、ノード の死活監視は、Cassandraの分散機能を使用 Cloudian® サーバー Accounting Cassandraのソースをフォークしてカスタマイズ (Cassandra) Reporting (Cassandra)
  22. 22. HyperStore: ハイブリッドストアの例 Storage 1 Storage 2 最適値 optimal 平均 U遅延時間 X オブジェクトサイズ
  23. 23. HyperStore: レイテンシーの測定 50.0 37.5 >30% fasterms 25.0 PUT-Cass 12.5 PUT-HS 0 0 1 10 100 1000 KB 60.0 45.0 >400% fasterms 30.0 GET-Cass GET-HS 15.0 0 0 1 10 100 1000 KB
  24. 24. まとめ:NOSQLは目的に特化したデータベース•NOSQL製品にはそれぞれの得意分野がある •トレードオフを見極めて複数の製品を使い分けることが重要•Cloudianの例 •Cassandra オブジェクト、メタデータ、アカウント、ログ •書き込みが高速で、耐障害性とスケーラビリティに優れる •複数データセンターのサポート •Redis 認証情報、QoS •超高速だが、永続性とスケーラビリティに難あり 24
  25. 25. まとめ:NOSQLは目的に特化したデータベース• ひとつの製品にロックインしないアーキテクチャ•HyperStore™ •巨大なオブジェクトをファイルシステムに格納 •ローカル以外のファイルシステムにも対応可能•CloudianではNOSQLストレージの置き換えも可能 •Hibari 高速、安定性、省メモリー、単一データセンター  → ARMベースの超省電力サーバーファーム? •Riak 安定性、複数データセンター(エンタープライズ版) •OpenStack Swift
  26. 26. まもなく書籍が出版されます「NOSQLの基礎知識」 出版社:リックテレコム•4月中に発売予定•本日説明した性能評価の他、NOSQLの基礎技術を代表的なNOSQLデータベース15製品の評価とともに可能な限り分かりやすく解説 26
  27. 27. Cloudianのフリートライアル版のお申し込み日本語: http://geminimobile.jp/big-data-solutions/cloudian_eval_agr.php5English: http://geminimobile.com/cloud-solutions/cloudian_eval_agr.php 27

×