DRBD on Red Hat Enterprise Linux 5

categories:

This is a rough guide and really for future personal references so I can rebuild a DRBD cluster in 3 minutes, without having to dig into DRBD docs again. Please correct me if something is wrong (I’m thinking about DRBD gurus, Arrfab coming to mind :-)) .

This worked for me on RHEL5.6 64 bits and DRBD 8.2.

I’ll call the DRBD resource “DRBDCluster”

Install drbd8X and kmod-drbd8X (grab the RPMS at your favorite RPM retailer.. Seems like http://elrepo.org/linux/elrepo/el5/ a good place to start, thought I haven’t tried their RPMS)

On both node, create /etc/drbd.conf with something like this :

<code>global {
    usage-count yes;
}
common {
    syncer {
        rate 1M;
    }
}

resource DRBDCluster {
    protocol C;
    net {
        cram-hmac-alg sha1;
        shared-secret "sdfdskljdfklfjsdkljfsdkljflk";
    }
    on srv1.intranet.example.org {
        device    /dev/drbd0;
        disk      /dev/sdb1;
        address   1.1.1.1:7789;
        meta-disk internal;
    }
    on srv2.intranet.example.org {
        device    /dev/drbd0;
        disk      /dev/sdb1;
        address   1.1.1.2:7789;
        meta-disk internal;
    }
}</code>

**On the “master” (srv1) : **

**On the slave node (srv2) : ** service drbd start

Now you can check the status of the DRBD cluster.

It’s sync’ing.

srv2# cat /proc/drbd version: 8.2.6 (api:88/proto:86-88) GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17 0: cs:SyncTarget st:Secondary/Primary ds:Inconsistent/UpToDate C r--- ns:0 nr:6016 dw:6016 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:10476008 [>....................] sync'ed: 0.2% (10230/10236)M finish: 1:49:07 speed: 1,504 (1,504) K/sec

The “oos” flag expresses the amount of data to be synced, in KB.

When the sync is done it will look like this :

srv1# cat /proc/drbd version: 8.2.6 (api:88/proto:86-88) GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17 0: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r--- ns:10482024 nr:0 dw:298456 dr:10482072 al:121 bm:640 lo:0 pe:0 ua:0 ap:0 oos:0

If for some reason the slave node becomes unavailable, it will resync what it has missed when it comes back (here 20 MB of data) :

version: 8.2.6 (api:88/proto:86-88) GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17 0: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r--- ns:10486540 nr:0 dw:319096 dr:10486693 al:130 bm:642 lo:0 pe:0 ua:0 ap:0 oos:16124 [=========>..........] sync'ed: 50.0% (16124/20640)K finish: 0:00:10 speed: 1,504 (1,504) K/sec

Useful commands :

Set the sync speed on a running DRBD cluster : drbdsetup /dev/drbd0 syncer -r 10M

There’s plenty of discussion on the right speed to set. It really all depends on your application, network, etc.

More useful commands to come later.

I have integrated DRBD into a RHCS Cluster (for Zarafa), check the doc here : http://www.drbd.org/users-guide/ch-rhcs.html




Thanks for reading this post!


Did you find an issue in this article?

- click on the following Github link
- log into Github with your account
- click on the line number containing the error
- click on the "..." button
- choose "Reference in new issue"
- add a title and your comment
- click "Submit new issue"

Your feedback is much appreciated! πŸ€œπŸΌπŸ€›πŸΌ

You can also drop me a line below!