高速nosqlソリューションのご紹介...高速nosqlソリューションのご紹介...

16
高速NoSQLソリューションのご紹介 IBM東京ラボラトリー システムズラボサービス 田中 宏幸 IBM Data Engine for NoSQL

Upload: others

Post on 20-May-2020

0 views

Category:

Documents


0 download

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の米国およびその他の国における商標です。