分散 KVS の概要と okuyama の紹介 · データベースソフトウェアの分類 RDBMS NoSQL 一貫性重視 スケールアップ ・Oracle ・MySQL ・PostgreSQL etc.
分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~
-
Upload
masahito-zembutsu -
Category
Technology
-
view
2.693 -
download
3
Transcript of 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~
![Page 1: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/1.jpg)
分散KVSをサービス化してみた分散 サ 化 てみた「Okuyama (KVS) も、 Fusion-IO (ioDrive) も、あるんだよ」
~分散KVS技術を利用したサービス事例~株式会社リンク 前佛雅人 (@zembutsu)スクエアfreeセミナー第9回 Jul 28, 2011
![Page 2: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/2.jpg)
AgendaAgenda
プ• I. ソーシャルアプリとインフラ
• II 分散KVSのサービス化II. 分散KVSのサ ビス化
– なぜサービス化する必要が?
li kアプリプラ トフ ム– at+linkアプリプラットフォーム
– Okuyama & ioDrive
– プロジェクトの方向性
• III 管理画面• III. 管理画面
• Q&A, Discussion
![Page 3: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/3.jpg)
About meAbout me
前佛雅• @zembutsu 前佛雅人– 株式会社リンク
デ ベ パ サポ ト部 シ ア ンジ アディベロッパーサポート部 シニアエンジニアat+link専用サーバサービスの運用サポートhttp://www.at‐link.ad.jp/アプリプラットフォーム
– 活動:クラウド界隈に出没• Open Cloud Campus, JEUG(Eucalyptus ユーザ会)
• JAWS‐UG、OpenStackユーザ会、CloudStackユーザ会
![Page 4: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/4.jpg)
About meAbout me
執筆• 執筆:• G‐CLOUD Magazine G‐CLOUD Magazine 2011 Summer
2010年8月6日発売 2011年6月29日発売
1章~3章 AWS入門記事 5章 RightScale
![Page 5: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/5.jpg)
ソーシャルアプリとインフラ環境
I. APPLICATION FOR SNSソ シャルアプリとインフラ環境
![Page 6: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/6.jpg)
SNSSNS
• Social Networking Service
![Page 7: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/7.jpg)
SNS membershipSNS membership3000
2500
3000
2000
:万
人)
i i
1000
1500
人数(単
位 mixi
mobage
GREE
500
0
![Page 8: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/8.jpg)
ソーシャルアプリソーシャルアプリ
連携 提供される ビ• SNS と連携して提供されるサービス
– SNSの会員情報と、外部のサービスを連携会員情報 、外部 サ を連携
– SNS プラットフォームがオープン化の流れ (2010)
会員数2 000万人以上• 会員数2,000万人以上
– ソーシャルグラフ・口コミによる利用者増加
![Page 9: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/9.jpg)
ソーシャルアプリ向けサーバ構成ソーシャルアプリ向けサーバ構成
般的なウ ブ ビ 違う点• 一般的なウェブサービスとは違う点
– システムの規模が見積もりにくいシ テ 規模 見積もり く
– 状況に応じて、サーバリソースの増減が必要
SNS独特の課題が発生• SNS独特の課題が発生
![Page 10: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/10.jpg)
考慮すべき点考慮すべき点
SNS PLATFORM
User APIprofile
ソーシャルアプリサービス用サーバ
API
情報
• 5秒ルール/ジョイン停止
サービス用サーバ
5秒ル ル/ジョイン停止
• キャッシュサーバの利用による高速応答
![Page 11: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/11.jpg)
分散KVSのサービス化
II. APPLI‐PLATFORM WITH KVS分散KVSのサ ビス化
![Page 12: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/12.jpg)
ソーシャルアプリの課題ソーシャルアプリの課題
高速なウ ブ応答の必要性• 高速なウェブ応答の必要性– SNS認証情報のキャッシュ
– 負荷分散• ウェブサーバの負荷分散
• キャッシュサーバの分散
• データベースのsharding
– ディスク I/O の最適化
• オンデマンドな利用形態オンデ ンドな利用形態– 必要な時に必要なだけ(クラウド的な…)
![Page 13: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/13.jpg)
従来のホスティング従来のホスティング
バ追加が大変• サーバ追加が大変
– 納期確認・調整納期確認 調整
• サーバを減らすのも大変
初期 ト• 初期コスト
• これらの問題を解決する新しい枠組み「 t li kアプリプラ トフォ ム 」「 at+linkアプリプラットフォーム 」2010年11月スタート
![Page 14: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/14.jpg)
Our SolutionOur Solution
サ バをオンデマンドで利用可能に• サーバをオンデマンドで利用可能に– 初期費用無償
ダ– 管理画面でオーダー・90分後に設置
• ディスク I/O 問題を高速デバイスで解決– Fusion‐IO社の ioDrive– 通常のサーバの約 3~4 倍の性能
• キャッシュサーバをオンデマンドで提供– 分散 KVSの Okuyama分散 KVS の Okuyama– 神戸デジタルラボの岩瀬氏(@okuyamaoo)開発
• オープンソース
![Page 15: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/15.jpg)
at+linkアプリプラットフォームat+linkアプリプラットフォーム
ビ 提供 枠組• サービス提供の枠組み
Application Platform Okuyama
Request
KVS
UserOn demand
Fusion-IO ioDrive
![Page 16: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/16.jpg)
featurefeature
初期費用 円• 初期費用0円– トラフィック・データ転送量課金無し(1Gbps共用)– ロードバランサ・ファイアウォール標準
• ioDrive(Fusion‐IO)が利用可能ioDrive(Fusion IO)が利用可能
• サーバ追加90分以内
KVS( k )• KVS(okuyama)• HTTP 応答時間監視
• Muninによるリソース監視
![Page 17: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/17.jpg)
FusionIO Disk I/OFusionIO Disk I/O
S ti l d• Sequential read– ioDriveが圧倒的に速い約500MB/sec
• SASの 3~ 4倍• SAS の 3 ~ 4 倍• SSD の 2 倍
• Sequential writeSequential write– SAS RAID と同程度の書き込み性能
• Random read/writeRandom read/write– 並行処理が増えても、スループットが安定
• MySQLMySQL– トランザクション・同時接続数が増えても、安定したスループット
![Page 18: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/18.jpg)
ioDrive Sequential ReadioDrive ‐ Sequential Readread 平均 [MB/sec]
600.00
400.00
500.00
300.00
100.00
200.00
0.00
IDE (5,400rpm) SATA (7,200rpm) SAS (15,000rpm) SAS RAID1(15,000rpm)
SSD (X25‐E Extreme SATA SSD)
ioDrive
– hdparm –t <device> で測定、30回平均
( , p ) )
![Page 19: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/19.jpg)
ioDrive Sequential writeioDrive ‐ Sequential write1400
write [MB/sec]
1200
800
1000
IDE (5 400rpm)
600
800 IDE (5,400rpm)
SATA (7,200rpm)
SAS (15,000rpm)
SAS RAID1
400
ioDrive
0
200
4k 16k 64k 256k 1024k 4096k 16384k 65536k
• “dd” でファイル作成 時間を計測4k 16k 64k 256k 1024k 4096k 16384k 65536k
![Page 20: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/20.jpg)
ioDrive Randam read/writeioDrive ‐ Randam read/writedbench (NFS) througput
1200
1400
1000
600
800
MB/Sec SSD
ioDrive
SAS(RAID1)
SA A
400
SATA
0
200
• dbench (http://dbench.samba.org/) 1 16 32 64 128
![Page 21: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/21.jpg)
ioDrive Sysbench OLTP(MySQL)ioDrive ‐ Sysbench OLTP(MySQL)
• Sysbench Transaction12000000
10000000
12000000
6000000
8000000
other
4000000
6000000write
read
threads
2000000
0
![Page 22: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/22.jpg)
Okuyama on at+linkOkuyama on at+link
分散 プ• 分散 KVS okuyamaはオープンソース
• ソーシャルアプリ向けにカスタマイズソ シャルアプリ向けにカスタマイズ
– サービスの継続性を重視
冗長化 ( S)– 冗長化 (LVS)
– 内部でのデータ保全性
• 専用サーバでありながら、PaaS的なサービス
利用者のインフラ管理負担を軽減– 利用者のインフラ管理負担を軽減
![Page 23: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/23.jpg)
分散 KVSサービス化の利点分散 KVS サービス化の利点
d d• On demand use• Memcached protocol compatiblep p• Free ( until 1GB )• Maintenace free←とても重要• Maintenace free ← とても重要
– ユーザサイドによる冗長化のため サ ビスが停止しない• LVS による冗長化のため、サービスが停止しない
– 提供者サイドドが故障し も デ タ保全• ノードが故障しても、データ保全
• ノードメンテナンスが無停止で可能
![Page 24: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/24.jpg)
Okuyama’s technologyOkuyama s technology
http://www.kdl.co.jp/service/okuyama/
![Page 25: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/25.jpg)
PricingPricing
キ バ機能• キャッシュサーバ機能
![Page 26: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/26.jpg)
TeamTeam
体制• 体制
Application PlatformOkOkuyama
![Page 27: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/27.jpg)
Projection and milestonesProjection and milestones
• Cache Server << RELEASED– memcached compatiblep
• Image cache server << 2011S CDN ( h )– Same as CDN ( http )
• Log Storage << 2011g g– Permanentaly log storage server
• Additional function (?)• Additional function (?)– Log Analytics ( on the table )
![Page 28: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/28.jpg)
Status and timelineStatus and timeline
プ プ 分散• アプリプラットフォーム&分散KVS
2010.11 2011.03 2011.08 10 ?
2010 20122011
Analytics( Hadoop relation? )
Service Released Log Storage (KVS)( Hadoop relation? )
Okuyama Cache Function (KVS)
Image Cache (KVS)
![Page 29: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/29.jpg)
サービスのまとめサービスのまとめ
プ プ• at+linkアプリプラットフォーム
– ソーシャルアプリ特化型インフラ基盤ソ シャルア リ特化型イン ラ基盤
– 初期費用無償・オンデマンドでサーバ利用
i D i (F i IO)でディスクI/Oの問題を解決• ioDrive(FusionIO)でディスクI/Oの問題を解決
• 分散KVSとしてokuyamaを採用y– memcached互換のキャッシュ機能を提供
画像キャッシュ・ログ保存機能を開発中– 画像キャッシュ・ログ保存機能を開発中
「Fusion‐IOもKVSもあるんだよ」
![Page 30: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/30.jpg)
at+linkアプリプラットフォーム専用コントロールパネル
III. SERVICE CONTROL PANELat linkアプリプラットフォ ム専用コントロ ルパネル
![Page 31: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/31.jpg)
FrontpageFrontpage
![Page 32: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/32.jpg)
Server detailsServer details
![Page 33: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/33.jpg)
Contact formContact form
![Page 34: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/34.jpg)
Server orderServer order
![Page 35: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/35.jpg)
Server orderServer order
![Page 36: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/36.jpg)
KVS(cache) orderKVS(cache) order
![Page 37: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/37.jpg)
質疑応答
Q&A, DISCUSSION質疑応答
![Page 38: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~](https://reader034.fdocument.pub/reader034/viewer/2022042700/5561554cd8b42a8a7d8b530f/html5/thumbnails/38.jpg)
Thank you for listening!Thank you for listening!
ご静聴あ が うござ ま た• ご静聴ありがとうございました。
• Contacts– at+link専用サーバ・サービスアプリプラットフォームat+link専用サ バ サ ビスアプリプラットフォ ム
http://www.at‐link.ad.jp/appli_platform/
– 株式会社リンク前佛雅人 (Masahito Zembutsu)T itt @ b t– Twitter: @zembutsu
– E‐mail: [email protected]
– Tel: 03‐5785‐0555