Ceph
作者 Inktank Storage (Sage Weil, Yehuda Sadeh Weinraub, Gregory Farnum, Josh Durgin, Samuel Just, Wido den Hollander)
開発元 カノニカル、CERN、シスコシステムズ、富士通、インテル、レッドハット、SanDisk、SUSE[1]
最新版
17.2.6 "Quincy"[2] / 2023年4月10日 (22か月前) (2023-04-10)
最新評価版
13.1.0 "Mimic"[3] / 2018年5月11日 (6年前) (2018-05-11)
リポジトリ ウィキデータを編集
プログラミング
言語
C++、Python[4]
対応OS Linux、FreeBSD[5]
種別 分散オブジェクトストア
ライセンス LGPL 2.1[6]
公式サイト ceph.com
テンプレートを表示

コンピューター科学の分野において、Ceph([ˈsɛf]または[ˈkɛf]と発音する)は、単一の分散コンピュータ・クラスター上でオブジェクトストレージを実装した自由ソフトウェアのストレージプラットフォームである。オブジェクト、ブロック、ファイルレベルのストレージインタフェースを提供し、単一障害点がなく、エクサバイトレベルまで拡張可能な、自由に利用できる完全な分散オペレーションを主な目的としている。

Cephは、特別なハードウェアサポートを必要としない汎用ハードウェア(英語版)を使用して、データを複製することで耐障害性を持たせている[7]。管理時間やその他のコストを最小にすることを目指す設計の結果として、Cephのシステムは、自己修復機能と自己管理機能(英語版)の両方を備える。

2016年4月21日、Cephの開発チームは、CephFSが安定したと思われる最初のバージョンである「Jewel」をリリースした。このバージョンにおいて、CephFSの修復および障害復旧ツールは、必要な機能を完備した(スナップショット機能など。複数のアクティブなメタデータサーバなどの機能は、環境によっては不安定になるため、デフォルトでは無効化されている)[8]。

2017年8月のリリース(コードネーム「Luminous」)では、本番環境対応のBlueStoreストレージフォーマットが導入された[9]。BlueStoreは、古いファイルシステムベースのファイルストアの多数の欠点を解決し、レイテンシの改善や追加のストレージ機能を提供している。

設計

Cephの内部構造の概要[10]:4

Cephは、独立した4種類のデーモンを使用する[10]。

これらすべてのデーモンは完全に分散して動作し、同じサーバ群で動作させることもできる[13]。

Cephは、高いスループットを達成するために、RAID0(英語版)が複数のハードドライブにまたがってパーティションをストライプするのと同様に、個々のファイルを複数のノードにまたがってストライピング(英語版)する。頻繁にアクセスされるオブジェクトがより多くのノードに複製される、適応的なロードバランシングがサポートされている[要出典]。2017年9月 (2017-09)現在、BlueStoreが本番環境でのデフォルトの推奨ストレージタイプである[9]。BlueStoreはCeph独自のストレージ実装であり、以前使用されていたFilestoreバックエンドよりも優れたレイテンシと高い拡張性を提供し、追加の処理やレイヤのキャッシュなどが必要なファイルシステムベースのストレージの欠点を解消している。Filestoreバックエンドはまだ有用で非常に安定していると考えられており、その場合には本番環境ではXFSを使用することが推奨されており、非本番環境ではBtrfsも推奨されている。RADOSオブジェクトの最大長に制限があるため、ext4ファイルシステムの使用は非推奨であり、すでにテストも行われなくなっている[14]。

オブジェクトストレージ

Cephストレージプラットフォームのコンポーネント間の関係を示したアーキテクチャー図

Cephは分散オブジェクトストレージ実装している。Cephのソフトウェア・ライブラリが提供するクライアント・アプリケーションlibradosを利用することで、RADOS(reliable autonomic distributed object store; 信頼性の高い自律分散オブジェクトストア)と呼ばれるCeph独自のオブジェクトベースのストレージ・システムに直接アクセスすることができる。また、libradosは、RADOSブロックデバイス (RBD)、RADOS Gateway、Ceph File System (CephFS) などのCephの主要インタフェースの基盤を提供している。

libradosソフトウェアライブラリは、C、C++、Java、PHP、およびPythonでのアクセスを提供する。RADOS Gatewayは、RADOSオブジェクトストアを、ネイティブのAmazon S3 APIとOpenStack Swift APIの両方から利用できるRESTfulインタフェースとして公開する。

