Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

分散ストレージソフトウェアCeph・アーキテクチャー概要

11,016 views

Published on

Cephのアーキテクチャー概要です

2016/02/12 ver1.1 Update

Published in: Technology
  • Hello! I do no use writing service very often, only when I really have problems. But this one, I like best of all. The team of writers operates very quickly. It's called ⇒ www.HelpWriting.net ⇐ Hope this helps!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Get the best essay, research papers or dissertations. from ⇒ www.HelpWriting.net ⇐ A team of professional authors with huge experience will give u a result that will overcome your expectations.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/2F7hN3u ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ♥♥♥ http://bit.ly/2F7hN3u ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

分散ストレージソフトウェアCeph・アーキテクチャー概要

  1. 1. 分散ストレージソフトウェアCeph アーキテクチャー概要 レッドハット株式会社 中井悦司 / Etsuji Nakai Senior Solution Architect and Cloud Evangelist v1.0 2016/02/08
  2. 2. 2 分散ストレージソフトウェアCeph・アーキテクチャー概要 自己紹介  中井悦司(なかいえつじ) – Twitter @enakai00  日々の仕事 – Senior Solution Architect and Cloud Evangelist at Red Hat K.K. 企業システムでオープンソースの活用を希望される お客様を全力でご支援させていただきます。  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門) これ! 翔泳社「ITエンジニアに読んでほしい!技術書・ビジネス書 大賞 2016」 「技術書ベスト10」に入りました!
  3. 3. 3 分散ストレージソフトウェアCeph・アーキテクチャー概要 目次  Cephの概要  オブジェクトストアとは?  オブジェクトストア:RADOS / RADOS GW  ブロックデバイス:RBD  分散ファイルシステム:CephFS  OpenStackからの利用パターン  参考資料
  4. 4. 4 分散ストレージソフトウェアCeph・アーキテクチャー概要 Cephの概要
  5. 5. 5 分散ストレージソフトウェアCeph・アーキテクチャー概要 Cephの生い立ち http://japan.zdnet.com/article/35072972/  2003 – Sage WeilがUCSCで研究/開発をスタート  2006頃 – CRUSH/RADOS等の主要論文公開 – 実装をオープンソースとして公開  2012 – Inktank社を設立、商用サポートを開始  2014 – Red HatがInktankを買収  2015 – Red Hat Ceph Storageとして製品化
  6. 6. 6 分散ストレージソフトウェアCeph・アーキテクチャー概要 Caphのアーキテクチャー  Sageの当初からの目標は、分散ファイルシステム CephFS の実現 – 分散ファイルシステムの独自アーキテクチャー設計における副産物として、オブジェ クトストアとブロックデバイス機能も実現 オブジェクトストア Swift / S3 互換API ブロック デバイス 分散ファイル システム
  7. 7. 7 分散ストレージソフトウェアCeph・アーキテクチャー概要 OpenStackのバックエンドとして人気の高いCeph  複数のストレージ機能をシングルクラスターで提供可能 – オブジェクトストア Swift の代替利用:RADOS GW – イメージストアサービス Glance のバックエンド:RBD – ブロックボリュームサービス Cinder のバックエンド:RBD – Nova による仮想マシンの起動ディスク:RBD – ファイル共有サービス Manila のバックエンド:CephFS(検討中) https://drive.google.com/file/d/0B4vq3W3Lm2-4RWszZlBqVmxfWWs/view OpenStack Foundationによるユーザーサーベイ(2015)
  8. 8. 8 分散ストレージソフトウェアCeph・アーキテクチャー概要 オブジェクトストアとは?
  9. 9. 9 分散ストレージソフトウェアCeph・アーキテクチャー概要 オブジェクトストアとCephの歴史  2006 – Amazon Web ServicesがオンラインストレージサービスS3を提供開始 – Ceph: CRUSH/RADOS等の主要論文公開  2010 – OpenStackプロジェクト設立、OpenStack Swift公開  2012 – S3の保存オブジェクト数が1兆個を突破したとAWSが発表 – Ceph: Inktank社を設立、商用サポートを開始
  10. 10. 10 分散ストレージソフトウェアCeph・アーキテクチャー概要 ところで・・・オブジェクトストアって何?  「オブジェクト(ファイル)の単位でデータを保存します!(`・ω・´)キリッ」  ・・・それって、どこのFTPサーバー? オブジェクトストア FTPサーバー
  11. 11. 11 分散ストレージソフトウェアCeph・アーキテクチャー概要 オブジェクトストアの本質とは?  アプリケーションからのアクセスを前提としたAPI設計 – ディレクトリー構造を排除して、オブジェクトのメタデータで属性を管理 – コンテナ内のファイル数、使用容量などを取得するAPIを提供 – 主要なプログラム言語に対するアプリケーションライブラリーを提供 Webアプリケーション コンテナ オブジェクト オブジェクトストア アカウント、コンテナ、 オブジェクトをAPI操作 アカウント OpenStack Swfitの操作体系
  12. 12. 12 分散ストレージソフトウェアCeph・アーキテクチャー概要 オブジェクトストアの本質とは?  ファイルの分散保存により、容量と性能に対するスケーラビリティを確保 OpenStack Swfitの分散アーキテクチャー プロキシーノード 書き込む時は 複数ノードに保存 読みだす時は どれか1つを選択 クライアント ストレージノード ・・・
  13. 13. 13 分散ストレージソフトウェアCeph・アーキテクチャー概要 分散保存アルゴリズムの例(OpenStack Swiftの場合)  OpenStack Swiftの場合は、静的なハッシュマップでファイル配置を決定 – 個々のハードディスクに論理的な保存場所(パーティション)を割り当てて、オブジェクト名のハッ シュから対応するパーティションを決定する静的マップを事前に作成 – 静的マップを「リングファイル」に書き込んで、全てのノードにリングファイルを配布 – ノードを追加する際は、リングファイルを再作成・再配布した後、オブジェクトを再配置 ストレージノード 1 2 3 4パーティション ハードディスク 5 6 7 8 ・・・ ・・・ ・・・ xxx yyy zzz ・・・ ・・・ ・・・ ・・・ 1 4 3 9 5 2 1 3 2 5 8 7 5 2 7 6 9 4 6 1 4 ハッシュ値 レプリカ#1 レプリカ#2 レプリカ#3 それぞれのレプリカを保存する パーティションの番号 リングファイル
  14. 14. 14 分散ストレージソフトウェアCeph・アーキテクチャー概要 オブジェクトストア:RADOS
  15. 15. 15 分散ストレージソフトウェアCeph・アーキテクチャー概要 RADOSの分散保存アルゴリズム  RADOSは、決定的アルゴリズムによる計算でオブジェクトの配置先を決定 オブジェクト (ファイル) オブジェクト (ファイル) プレースメントグループ #1 プレースメントグループ #2 オブジェクト (ファイル) ・・・ ・・・ リソース名のハッシュ値で プレースメントグループを決定 ディスク OSD#1 ディスク OSD#2 ディスク OSD#3 ・・・ CRUSHアルゴリズムで 配置先のディスクを決定 クラスター マップ 特定のディスクに対する I/Oを行うデーモン
  16. 16. 16 分散ストレージソフトウェアCeph・アーキテクチャー概要 CRUSHアルゴリズム  CRUSHアルゴリズムは、クラスターのトポロジーを意識して配置先を決定 – クラスターマップ(CRUSHマップ+ルール)を参照して、プレースメントグループに対応 するOSDを決定 • 標準で3個のレプリカについて、個別にOSDを決定 – CRUSHマップには、「ラック⇒ホスト⇒OSD」のように各OSDのトポロジーを記載 – ルールには、OSDを選択する優先順位を指定 • レプリカごとにラックを分けるなどの制御が可能 CRUSHマップ レプリカは 同期書き込み
  17. 17. 17 分散ストレージソフトウェアCeph・アーキテクチャー概要 クラスターマップの管理方法  奇数個のノードで稼働するMON(モニターデーモン)が最新のクラスターマップ を管理/配布 RADOS GW ディスク OSD#1 ディスク OSD#2 ディスク OSD#3 CRUSHアルゴリズムで Primaryの配置先ディスクを決定 MON#1 MON#2 MON#3 クラスター マップ 最新のクラスターマップを保存 クラスター マップ クラスター マップ クラスターマップを取得 クラスターマップ を取得 CRUSHアルゴリズムで レプリカ先を決定 S3/Swift互換APIを提供する ゲートウェイノード Paxosアルゴリズムで データ同期
  18. 18. 18 分散ストレージソフトウェアCeph・アーキテクチャー概要 OSDの詳細  OSDはそれぞれの動作状態を相互監視しており、障害発生時はCRUSHマップの書 き換えによりレプリカを再配置します。 – 一定時間(デフォルトで5分)生存確認できないOSDがあった場合、MONに通知が行われ て、CRUSHマップから該当のOSDを除外 – 新しいCRUSHマップは、GossipプロトコルによりOSDに順次配信 – クライアント(RADOS GW)および、各OSDは、CRUSHマップのバージョン番号を相互 チェックして、新しいCRUSHマップによる再配置を実施(Eventual Consistency)  OSDのバックエンドは、一般的なファイルシステムを使用(xfsが推奨) – 1つのオブジェクトは1つのファイルとして保存  整合性担保と性能向上のために、Write-aheadジャーナルを使用 – 「メタデータ+実データ」をジャーナルディスクにシーケンシャルライト – ジャーナルがある程度たまってから、オブジェクトファイルにまとめて反映 – ジャーナルディスクにはSSDの使用を推奨
  19. 19. 19 分散ストレージソフトウェアCeph・アーキテクチャー概要 RADOS GWによるデータのストライピング処理  RADOS GWは、S3/Swift互換APIでファイルを受け取ると、複数のオブジェクトに ストライピング配置した後、各オブジェクトをRADOSに保存します。 – ファイル読み込み時に、複数オブジェクトからの並列読み込みが可能になります。
  20. 20. 20 分散ストレージソフトウェアCeph・アーキテクチャー概要 プールによる複数クラスターマップの利用  Cephを複数の用途で使用する際は、複数の「プール」を定義して、プールごとに 異なるクラスターマップを使用することができます。 – CRUSHマップの定義によって、プールごとに使用するノードを分離するなども可能です。 もしくは、プールはあくまで論理的な入れ物として、複数のプールでノード(OSD)を共 有することもできます。 – オブジェクトストア(RADOS GW)、ブロックデバイス(RBD)、分散ファイルシステム (CephFS)など、異なる目的で使用する際は、それぞれでプールを分けて定義します。
  21. 21. 21 分散ストレージソフトウェアCeph・アーキテクチャー概要 ブロックデバイス:RBD
  22. 22. 22 分散ストレージソフトウェアCeph・アーキテクチャー概要 クライアント側モジュールによる分散アクセス  Cephのクラスターをブロックデバイス、もしくは、分散ファイルシステムとして 使用する際は、クライアント側のモジュールが分散アクセス処理を実施します。 – ブロックデバイス(RBD)、分散ファイルシステム(CephFS)のそれぞれについてLinux カーネルモジュールが用意されています。(アップストリームカーネルにマージ済み) クライアント モジュール ブロックデバイス クライアントノード ストレージノード クライアントモジュールが データの保存場所を 判断してアクセス クライアント モジュール ファイルシステム クライアントノード
  23. 23. 23 分散ストレージソフトウェアCeph・アーキテクチャー概要  RBDモジュールは、ブロックデバイスを一定サイズのチャンクに分割して、別々の オブジェクトとして保存します。 – 実際には、RADOS GWと同様に複数オブジェクトへのストライピングでの配置を行います。 – RADOSのオブジェクトはオフセット指定での部分アクセスが可能になっており、これにより、ブロッ クデバイスのランダムアクセスに対応しています。 ファイル (オブジェクト) ・・・ ファイル (オブジェクト) ファイル (オブジェクト) OSD OSD ・・・OSD RBDのアーキテクチャー /dev/rbd0 カーネル RBD モジュール Linuxサーバー Cephクラスター
  24. 24. 24 分散ストレージソフトウェアCeph・アーキテクチャー概要 RBDによるデータのストライピング処理  RBDはブロックデバイス全体を複数のオブジェクトにストライピング配置した後、 各オブジェクトをRADOSに保存します。 – 物理ディスクにおけるRAID0と同様の考え方で、ランダムアクセスに対するアクセス性能 の向上を図ります。
  25. 25. 25 分散ストレージソフトウェアCeph・アーキテクチャー概要 分散ファイルシステム:CephFS
  26. 26. 26 分散ストレージソフトウェアCeph・アーキテクチャー概要 CephFSのアーキテクチャー  CephFSでは、複数のメタデータサーバー(MDS)がファイルシステムのメタデー タを取り扱います。 – MDSはメタデータをRADOSのオブジェクトとして保存します。 – 個々のファイルは、RADOS GW/RBDと同様に複数オブジェクトにストライピング保存されます。 クライアント ファイル OSD OSD OSD OSD OSD OSD OSD OSD MDS MDS 実データは直接 OSDにアクセス MDS MDS メタデータはMDSを 経由してアクセス メタデータを メモリにキャッシュ RADOS
  27. 27. 27 分散ストレージソフトウェアCeph・アーキテクチャー概要 MDSによるメタデータの分散処理  ディレクトリーツリーを分割して、複数のMDSがメタデータの管理を行います。 – ツリーの分割、および、担当するMDSの割り当ては動的に行われます。 – アクセス頻度の高い部分を細かく分割したり、MDSの障害時に該当部分を他のMDSが引き 継いで担当するなどの処理が行われます。
  28. 28. 28 分散ストレージソフトウェアCeph・アーキテクチャー概要 OpenStackからの利用パターン
  29. 29. 29 Red Hat Enterprise Linux OpenStack Platformのご紹介 OpenStackとの標準的な組み合わせパターン 仮想マシン イメージ Nova Compute Nova Compute Glance Horizon Neutron 管理ネットワーク LUN 仮想ネットワーク作成 仮想マシン起動 ブロックボリューム提供 認証サーバ テンプレート イメージ保存 MariaDB Network Node Nova Compute Cinder Keystone Swift メッセージキュー クライアントPC Webコンソールアクセス テンプレート イメージ検索 テンプレート ダウンロード RabbitMQ データベース LUN LUN Nova オブジェクトストアサービス (Swiftの代替 / RADOS GWを使用) テンプレートイメージ保存 (RBDを使用) ブロックデバイスサービス (RBDを使用)
  30. 30. 30 Red Hat Enterprise Linux OpenStack Platformのご紹介 少し特殊な利用パターン 仮想マシン イメージ Nova Compute Nova Compute Glance Horizon Neutron 管理ネットワーク LUN 仮想ネットワーク作成 仮想マシン起動 ブロックボリューム提供 認証サーバ テンプレート イメージ保存 MariaDB Network Node Nova Compute Cinder Keystone Swift メッセージキュー クライアントPC Webコンソールアクセス テンプレート イメージ検索 テンプレート ダウンロード RabbitMQ データベース LUN LUN Nova 仮想マシンの起動ディスク (RBDを使用)  コンピュートノード上の仮想マシンの起動ディスクとしてRBDを使用することができます。 – KVMハイパーバイザーに組み込みのRBDモジュールを用いて仮想マシンに接続 – Cinder Bootを用いずにLive Migrationに対応 – RBDのCoWコピー機能を用いて、Glanceが管理するテンプレートを即座に複製
  31. 31. 31 Red Hat Enterprise Linux OpenStack Platformのご紹介 少し特殊な利用パターン  ファイル共有サービスManilaのバックエンドに利用する提案がされています。 – コンピュートノードにCephFSをマウントして、ホストLinuxからNFSでゲストOSに提供し ます。 – ホストLinuxとゲストOSの間は、AF_VSOCK(仮想ソケット)を用いて通信します。 http://japan.zdnet.com/article/35072972/2/
  32. 32. 32 分散ストレージソフトウェアCeph・アーキテクチャー概要 参考資料
  33. 33. 33 Red Hat Enterprise Linux OpenStack Platformのご紹介 参考資料  Ceph アーキテクチャ概説 – http://www.slideshare.net/Yuryu/ceph-36503772  分散ストレージ技術「Ceph」のからくり – http://www.school.ctc-g.co.jp/columns/nakai/nakai44.html  一味違うCephの「オブジェクトストア」とは? – http://www.school.ctc-g.co.jp/columns/nakai/nakai45.html  Cephのクラスタ管理とデータ冗長化の仕組み – http://www.school.ctc-g.co.jp/columns/nakai/nakai76.html  分散ファイルシステムCephFSのアーキテクチャー – http://www.school.ctc-g.co.jp/columns/nakai/nakai77.html
  34. 34. Thank you

×