How To Upgrade DRBD Userland Version To 8.3.9 Under OpenSUSE 11.4
When you try to run a cluster server with corosync, drbd, ocfs2 and pacemaker, and you try to install default drbd package under OpenSUSE 11.4 through yast or zypper, you may face the same problem as me:
The system reports that:
Starting DRBD resources: DRBD module version: 8.3.9
userland version: 8.3.8
you should upgrade your drbd tools!
and you cannot go further. We either wait till the OpenSUSE community releases new drbd packages which match the kernel-builtin module, or download drbd source code and upgrade drbd userland to 8.3.9 based on kernel source tree.
This documentation shows you how to compile the drbd package 8.3.9 based on the OpenSUSE 11.4 kernel source tree (we do need to build the kernel source tree, but we do not need to recompile the kernel). It is for test purposes only, and it works for my working environment and I cannot guarantee that this works for you.
Please contact me if you have any questions: email@example.com. Thanks.
In this tutorial I will run 2 OpenSUSE 11.4 32-bit servers under VMware Workstation, both servers were built from OpenSUSE 11.4 live-CD, which you can download from http://www.opensuse.org.
Both servers have 2 disks:
/dev/sda: OpenSUSE system OS;
/dev/sdb: for DRBD only
Server names and network addresses:
Step 1. Install kernel-source, gcc, flex, make On Both Servers
zypper install kernel-source gcc flex make
After installation, you will see:
Before we do any work, we need to work on the kernel first, now switch to /usr/src/linux, and create a copy of the .config file of the current-running kernel:
cp /boot/config-18.104.22.168-1.2-desktop ./.config
To make menuconfig compile the kernel, we need the ncurses-devel package:
zypper install ncurses-devel
And now run make menuconfig:
In the following screen, highlight "Load an Alternate Configuration File", and click enter:
In the new window, .config file is auto selected; now click enter:
Select exit, and save the changes. Now the kernel source tree is ready to be used for compiling the drbd source code.