DRBDのパッケージコンパイル方法
前にDRBD9 LINSTOR 構築手順書という資料でDRBDのパッケージのビルド方法を紹介しました。
資料を公開してからかなり時間が経ったため、この資料の通りDRBDのパッケージのコンパイルが出来なくなりました。(途中で動作エラーになります。)
今回はDRBDのパッケージのコンパイル方法を説明します。
ビルド環境の準備
DRBDのパッケージをコンパイルする専用のマシンを用意し、コンパイルに必要な開発パッケージを追加します。本書で使用したビルド環境のOSのバージョンはCent OS 7.9になります。ビルド環境はVirtualbox上の仮想マシンに準備しました。割り当てたメモリーは2GB、ストレージは5GBです。
CentOS 7の最小インストールをしたものに次のパッケージを追加しました。
# yum -y install epel-release
# yum -y groupinstall "Development Tools"
# yum -y install kernel-devel docbook-style-xsl
# yum -y install rubygem-asciidoctor po4a
DRBD カーネルのビルド
まずDRBD9 カーネルをビルドします。
# mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
# git clone git://github.com/LINBIT/drbd-9.0.git
# cd drbd-9.0
# make tarball
# make kmp-rpm
makeを実行したときに、次のようなエラーが表示されることがあります。
SORRY, kernel makefile not found. You need to tell me a correct KDIR!
この場合は環境変数KDIRに、カーネルソース がある正しいパスを与えます。例えば次のような設定になります。
export KDIR=/usr/src/kernels/3.10.0-1160.36.2.el7.x86_64
KDIRを設定して、make を再度実行します。最新の kernel に update していない場合にもこのエラーが出る可能性があります。
# make kmp-rpm
成功すると ~/rpmbuild/RPMS/x86_64/ にrpmファイルが作成されます。
drbd-kernel-debuginfo-*.el7.x86_64.rpm
kkmod-drbd-9.0.*.el7.x86_64.rpm
drbd-utilsのビルド
次にdrbd-utils をビルドします。LINBITのgithubサイトからソースをダウンロードします。
# git clone https://github.com/LINBIT/drbd-utils.git
# cd drbd-utils/
drbd-utilsディレクトリでビルド環境のセットアップと、パッケージのビルドを実行します。
# ./autogen.sh
# ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
# make tarball VERSION=9.18.0
# cp drbd-utils-9.18.0.tar.gz ~/rpmbuild/SOURCES
# ./configure --enable-spec
# rpmbuild -bb drbd.spec --without sbinsymlinks --without heartbeat
make tarballでコマンドlbvers.pyが見つからないというエラーが出た場合は、次のように空ファイルを作成すればエラーを回避できます。
# install /dev/null /usr/local/bin/lbvers.py
VERSION番号はconfigure.acのAC_INIT(DRBD, 9.18.0, [drbd-dev@lists.linbit.com])の番号になります。
ビルドに成功すると~/rpmbuild/RPMS/x86_64/ にdrbd-utilsのrpmファイルが作成されます。
drbd-9.18.0-1.el7.x86_64.rpm
drbd-bash-completion-9.18.0-1.el7.x86_64.rpm
drbd-debuginfo-9.18.0-1.el7.x86_64.rpm
drbd-man-ja-9.18.0-1.el7.x86_64.rpm
drbd-pacemaker-9.18.0-1.el7.x86_64.rpm
drbd-udev-9.18.0-1.el7.x86_64.rpm
drbd-utils-9.18.0-1.el7.x86_64.rpm
drbd-xen-9.18.0-1.el7.x86_64.rpm
作成できたrpmファイルをDRBDを動かしたいサーバにコピーして、rpmコマンドでインストールできます。