DRBD is a block based replication solution, known and available for years under Linux. DRBD allows the implementation of high available systems without SAN. Further use cases are the implementation of storage heads for IP based SANs and long-distance replications over the internet.
At present DRBD has a general limitation on two nodes. With DRBD 9 a new release (beta) is under way, allowing for the first time a replication up to 30 nodes.
With these features many application possibilities open up for cluster file systems, storage for virtual machines “cloud storage”, and much more.
15. Configuration: Example
resource example {
volume 0 {...}
volume 1 {...}
on alice { node-id 0; address 10.0.42.1:7000; }
on bob { node-id 1; address 10.0.42.2:7000; }
on clair { node-id 2; address 10.0.42.3:7000; }
connection {
host alice;
host bob;
}
connection {
host alice;
host clair;
}
connection {...}
}
16. Configuration: Example
resource example {
volume 0 {...}
volume 1 {...}
on alice { node-id 0; address 10.0.42.1:7000; }
on bob { node-id 1; address 10.0.42.2:7000; }
on clair { node-id 2; address 10.0.42.3:7000; }
connection-mesh {
hosts alice bob clair;
net {
protocol c;
}
}
21. Resynchronisation
• A node can be sync source to multiple peers
• Happens typically upon initial resync
(--force primary)
Source
Target
Target
22. Resynchronisation
• Sync Target role is serialized among peers
• Usually after temporary node failure
• Paused resync finishes
implicitly
Source
Paused
Source
24. Resynchronisation
• Reconciliation after primary crash
● The surviving secondaries find out which node is
more recent, and initiate the reconciliation resync
Primary
Secondary
Secondary
26. Use cases: DRBD for access
Primary
Secondary Secondary Storage tierSecondary
Application tier has disk less DRBD devices in primary role
Primary Primary Primary
disk disk disk
28. Use cases: Scale-out
• drbdmanage
● Provisioning solution
● Lvm like syntax (lvcreate, lvremove, ...)
● Implemented in python
● Meta data replicated by DRBD
30. The Road ahead
(In no particular order)
• Redundant connections between two nodes
• Support for request-relaying
• Nodes accessing a shared disk
• More than two primary nodes
• Creating of new bitmap-slots online
by changing bitmap-granularity
• UDP multicast transport