ブロックストレージ

Cephのオブジェクトストレージシステムは、Cephをシン・プロビジョニングされたブロックデバイスとしてマウントすることを可能にする。アプリケーションがブロックデバイスを使用してCephにデータを書き込むと、Cephは自動的にデータをストライプ化し、クラスタ全体に複製する。また、CephのRADOS Block Device (RBD) は、Kernel-based Virtual Machines (KVM) と統合されている。

CephのRBDインタフェースは、libradosインタフェースとCephFSファイルシステムを提供するのと同じCephオブジェクトストレージシステムを利用しており、ブロックデバイスのイメージをオブジェクトとして保存する。RBDはlibrados上に構築されているため、RBDは、libradosが持つ読み取り専用スナップショットの作成や、スナップショットの復元などの機能を継承している。クラスタ全体でイメージをストライピングすることで、大きなブロックデバイスイメージの読み取りアクセス性能を向上させている。

ブロックデバイスは仮想化できるため、Apache CloudStack(英語版)、OpenStack、OpenNebula(英語版)、Ganeti(英語版)、Proxmox Virtual Environmentなどの仮想化プラットフォームにおいて、仮想マシンにブロックストレージを提供できる。

ファイルシステム

Cephのファイルシステム (CephFS) は、オブジェクトストレージとブロックデバイスインタフェースを提供するのと同じCephのオブジェクトストレージシステム上で動作する。Cephメタデータサーバクラスタは、ファイルシステムのディレクトリやファイル名を、RADOSクラスタ内に保存されているオブジェクトにマッピングするサービスを提供する。メタデータサーバクラスタは、拡大・縮小することができ、ファイルシステムを動的にリバランスしてクラスタホスト間でデータを均等に分散させることができる。この機能のおかげで、高い性能が維持され、クラスタ内の特定のホストに大きな負荷がかかるのを防ぐことが保証される。

クライアントは、Linuxカーネルクライアントを使用して、POSIX互換ファイルシステムとしてマウントする。2010年3月19日、リーナス・トーバルズは、2010年5月16日にリリースされたLinuxカーネルバージョン2.6.34にCephクライアントをマージした[15]。また、古いFUSEベースのクライアントも利用可能である。サーバは、通常のUnixデーモンとして動作する。

歴史

Cephは、2006 USENIX Conference on Operating System Design (OSDI 2006) において、Weil、Brandt、Miller、Long、Maltzahnによる論文内で初めて提案された[注釈 1]。さらに詳細な記述が、翌年にSage Weilの博士論文として出版された[16]。

2007年秋に大学院を卒業した後も、WeilはフルタイムでCephに取り組み続け、Cephのコア開発チームにはYehuda Sadeh WeinraubとGregory Farnumが新たに参加した。2012年、WeilはCephのプロフェッショナルサービスおよびサポートのための会社Inktank Storage(英語版)を設立した[17][18]。

2014年4月、Inktankはレッドハットに買収され、Ceph開発の大部分はレッドハット社内で行われるようになった[19]。

2015年10月、オープンソースのソフトウェア定義型ストレージ技術の方向性を推進することでコミュニティを支援するために、Ceph Community Advisory Boardが設立された。チャーターアドバイザリボードには、カノニカル、CERN、シスコシステムズ、富士通、インテル、レッドハット、SanDisk、SUSEなどのグローバルなIT組織から、Cephプロジェクトにコミットしている所属メンバーが参加している[1]。

語源

「Ceph」という名前は、タコを含む軟体動物のクラスである「頭足類 (cephalopod) 」の略語である。ロゴが強調しているように、この名前は、分散システムを示唆するタコの非常に並列的な振る舞いから来ている。また、「サミー」という名前のバナナナメクジがCephが誕生したUCSCのマスコットであるため選ばれた[10]。タコもバナナナメクジも、ともに軟体動物であり、頭足類である。

関連項目

参考文献

脚注

注釈

  1. ↑ "Ceph:スケーラブルで高性能な分散ファイルシステム、SA Weil、SA Brandt、EL Miller、DDE Long、C Maltzahn、Proc。

