連載
Ceph/RADOSの実装から動作の仕組みを理解する:Ceph/RADOS入門(2)(2/3 ページ)
OpenStack環境下の分散ストレージとして注目を集めるCeph/RADOS。今回は各コンポーネントを深掘りして挙動を理解していく。分散の仕組みや特徴を理解することで、より良いシステム構成検討を目指そう。
ネイティブインターフェースとストレージクラスターへのデータ格納
ここからは、各インターフェースとデータ格納の挙動を見ていきましょう。
librados
RADOSはオブジェクトを格納します。libradosは、アプリケーションが独自APIでRADOSに直接アクセスするためのライブラリです。C/C++、Java、Python、Ruby、PHPのライブラリがあります。
それぞれのライブラリに関する情報は次の通りです。
ライブラリ名 | 参照先 |
---|---|
Introduction to Librados | http://ceph.com/docs/master/rados/api/librados-intro/ |
Java bindings for librados(Java) | https://github.com/wido/rados-java |
desperados: A Ruby library for Ceph's Rados(Ruby) | https://github.com/johnl/desperados |
phprados(PHP) | https://github.com/ceph/phprados |
RADOSのオブジェクトはオブジェクトID、データ、メタデータで構成され、論理的なパーティションであるプールに格納されます。
オブジェクトIDはCeph Storage Cluster内で一意です。メタデータはname/valueのペアです。OSD上でオブジェクトは一個のファイルです。
当初、Ceph/RADOSにはEBOFSというユーザーランド実行のオブジェクトファイルシステムが含まれていましたが、2009年にBTRFSを使用する計画に変更されています。
最新のCeph/RADOS(v0.77以降)ではファイルシステム以外にKVS(leveldb)もOSDのバックエンドストレージに使用できるようです(v0.80時点でexperimental)。
本稿ではOSDのファイルシステムにXFSを使用します。BTRFSを使用する場合、OSDのLinuxカーネルはv3.14以降の使用が推奨されていますので注意しましょう(*1)。
Copyright © ITmedia, Inc. All Rights Reserved.