.. index:: Ceph Block Device; introduction
A block is a sequence of bytes (for example, a 512-byte block of data). Block-based storage interfaces are the most common way to store data with rotating media such as hard disks, CDs, floppy disks, and even traditional 9-track tape. The ubiquity of block device interfaces makes a virtual block device an ideal candidate to interact with a mass data storage system like Ceph.
Ceph block devices are thin-provisioned, resizable and store data striped over
multiple OSDs in a Ceph cluster. Ceph block devices leverage
:abbr:`RADOS (Reliable Autonomic Distributed Object Store)` capabilities
such as snapshotting, replication and consistency. Ceph's
:abbr:`RADOS (Reliable Autonomic Distributed Object Store)` Block Devices (RBD)
interact with OSDs using kernel modules or the librbd
library.
.. ditaa:: +------------------------+ +------------------------+ | Kernel Module | | librbd | +------------------------+-+------------------------+ | RADOS Protocol | +------------------------+-+------------------------+ | OSDs | | Monitors | +------------------------+ +------------------------+
Note
Kernel modules can use Linux page caching. For librbd
-based
applications, Ceph supports RBD Caching.
Ceph's block devices deliver high performance with infinite scalability to kernel modules, or to :abbr:`KVMs (kernel virtual machines)` such as Qemu, and cloud-based computing systems like OpenStack and CloudStack that rely on libvirt and Qemu to integrate with Ceph block devices. You can use the same cluster to operate the Ceph RADOS Gateway, the Ceph FS filesystem, and Ceph block devices simultaneously.
Important
To use Ceph Block Devices, you must have access to a running Ceph cluster.
.. toctree:: :maxdepth: 1 Commands <rados-rbd-cmds> Kernel Modules <rbd-ko> Snapshots<rbd-snapshot> QEMU <qemu-rbd> libvirt <libvirt> Cache Settings <rbd-config-ref/> OpenStack <rbd-openstack> CloudStack <rbd-cloudstack> Manpage rbd <../../man/8/rbd> Manpage rbd-fuse <../../man/8/rbd-fuse> Manpage ceph-rbdnamer <../../man/8/ceph-rbdnamer> librbd <librbdpy>