What:		/sys/bus/rbd/
Date:		November 2010
Contact:	Yehuda Sadeh <yehuda@newdream.net>,
		Sage Weil <sage@newdream.net>
Description:

Being used for adding and removing rbd block devices.

Usage: <mon ip addr> <options> <pool name> <rbd image name> [<snap name>]

 $ echo "192.168.0.1 name=admin rbd foo" > /sys/bus/rbd/add

The snapshot name can be "-" or omitted to map the image read/write. A <dev-id>
will be assigned for any registered block device. If snapshot is used, it will
be mapped read-only.

Usage: <dev-id> [force]

 $ echo 2 > /sys/bus/rbd/remove

Optional "force" argument which when passed will wait for running requests and
then unmap the image. Requests sent to the driver after initiating the removal
will be failed.  (August 2016, since 4.9.)

What:		/sys/bus/rbd/add_single_major
Date:		December 2013
KernelVersion:	3.14
Contact:	Sage Weil <sage@inktank.com>
Description:	Available only if rbd module is inserted with single_major
		parameter set to true.
		Usage is the same as for /sys/bus/rbd/add.  If present,
		should be used instead of the latter: any attempts to use
		/sys/bus/rbd/add if /sys/bus/rbd/add_single_major is
		available will fail for backwards compatibility reasons.

What:		/sys/bus/rbd/remove_single_major
Date:		December 2013
KernelVersion:	3.14
Contact:	Sage Weil <sage@inktank.com>
Description:	Available only if rbd module is inserted with single_major
		parameter set to true.
		Usage is the same as for /sys/bus/rbd/remove.  If present,
		should be used instead of the latter: any attempts to use
		/sys/bus/rbd/remove if /sys/bus/rbd/remove_single_major is
		available will fail for backwards compatibility reasons.

Entries under /sys/bus/rbd/devices/<dev-id>/
--------------------------------------------

client_addr

	The ceph unique client entity_addr_t (address + nonce).
	The format is <address>:<port>/<nonce>: '1.2.3.4:1234/5678' or
	'[1:2:3:4:5:6:7:8]:1234/5678'.  (August 2016, since 4.9.)

client_id

	The ceph unique client id that was assigned for this specific session.

cluster_fsid

	The ceph cluster UUID.  (August 2016, since 4.9.)

config_info

	The string written into /sys/bus/rbd/add{,_single_major}.  (August
	2016, since 4.9.)

features

	A hexadecimal encoding of the feature bits for this image.

major

	The block device major number.

minor

	The block device minor number.  (December 2013, since 3.14.)

name

	The name of the rbd image.

image_id

	The unique id for the rbd image.  (For rbd image format 1
	this is empty.)

pool

	The name of the storage pool where this rbd image resides.
	An rbd image name is unique within its pool.

pool_id

	The unique identifier for the rbd image's pool.  This is
	a permanent attribute of the pool.  A pool's id will never
	change.

size

	The size (in bytes) of the mapped block device.

refresh

	Writing to this file will reread the image header data and set
	all relevant datastructures accordingly.

current_snap

	The current snapshot for which the device is mapped.

snap_id

	The current snapshot's id.  (August 2016, since 4.9.)

parent

	Information identifying the chain of parent images in a layered rbd
	image.  Entries are separated by empty lines.
