分散kvsをサービス化してみた ~okuyama(kvs)もfusion-io(iodrive)もあるんだよ~

38
分散KVSをービスてみた 「 Okuyama (KVS) も、 Fusion-IO (ioDrive) も、あるんだよ 」 ~分散KVS技術を利用したサービス事例~ 株式会社リンク 前佛雅人 (@zembutsu) スクエアfreeセミナー第9回 Jul 28, 2011

Upload: masahito-zembutsu

Post on 24-May-2015

2.693 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

分散KVSをサービス化してみた分散 サ 化 てみた「Okuyama (KVS) も、 Fusion-IO (ioDrive) も、あるんだよ」

~分散KVS技術を利用したサービス事例~株式会社リンク 前佛雅人 (@zembutsu)スクエアfreeセミナー第9回 Jul 28, 2011

Page 2: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

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)もあるんだよ~

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)もあるんだよ~

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)もあるんだよ~

ソーシャルアプリとインフラ環境

I. APPLICATION FOR SNSソ シャルアプリとインフラ環境

Page 6: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

SNSSNS

• Social Networking Service

Page 7: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

SNS membershipSNS membership3000

2500

3000

2000

:万

人)

i i

1000

1500

人数(単

位 mixi

mobage

GREE

facebook

500

facebook

0

Page 8: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

ソーシャルアプリソーシャルアプリ

連携 提供される ビ• SNS と連携して提供されるサービス

– SNSの会員情報と、外部のサービスを連携会員情報 、外部 サ を連携

– SNS プラットフォームがオープン化の流れ (2010)

会員数2 000万人以上• 会員数2,000万人以上

– ソーシャルグラフ・口コミによる利用者増加

Page 9: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

ソーシャルアプリ向けサーバ構成ソーシャルアプリ向けサーバ構成

般的なウ ブ ビ 違う点• 一般的なウェブサービスとは違う点

– システムの規模が見積もりにくいシ テ 規模 見積もり く

– 状況に応じて、サーバリソースの増減が必要

SNS独特の課題が発生• SNS独特の課題が発生

Page 10: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

考慮すべき点考慮すべき点

SNS PLATFORM

User APIprofile

ソーシャルアプリサービス用サーバ

API

情報

• 5秒ルール/ジョイン停止

サービス用サーバ

5秒ル ル/ジョイン停止

• キャッシュサーバの利用による高速応答

Page 11: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

分散KVSのサービス化

II. APPLI‐PLATFORM WITH KVS分散KVSのサ ビス化

Page 12: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

ソーシャルアプリの課題ソーシャルアプリの課題

高速なウ ブ応答の必要性• 高速なウェブ応答の必要性– SNS認証情報のキャッシュ

– 負荷分散• ウェブサーバの負荷分散

• キャッシュサーバの分散

• データベースのsharding

– ディスク I/O の最適化

• オンデマンドな利用形態オンデ ンドな利用形態– 必要な時に必要なだけ(クラウド的な…)

Page 13: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

従来のホスティング従来のホスティング

バ追加が大変• サーバ追加が大変

– 納期確認・調整納期確認 調整

• サーバを減らすのも大変

初期 ト• 初期コスト

• これらの問題を解決する新しい枠組み「 t li kアプリプラ トフォ ム 」「 at+linkアプリプラットフォーム 」2010年11月スタート

Page 14: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

Our SolutionOur Solution

サ バをオンデマンドで利用可能に• サーバをオンデマンドで利用可能に– 初期費用無償

ダ– 管理画面でオーダー・90分後に設置

• ディスク I/O 問題を高速デバイスで解決– Fusion‐IO社の ioDrive– 通常のサーバの約 3~4 倍の性能

• キャッシュサーバをオンデマンドで提供– 分散 KVSの Okuyama分散 KVS の Okuyama– 神戸デジタルラボの岩瀬氏(@okuyamaoo)開発

• オープンソース

Page 15: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

at+linkアプリプラットフォームat+linkアプリプラットフォーム

ビ 提供 枠組• サービス提供の枠組み

Application Platform Okuyama

Request

KVS

UserOn demand

Fusion-IO ioDrive

Page 16: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

featurefeature

初期費用 円• 初期費用0円– トラフィック・データ転送量課金無し(1Gbps共用)– ロードバランサ・ファイアウォール標準

• ioDrive(Fusion‐IO)が利用可能ioDrive(Fusion IO)が利用可能

• サーバ追加90分以内

KVS( k )• KVS(okuyama)• HTTP 応答時間監視

• Muninによるリソース監視

Page 17: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

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)もあるんだよ~

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)もあるんだよ~

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)もあるんだよ~

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)もあるんだよ~

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)もあるんだよ~

Okuyama on at+linkOkuyama on at+link

分散 プ• 分散 KVS okuyamaはオープンソース

• ソーシャルアプリ向けにカスタマイズソ シャルアプリ向けにカスタマイズ

– サービスの継続性を重視

冗長化 ( S)– 冗長化 (LVS)

– 内部でのデータ保全性

• 専用サーバでありながら、PaaS的なサービス

利用者のインフラ管理負担を軽減– 利用者のインフラ管理負担を軽減

Page 23: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

分散 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)もあるんだよ~

Okuyama’s technologyOkuyama s technology

http://www.kdl.co.jp/service/okuyama/

Page 25: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

PricingPricing

キ バ機能• キャッシュサーバ機能

Page 26: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

TeamTeam

体制• 体制

Application PlatformOkOkuyama

Page 27: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

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)もあるんだよ~

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)もあるんだよ~

サービスのまとめサービスのまとめ

プ プ• 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)もあるんだよ~

at+linkアプリプラットフォーム専用コントロールパネル

III. SERVICE CONTROL PANELat linkアプリプラットフォ ム専用コントロ ルパネル

Page 31: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

FrontpageFrontpage

Page 32: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

Server detailsServer details

Page 33: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

Contact formContact form

Page 34: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

Server orderServer order

Page 35: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

Server orderServer order

Page 36: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

KVS(cache) orderKVS(cache) order

Page 37: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

質疑応答

Q&A, DISCUSSION質疑応答

Page 38: 分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~

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