ここからは、各インターフェースとデータ格納の挙動を見ていきましょう。
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.