About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / blockdev / drbd / data-structure-v9.txt




Custom Search

Based on kernel version 3.15.4. Page generated on 2014-07-07 09:00 EST.

1	This describes the in kernel data structure for DRBD-9. Starting with
2	Linux v3.14 we are reorganizing DRBD to use this data structure.
3	
4	Basic Data Structure
5	====================
6	
7	A node has a number of DRBD resources.  Each such resource has a number of
8	devices (aka volumes) and connections to other nodes ("peer nodes"). Each DRBD
9	device is represented by a block device locally.
10	
11	The DRBD objects are interconnected to form a matrix as depicted below; a
12	drbd_peer_device object sits at each intersection between a drbd_device and a
13	drbd_connection:
14	
15	  /--------------+---------------+.....+---------------\
16	  |   resource   |    device     |     |    device     |
17	  +--------------+---------------+.....+---------------+
18	  |  connection  |  peer_device  |     |  peer_device  |
19	  +--------------+---------------+.....+---------------+
20	  :              :               :     :               :
21	  :              :               :     :               :
22	  +--------------+---------------+.....+---------------+
23	  |  connection  |  peer_device  |     |  peer_device  |
24	  \--------------+---------------+.....+---------------/
25	
26	In this table, horizontally, devices can be accessed from resources by their
27	volume number.  Likewise, peer_devices can be accessed from connections by
28	their volume number.  Objects in the vertical direction are connected by double
29	linked lists.  There are back pointers from peer_devices to their connections a
30	devices, and from connections and devices to their resource.
31	
32	All resources are in the drbd_resources double-linked list.  In addition, all
33	devices can be accessed by their minor device number via the drbd_devices idr.
34	
35	The drbd_resource, drbd_connection, and drbd_device objects are reference
36	counted.  The peer_device objects only serve to establish the links between
37	devices and connections; their lifetime is determined by the lifetime of the
38	device and connection which they reference.
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.