はじめに
Amazon Linux 2023 へ、DRBDをインストールして、マルチA-Zでりあるたいレプリケーションを行う手順です。
以下のガイドに従ってソースからのインストールを行います。
Ubuntu上での構築と、基本的な操作は以下の記事を参照してください。
環境
- OSは、Amazon Linux 2023
Linux node1 6.1.130-139.222.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 11 01:10:58 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
- ノードは2つで、node1, node2
- node1 は
192.168.0.100
、node2 は192.168.0.200
- 同一VPCでマルチA-Zで2つのインスタンスを配置
- 互いにSGで
Ping
とTCP:7789
、TCP:7799
を開ける - インスタンスには、DRBDで使用するボリュームを追加しておく、ここでは、
/dev/xvdb
ビルドとインストール
必要なパッケージのインストール
sudo dnf groupinstall "Development Tools"
sudo dnf install kernel-devel kernel-headers
sudo dnf install libxslt libxslt-devel
sudo dnf install asciidoc xmlto wget
sudo dnf install autoconf automake libtool pkg-config
sudo dnf install glib2 glib2-devel libxml2 libxml2-devel
sudo dnf install lvm2
ソースコードの取得
公式 から最新のDRBDとユーティリティのソースコードをダウンロードします。
wget https://pkg.linbit.com//downloads/drbd/9/drbd-9.2.13.tar.gz
wget https://pkg.linbit.com//downloads/drbd/utils/drbd-utils-9.30.0.tar.gz
tar -xvf drbd-9.2.13.tar.gz
tar -xvf drbd-utils-9.30.0.tar.gz
ビルドとインストール
DRBD
cd drbd-9.2.13/
make
sudo make install
カーネルモジュール
cd drbd
make KDIR=/usr/src/kernels/$(uname -r)
sudo make KDIR=/usr/src/kernels/$(uname -r) install
sudo modprobe drbd
ユーティリティ
cd ../../
cd drbd-utils-9.30.0/
./autogen.sh
./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc --without-manual
make
sudo make install
サービス化
sudo systemctl enable --now drbd
動作確認
drbdadm --version
cat /proc/drbd
設定
node1, node2 の双方で行う
LVMの作成
sudo pvcreate /dev/xvdb
sudo vgcreate vg0 /dev/xvdb
sudo lvcreate -l100%FREE -n lv0 vg0
設定ファイルの作成
sudo tee /etc/drbd.d/global_common.conf <<EOF > /dev/null
global {
usage-count no;
}
common {
net {
protocol C;
}
}
EOF
sudo tee /etc/drbd.d/r0.res <<EOF > /dev/null
resource r0 {
device /dev/drbd0;
disk /dev/vg0/lv0;
meta-disk internal;
on node1 {
address 192.168.0.100:7789;
}
on node2 {
address 192.168.0.200:7799;
}
}
EOF
DRBDボリュームの作成
sudo drbdadm create-md r0
sudo drbdadm up r0
sudo drbdadm status r0
プライマリの決定
node1 で行う
sudo drbdadm primary r0
以下のエラーとなったときは、強制的にprimaryを決定する
sudo drbdadm primary r0
r0: State change failed: (-2) Need access to UpToDate data
Command 'drbdsetup primary r0' terminated with exit code 17
sudo drbdadm -- --force primary r0
DRBD上にファイルシステムを作成
sudo mkfs.ext4 /dev/drbd0
マウント
sudo mount /dev/drbd0 /export
基本的な操作は以下の記事を参照してください。
リンク
- LINBIT | DRBD9 ユーザーズガイド | ソースコードからのDRBDのビルドおよびインストール
- 【2023年06月版】Ubuntu22.04 上での DRBD によるストレージレプリケーション
さいごに
かんたんでしたね