Your SlideShare is downloading. ×
0
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Gree大規模分散ストレージ戦略
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Gree大規模分散ストレージ戦略

9,183

Published on

グリーでは、ユーザの増加に伴ないサーバ台数が増加し、冗長性やスケーラビリティの低下が問題となってきていた。このような問題を解決するためにグリーでは独自の分散ストレージ (nanofs)を開発し、スケーラビリティや信頼性の向上、冗長化を実現した

グリーでは、ユーザの増加に伴ないサーバ台数が増加し、冗長性やスケーラビリティの低下が問題となってきていた。このような問題を解決するためにグリーでは独自の分散ストレージ (nanofs)を開発し、スケーラビリティや信頼性の向上、冗長化を実現した

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

No Downloads
Views
Total Views
9,183
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
0
Comments
0
Likes
16
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential GREEの大規模 分散ストレージ戦略
  • 2. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential もくじ • GREEで使われてきた画像サーバの歴史 • 分散ストレージシステム(nanofs)の紹介 • GREEでの使用例
  • 3. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 画像サーバの歴史
  • 4. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 第一世代 • NFSサーバで画像データを保存 • メリット • 簡単に導入できる • 高価なNFSサーバを使用すれば信頼性や安定 性が保たれる • デメリット • Webサーバへのトラフィックが増加するとNFS サーバへのトラフィックが増えパフォーマンスが 低下する • スケールアップし続けるにはコストがかかる
  • 5. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 第二世代 • ユーザ毎にパーティションを設定。1パーティショ ンに対し2台のwebDAVサーバを用意し保存する • メリット • 比較的安価なサーバでスケールアウトができる • デメリット • 一部のユーザが大量の画像をアップロードする とディスクがいっぱいになるためユーザ毎に別 のパーティションに移動させないといけない • ユーザ分割のためパーティションを増やし続け なければいけないためサーバ台数の増大
  • 6. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 第三世代 • 第二世代の仕組みに加えサーバをスケールアッ プ • メリット • サーバ台数を減らせた • デメリット • 1台のサーバへのトラフィックが増大し webDAVサーバのアプリケーションが処理しき れなくなった • サーバ費用増加
  • 7. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential これまで問題のまとめ • NFSのスケールアップにはコストがかかる • スケールアウトする仕組みが必要 • ユーザ毎の分割ではディスクがいっぱいになった ときに他のサーバに引越しなければいけない • 運用コストがかかる • スケールアップしてもサーバアプリケーションの限 界がある • 分散しなければいけない
  • 8. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential さらにGREEの背景として • GREEでは1億ユーザを目指している • ユーザの増加と共に写真・動画データも増加 • サービスは停止できない • アプリケーション側の変更は極力行ないたくない • ユーザの大切なデータを失うことは許されない • 冗長化されていないといけない
  • 9. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 次世代がどうあるべきか • これまでの経験上下記の3つが重要なのではな いか • Scalability(拡張性) • スケールアウトできること • Availability(可用性) • 対障害性が強く冗長化がなされていること • Maintainability(保守性) • 運用コストが低いこと
  • 10. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 次世代ストレージのイメージ 90 Webサーバ ストレージ
  • 11. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 分散ストレージ (nanofs)の紹介
  • 12. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanofs特徴 • 内部実装はRuby • カーネルモジュールを必要としない • ファイル毎の分散 • 非同期でデータをコピー(バックアップ)を行う • プロトコルはHTTPを使用 • サーバアプリケーションは選択可能 • apache, nginx, lighttpd, thin • データベース(KVS)も選択可能 • MySQL,Flare, memcacheに対応
  • 13. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanofsの構成 • 3つのコンポーネント • nanofsd(dispatcher) • nanofsn(node) • nanofsw(worker) • データベース(KVS) • queue Webサーバ nanofsd nanofsn nanofsw DB queue
  • 14. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanofsd • Webサーバからリクエ ストを受け付ける • nanofsnにリクエストを 振分ける • データベースにデータ の情報を送る • queueに処理の指示を 送る Webサーバ nanofsd nanofsn nanofsw DB queue
  • 15. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanofsw • queueに送られた指示 に従い非同期に処理を 行う • 複数のnanofsnにデー タをコピーする • nanofsnに保存されて いるデータを削除する Webサーバ nanofsd nanofsn nanofsw DB queue
  • 16. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanofsn • データを保存する Webサーバ nanofsd nanofsn nanofsw DB queue
  • 17. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential データベース・queue • データベース • 保存したデータの情 報を管理 • nanofsnサーバのid • nanofsnサーバの ファイルパス • queue • nanofswが処理す る指示を格納 Webサーバ nanofsd nanofsn nanofsw DB queue
  • 18. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential HTTPリクエスト毎の処 理
  • 19. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential GETメソッドの処理(1) • nanofsdがGETリクエストを受け取る • データベースから画像情報を所得する • 保存されているnanofsnのidとファイルパス • データを取得するnanofsnを選ぶ • ランダムとapacheのRequest Countingに対 応 • もしも選択されたnanofsnがダウンしているとき は別のnanofsnを選びなおす
  • 20. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential GETメソッドの処理(2) • 保存されているnanofsnからHTTP GET通信で データを取得 • WebサーバにHTTPレスポンスを返す
  • 21. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential GETメソッド Webサーバ nanofsd nanofsn nanofsw database queue
  • 22. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential GETメソッド Webサーバ nanofsd nanofsn nanofsw database queue HTTP GETリクエスト
  • 23. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential GETメソッド Webサーバ nanofsd nanofsn nanofsw database queue 画像情報を取得 HTTP GETリクエスト
  • 24. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential GETメソッド Webサーバ nanofsd nanofsn nanofsw database queue 画像情報を取得 画像データを取得 HTTP GETリクエスト
  • 25. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential GETメソッド Webサーバ nanofsd nanofsn nanofsw database queue 画像情報を取得 画像データを取得 HTTP GETリクエスト HTTPレスポンス
  • 26. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド(1) • nanofsdでHTTP PUTリクエストを受け取る • 保存するnanofsnを選ぶ • 選ばれたnanofsnにHTTP PUTリクエストで保存 する • データベースに画像情報を格納する • コピーの指示をqueueにENQUEUEする • WebサーバにHTTPレスポンスを返す
  • 27. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド(2) • queueからnanofswがDEQUEUEする • データベースから画像情報を取得 • 保存されているnanofsnからHTTP GETリクエスト で画像データを取得 • 別のnanofsnにデータをコピーする • データベースに画像情報を更新する
  • 28. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue
  • 29. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue HTTP PUTリクエスト
  • 30. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像をnanofsnに保存 HTTP PUTリクエスト
  • 31. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を保存 画像をnanofsnに保存 HTTP PUTリクエスト
  • 32. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を保存 ENQUEUE 画像をnanofsnに保存 HTTP PUTリクエスト
  • 33. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を保存 ENQUEUE 画像をnanofsnに保存 HTTP PUTリクエスト HTTPレスポンス
  • 34. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を保存 DEQUEUE ENQUEUE 画像をnanofsnに保存 HTTP PUTリクエスト HTTPレスポンス
  • 35. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を保存 DEQUEUE ENQUEUE 画像をnanofsnに保存 HTTP PUTリクエスト HTTPレスポンス 画像情報を取得
  • 36. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を保存 DEQUEUE ENQUEUE 画像をnanofsnに保存 画像データを取得 画像データを別のnanofsnにコピー HTTP PUTリクエスト HTTPレスポンス 画像情報を取得
  • 37. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential PUTメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を保存 DEQUEUE ENQUEUE 画像をnanofsnに保存 画像データを取得 画像データを別のnanofsnにコピー HTTP PUTリクエスト HTTPレスポンス 画像情報を取得 画像情報を更新
  • 38. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential DELETEメソッド • nanofsdでHTTP DELETEリクエストを受け取る • 削除の指示をqueueにENQUEUEする • WebサーバにHTTPレスポンスを返す • queueがらnanofswがDEQUEUEする • データベースから画像情報を取得 • 保存されているnanofsnからHTTP DELETEリク エストで削除する • 保存されている画像は複数のnanofsnにあるので 全台削除していく
  • 39. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential DELETEメソッド nanofsw nanofsn nanofsd Webサーバ database queue
  • 40. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential DELETEメソッド nanofsw nanofsn nanofsd Webサーバ database queue HTTP DELETEリクエスト
  • 41. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential DELETEメソッド nanofsw nanofsn nanofsd Webサーバ database queue ENQUEUE HTTP DELETEリクエスト
  • 42. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential DELETEメソッド nanofsw nanofsn nanofsd Webサーバ database queue ENQUEUE HTTP DELETEリクエスト HTTPレスポンス
  • 43. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential DELETEメソッド nanofsw nanofsn nanofsd Webサーバ database queue DEQUEUE ENQUEUE HTTP DELETEリクエスト HTTPレスポンス
  • 44. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential DELETEメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を取得 DEQUEUE ENQUEUE HTTP DELETEリクエスト HTTPレスポンス
  • 45. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential DELETEメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を取得 DEQUEUE ENQUEUE HTTP DELETEリクエスト HTTPレスポンス 画像情報を削除
  • 46. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential DELETEメソッド nanofsw nanofsn nanofsd Webサーバ database queue 画像情報を取得 DEQUEUE ENQUEUE 画像データを削除 HTTP DELETEリクエスト HTTPレスポンス 画像情報を削除
  • 47. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 障害時の処理
  • 48. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential LVS nanofsd nanofsdがダウン Webサーバ VRRP
  • 49. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential LVS nanofsd nanofsdがダウン Webサーバ VRRP
  • 50. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential LVS nanofsd nanofsdがダウン Webサーバ VRRP heartbeat
  • 51. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential LVS nanofsd nanofsdがダウン Webサーバ VRRP heartbeat リクエスト
  • 52. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential LVS nanofsd nanofsdがダウン Webサーバ VRRP heartbeat リクエスト
  • 53. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanfsnがダウン nanofsw nanofsn nanofsd Webサーバ
  • 54. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanfsnがダウン nanofsw nanofsn nanofsd Webサーバ
  • 55. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanfsnがダウン nanofsw nanofsn nanofsd Webサーバ リクエスト
  • 56. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanfsnがダウン nanofsw nanofsn nanofsd Webサーバ リクエスト
  • 57. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanfsnがダウン nanofsw nanofsn nanofsd Webサーバ リクエスト
  • 58. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanfsnがダウン nanofsw nanofsn nanofsd Webサーバ リクエスト
  • 59. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential nanfsnがダウン nanofsw nanofsn nanofsd Webサーバ リクエスト
  • 60. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential GREEでの使用例
  • 61. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 実際に使っている構成 Webサーバ nanofsn(apache2) nanofsd(apache2) nanofsw LVS(keepalived) database(MySQL5.1) master slave master slave queue(MySQL5.1)
  • 62. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 問題を解決 • NFSのスケールアップにはコストがかかる • 比較的安価なサーバでスケールアウトが可能 • ユーザ毎の分割ではディスクがいっぱいになった ときに他のサーバに引越しなければいけない • ファイル毎の分散なので引越は不要 • スケールアップしてもサーバアプリケーションの限 界がある • nanofsdを増やせば負荷分散が行える
  • 63. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential 現在の状況 • 画像サーバの一部に投入中 • 全画像サーバに投入予定 • 開発中 • 基本機能は完了
  • 64. Copyright © 2004-2010 GREE,Inc. All Rights Reserved.Confidential さいごに • nanofsは公開を予定しております • ご意見・ご感想・ご要望は • twitter 公式ハッシュタグ #nanofs • グリーエンジニアブログを書いております • http://labs.gree.jp/blog/

×