Ceph Object Gateway data layout
Ceph Object Gateway organizes its data into metadata, bucket index, and data.
While RADOS recognizes pools and objects by their Extended Attributes (xattrs)
and object map (OMAP), conceptually Ceph Object Gateway organizes its data into three different
kinds:
Metadata
user- Holds user information.
bucket- Holds a mapping between bucket name and bucket instance ID.
bucket.instance- Holds bucket instance information.
radosgw-admin metadata get bucket:BUCKET_NAME
radosgw-admin metadata get bucket.instance:BUCKET:BUCKET_ID
radosgw-admin metadata get user:USER
radosgw-admin metadata set user:USERFor
example,[ceph: root@host01 /]# radosgw-admin metadata list [ceph: root@host01 /]# radosgw-admin metadata list bucket [ceph: root@host01 /]# radosgw-admin metadata list bucket.instance [ceph: root@host01 /]# radosgw-admin metadata list user
Every metadata entry is kept on a single RADOS object.
radosgw-admin tool, ensure that the tool and
the Ceph Cluster are of the same version. The use of mismatched versions is not
supported.xattrs. The head might
also contain up to 512 KB of object data, for efficiency and atomicity. The manifest describes how
each object is laid out in RADOS objects.Bucket index
Bucket index is a different kind of metadata, and kept separately. The bucket index holds a key-value map in RADOS objects. By default, it is a single RADOS object per bucket, but it is possible to shard the map over multiple RADOS objects.
The map itself is kept in OMAP associated with each RADOS object. The key of each OMAP is the name of the objects, and the value holds some basic metadata of that object, the metadata that appears when listing the bucket. Each OMAP holds a header, and some bucket accounting metadata is kept in that header such as number of objects, total size, and the like.
Data
Objects data is kept in one or more RADOS objects for each Ceph Object Gateway object.