出典

  1. 1 2 “Ceph Community Forms Advisory Board” (2015年10月28日). 2016年1月20日閲覧。
  2. ↑ “17.2.6 Quincy released”. 2023年4月10日閲覧。
  3. ↑ “v13.1.0 Mimic RC1 released”. 2019年1月28日閲覧。
  4. ↑ “GitHub Repository”. 2019年1月28日閲覧。
  5. ↑ “FreeBSD Quarterly Status Report”. 2019年1月28日閲覧。
  6. ↑ “LGPL2.1 license file in the Ceph sources” (2014年10月24日). 2014年10月24日閲覧。
  7. ↑ Jeremy Andrews (2007年11月15日). “Ceph Distributed Network File System”. KernelTrap. 2007年11月17日時点のオリジナルよりアーカイブ。2007年11月15日閲覧。
  8. 1 2 Sage Weil (2016年4月21日). “v10.2.0 Infernalis Released”. Ceph Blog. 2016年4月21日閲覧。
  9. 1 2 3 Sage Weil (2017年8月29日). “v12.2.0 Luminous Released”. Ceph Blog. 2017年9月1日閲覧。
  10. 1 2 3 M. Tim Jones (2010年6月4日). “Ceph: A Linux petabyte-scale distributed file system” (PDF). IBM. 2014年12月3日閲覧。
  11. ↑ “BlueStore”. Ceph. 2017年9月29日閲覧。
  12. ↑ “Hard Disk and File System Recommendations”. 2017年3月17日閲覧。[リンク切れ]
  13. ↑ Jake Edge (2007年11月14日). “The Ceph filesystem”. LWN.net. 2019年1月28日閲覧。
  14. ↑ “Hard Disk and File System Recommendations”. ceph.com. 2017年6月26日閲覧。[リンク切れ]
  15. ↑ Sage Weil (2010年2月19日). “Client merged for 2.6.34”. ceph.newdream.net. 2019年1月28日閲覧。
  16. ↑ Sage Weil (2007年12月1日). “Ceph: Reliable, Scalable, and High-Performance Distributed Storage”. University of California, Santa Cruz. 2019年1月28日閲覧。
  17. ↑ Bryan Bogensberger (2012年5月3日). “And It All Comes Together”. Inktank Blog. 2012年7月19日時点のオリジナルよりアーカイブ。2012年7月10日閲覧。
  18. ↑ Joseph F. Kovar (July 10, 2012). “The 10 Coolest Storage Startups Of 2012 (So Far)”. CRN July 19, 2013閲覧。
  19. ↑ Red Hat Inc (2014年4月30日). “Red Hat to Acquire Inktank, Provider of Ceph”. レッドハット. 2014年8月19日閲覧。
  20. ↑ Sage Weil (2012年7月3日). “v0.48 "Argonaut" Released”. Ceph Blog. 2019年1月28日閲覧。
  21. ↑ Sage Weil (2013年1月1日). “v0.56 Released”. Ceph Blog. 2019年1月28日閲覧。
  22. ↑ Sage Weil (2013年5月17日). “v0.61 "Cuttlefish" Released”. Ceph Blog. 2019年1月28日閲覧。
  23. ↑ Sage Weil (2013年8月14日). “v0.67 Dumpling Released”. Ceph Blog. 2019年1月28日閲覧。
  24. ↑ Sage Weil (2013年11月9日). “v0.72 Emperor Released”. Ceph Blog. 2019年1月28日閲覧。
  25. ↑ Sage Weil (2014年5月7日). “v0.80 Firefly Released”. Ceph Blog. 2019年1月28日閲覧。
  26. ↑ Sage Weil (2014年10月29日). “v0.87 Giant Released”. Ceph Blog. 2019年1月28日閲覧。
  27. ↑ Sage Weil (2015年4月7日). “v0.94 Hammer Released”. Ceph Blog. 2019年1月28日閲覧。
  28. ↑ Sage Weil (2015年11月6日). “v9.2.0 Infernalis Released”. Ceph Blog. 2019年1月28日閲覧。
  29. ↑ Abhishek L (2017年1月20日). “v11.2.0 Kraken Released”. Ceph Blog. 2019年1月28日閲覧。
  30. ↑ Abhishek L (2018年6月1日). “v13.2.0 Mimic Released”. Ceph Blog. 2019年1月28日閲覧。

外部リンク

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS A87