高速nosqlソリューションのご紹介...高速nosqlソリューションのご紹介...
TRANSCRIPT
-
高速NoSQLソリューションのご紹介
IBM東京ラボラトリー
システムズラボサービス
田中 宏幸
IBM Data Engine for NoSQL
-
広がるNoSQLの世界
• モバイル、ソーシャルなどのアプリケーションの爆発的な増加によって、軽量・高速かつスケーラブルなNoSQL(Not Only SQL)データベースが脚光を浴びています
– 従来様々な用途にリレーショナル・データベース(RDB)が使用されていましたが、新たなワークロードの台頭によってデータの一貫性や整合性よりも、高速かつスケーラブルなデータベースが求められています
– イン・メモリー型のNoSQL がこうした要求に応え、すでに多くの大規模ウェブサイトで重要な役割を担っています
• 多くの大規模ウェブ・サイトで使用され、商用IaaS/PaaSでもNoSQLサービスが提供されています
RDB • データの一貫性・整合性を重視 • 書き込みが少ないトランザクションに最
適化 • データをテーブルで管理
NoSQL • パフォーマンスやスケーラビリティを重視 • インメモリー・データベースによるパフォー
マンスの追及 • RDBのような表がない
モバイル、ソーシャルなど新たなワークロードの台頭により、RDBとNoSQLを
使い分けるのが一般的に・・・ 2
-
大規模イン・メモリNoSQLとx86システムの限界
• インメモリ型データベースは、搭載メモリ・サイズによってデータベースの大きさが制限されます
– x86システムでは、多くのサーバーのクラスタリングによって、メモリーサイズの制限を回避するのが一般的です
結果として、構築・運用が高コストで複雑なインフラとなってしまいます
x86システムでのインメモリNoSQLの構成例
WWW
ロードバランサー
512GB Cache Node
512GB Cache Node
512GB Cache Node
512GB Cache Node
512GB キャッシュ ノード
バックアップ ノード
10GB Uplink
【課題】
• クラスター構成によるインフラの複雑化
• クラスター間での高速なネットワーク帯域が必要
• 多数のサーバーによる占有スペース、電力コストの増大
• データベースを拡大するごとにサーバーの増設が必要
3
-
NoSQLへのIBMの答え
• 「POWER8」 + 「Flash as RAM」 = IBM Data Engine for NoSQL – CAPI接続型FlashSystemをメインメモリとして使用
• 大型フラッシュメモリーをメインメモリーとして利用する手段を提供
• CAPIによる高速でCPU負荷の少ないアクセス
– Redisのインメモリ・データベースをFlashSystemへ格納 • 低コストで高い集約率を実現
• NoSQLサービス実現のためのコストを大幅に削減
POWER8 + CAPI FLASH as RAM - 4Uで最大40TBのメモリ容量を実現
Power S822L/S812L
Ubuntu 14.10
FlashSystem 840
2TB to 40 TB Flash
WWW
• 高度な集約により、NoSQLインフラのTCOを大幅に削減
• POWER8サーバー+CAPI接続FLASHにより、最大40TBの拡張メモリをパフォーマンス低下なしで実現
• 爆発的に増加するモバイル、ソーシャルのワークロードを高速なNoSQLでサポート
x86サーバに対して 最大1:24の 高集約率
導入費用 最大1/3
4
-
Redis – インメモリNoSQL
• Redisは、非常に高速なインメモリ・KVS型NoSQLデータベースです
– BSDライセンスで配布されます
• 一般のKVSと比べて、比較的複雑なデータ構造を扱うことができます
– バイナリ・セーフな文字列、リスト、セット、ソート済みセット、ハッシュ、ビット配列(ビットマップ)、
HyperLogLogs
• データの永続化が可能です
– データべース全体のスナップショット(RDB)
– 定期的な差分バックアップ(AOF)
• CAPI-FLASHを使用することで、フラッシュメモリを使用しながらRAM並みのパフォーマンス
を達成しています
– 結果として、非常に低コストで高速・大規模なデータベースを構築可能となりました
5
-
POWER8 + CAPI Flash
CAPI FLASH:NoSQLソリューションへのインパクト
ロードバランサー
512GB Cache Node
512GB Cache Node
512GB Cache Node
512GB Cache Node
512GB キャッシュ ノード
WWW
バックアップ ノード
インフラの構成 • 分散・スケールアウト型 • 各ノードに高容量メモリ搭載 • 広帯域ネットワーク • ロードバランサー
今日のインメモリSQL(x86)
10GB Uplink
POWER8 サーバー
WWW
FlashSystem 最大 40TB
10GB Uplink
CAPI
インフラの構成 • 4Uで192スレッド実行可能 • 40TBのフラッシュをメインメモリとして使用 • キャッシュのチューニングによるホットスポット対策 • I/Oやネットワークのオーバーヘッドを解消!
インメモリNoSQLデータベースを最大40TBまで拡張。1ボックスでx86クラスタと同等性能を確保。
CAPI
POWER8のCAPI接続型フラッシュにより、 NoSQLサービスによる増加するコストと、インフラの複雑度を抑えることができます
24:1の インフラ削減
2.4xの 低コスト
12xの 省スペース
40TB
の拡張メモリ
IBM Data Engine for NoSQL
6
-
CAPIとは? Coherent Accelerator Processor Interface
7
FPGA
PowerPC Core
CA
PP
P
CIe
IBM Supplied PSL
Power Processor
Memory (Coherent)
プロセッサーに含まれるにより、外部デバイスからのメイン・メモリへのアクセスを可能に!
メイン・メモリへのアクセスは、通常のPCIeプロトコル上で動作するので、特別なI/Oやロジックを必要としません
外部デバイスをプロセッサーと同等に扱うことが可能となり、外部デバイスを扱うプログラムを容易に作成できます
• 初期化後のアプリケーションからのアクセスでは、デバイスドライバが不要に!
7
FPGAには、お客様独自のロジックを配置することも可能!(テクノロジー・プレビュー)
本製品の場合は、Flashへのアクセスのためのロジックを配置しています
-
CAPI FLASHは何が違うのか?
→ CPUの負担を軽減することで、100万IOPS当たり最大10コアを削減可能
500命令 以下
20万命令 アプリケーション
Posix Async
I/O Style API
ライブラリー
Shared Memory Work Queue
aio_read()
aio_write()
Pin buffers, Translate, Map DMA, Start I/O
アプリケーション
LVM
デバイスドライバ
Read/Write
Syscall
strategy() iodone()
ファイルシステム
strategy() iodone()
Interrupt, unmap, unpin,Iodone scheduling
CAPP
Coherence Bus CAPI
Custom Hardware
Application
PSL
FPGA or ASIC
I/Oに必要な命令数を大幅に削減 I/O実行時のメモリコピーを抑制
• 外部ハードウエアが直接仮想メモリへアクセス
→ 余分なメモリコピーが無い • ユーザーモードのプロセスが直接外部ハードウエアと通信可能
→ カーネルモードへのコンテクストスイッチを抑制
• 容易なプログラミング → 通常のアプリケーションと同じプログラミングモデルを適用可能
• 外部フラッシュを高速にアクセスできるだけでなく、CPUの負荷を大幅に軽減することが可能
– Read/Write I/O実行時に必要な命令数を97%削減!
– I/O実行時につきもののメモリコピーやコンテクストスイッチを抑制!
8
-
同じFlashSystemを使い 2種類のアクセス方法を比較
CAPI FLASHにより、CPU負荷の軽減と低遅延を実現
Power S822L
Flash System 840
従来の PCIe I/O
0
20000
40000
60000
80000
100000
120000
PCIe I/O CAPI +
FPGA
0
50
100
150
200
250
300
350
400
450
500
PCIe I/O CAPI + FPGA
1つのHWスレッドで 処理可能なIOPs
データベース アクセスの遅延
9
-
IBM FlashSystemの卓越したパフォーマンス
FlashSystem 840
超高速アクセスを実現する外付けフラッシュ・ストレージ装置 高速性を追求した独自のオリジナル設計
SSDを超えるパフォーマンスを提供 ディスクをエミュレートするSSDとは異なる設計 フラッシュ・メモリーを「メモリー」として扱うデザイン
メモリーならではの可用性の提供 2次元方向にRAID機能を提供(2D RAID) メモリー・チップ障害時に構成単位を変化させる
RAIDの提供(Variable Stripe RAID™ :VSR)
1Uまたは2Uのコンパクトな筐体 1Uサイズで最大24TB、2Uで最大48TBもの大
容量を提供 標準ラックに対応、スペース利用効率が高い
40万~110万 IOPS を実現
-
RedisとCAPI-Flash
• RedisはAPIを通じて、CAPI-Flashへアクセスします
– 初期設定が終わった後は、デバイス・ドライバを経由せずにRedisが直接アクセスします
– CAPI-Flashへのアクセスは、メイン・メモリを通じて行います
• データは直接FlashSystemへ保存され、頻繁にアクセスのあるデータはRAM上に保存されます
Data Engine for NoSQLの
ソフトウエア・コンポーネント
APP
RAM
Redis
CAPI Flash
System
RedisとFlashSystem
POWER8システム
11
-
構成例
FlashSystem 840 X 1台 最大40TB
FlashSystem 1台へ最大3台のサーバー
を接続可能
8Gb FC接続
S822L X 1~3台
Corsa CAPI Card X 2 (1台につき)
Ubuntu 14.10 (LE)
Big Redis
12
-
応用例
頻繁に更新のあるデータや、大量のデータを高速に保存したいようなケースで、NoSQLが使用されるこ
とが多いようです。また、SQL DBを単なるKVSの代用として使っている場合もあり、こうした場合にも
NoSQLを適用することで効率化を図ることができます。
大規模なKVS • 大規模な解析用データの保存場所 • リアルタイムに増えるデータの保存場所
ソーシャル・アプリケーション • ユーザーに関するデータの保存、アクセス中ユーザーのカウント • ランキング・データ、タイムラインの生成、よくアクセスされるタグのリスト
その他 • SQLデータベースに対するキャッシュ • memcachedの置き換え • LAMP(Linux, Apache, MySQL, PHP) の置き換え
MEAN(MongoDB, Express, AngularJS, Node.js)
13
-
ありがとうございました
14
-
参考情報
■IBM Data Engine for NoSQL製品情報
http://www-06.ibm.com/jp/press/2014/10/0601.html
http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=PM&subtype=SP&htmlfid=POS03135USEN&appname=TAB_2_2_Appname#loaded
■ホワイト・ペーパー(CAPIおよびIBM Data Engine for NoSQL)
http://www-304.ibm.com/webapp/set2/sas/f/capi/home.html
15
http://www-06.ibm.com/jp/press/2014/10/0601.htmlhttp://www-06.ibm.com/jp/press/2014/10/0601.htmlhttp://www-06.ibm.com/jp/press/2014/10/0601.htmlhttp://www-06.ibm.com/jp/press/2014/10/0601.htmlhttp://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=PM&subtype=SP&htmlfid=POS03135USEN&appname=TAB_2_2_Appnamehttp://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=PM&subtype=SP&htmlfid=POS03135USEN&appname=TAB_2_2_Appnamehttp://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=PM&subtype=SP&htmlfid=POS03135USEN&appname=TAB_2_2_Appnamehttp://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=PM&subtype=SP&htmlfid=POS03135USEN&appname=TAB_2_2_Appnamehttp://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=PM&subtype=SP&htmlfid=POS03135USEN&appname=TAB_2_2_Appnamehttp://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=PM&subtype=SP&htmlfid=POS03135USEN&appname=TAB_2_2_Appnamehttp://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=PM&subtype=SP&htmlfid=POS03135USEN&appname=TAB_2_2_Appnamehttp://www-304.ibm.com/webapp/set2/sas/f/capi/home.htmlhttp://www-304.ibm.com/webapp/set2/sas/f/capi/home.htmlhttp://www-304.ibm.com/webapp/set2/sas/f/capi/home.htmlhttp://www-304.ibm.com/webapp/set2/sas/f/capi/home.html
-
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。
それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありません。
本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。
本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示
されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。IBM、IBM ロゴ、ibm.com、Cognos、DB2、IBM Flash System、MicroLatency、Power、POWER、POWER6、POWER6+、POWER7、POWER7+、POWER8、PowerVM、SPSS、Watson、およびスマータープラネットアイコンは、世界の多くの国で登録されたInternational Business Machines Corporationの商標
です。
他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。
現時点でのIBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, およびPentium はIntel Corporationまたは子会社の米国およびその他の国における商標または登録商標です。
Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。
Microsoft, Windows, Windows NT およびWindowsロゴはMicrosoft Corporationの米国およびその他の国における商標です。
JavaおよびすべてのJava関連の商標およびロゴはOracleやその関連会社の米国およびその他の国における商標または登録商標です。
Linear Tape‐Open, LTO, LTOロゴ, UltriumおよびUltriumロゴは、HP, IBM Corp.およびQuantumの米国およびその他の国における商標です。