昔はDRBDはストレージの冗長化のOSSだった気がするのだけど、バージョン9はイロイロ機能が増えたらしいので試してみた
環境 OS:CentOS 7.6
仮想サーバを3台用意
HOSTNAME IPADDRESSS ------------------------- drbd9-01 172.16.1.233 drbd9-02 172.16.1.234 drbd9-03 172.16.1.235
という訳でインストール
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm yum install kmod-drbd90 drbd90-utils
LINSTORはBUILDする必要がある
cd /usr/local/src/ mkdir drbd9 cd drbd9
LINSTORの最新はここ
https://www.linbit.com/en/drbd-community/drbd-download/
goldに2019年5月10日時点の最新をダウンロードしてある
wget http://gold.hyperdc.net/new/github/inst/DRBD9/linstor-client-0.9.3.tar.gz wget http://gold.hyperdc.net/new/github/inst/DRBD9/linstor-server-0.9.7.tar.gz wget http://gold.hyperdc.net/new/github/inst/DRBD9/python-linstor-0.9.3.tar.gz
JAVAの環境が必要らしいので設定
curl -s get.sdkman.io | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk version sdk install gradle
LINSTOR SERVER BUILD
yum install rpm-build yum install java-1.8.0-openjdk-headless java-1.8.0-openjdk-devel rpmbuild -tb linstor-server-0.9.7.tar.gz
必要なパッケージをインストール
yum install protobuf-compiler yum install python-setuptools yum install protobuf-python
RPMパッケージを作ってインストール
tar zxvf python-linstor-0.9.3.tar.gz cd python-linstor-0.9.3 make rpm cd dist yum install python-linstor-0.9.3-1.noarch.rpm tar zxvf linstor-client-0.9.3.tar.gz cd linstor-client-0.9.3 make rpm cd dist yum install linstor-client-0.9.3-1.noarch.rpm
RPMでLINSTORをインストールする
wget http://gold.hyperdc.net/new/github/inst/DRBD9/linstor-client-0.9.3-1.noarch.rpm wget http://gold.hyperdc.net/new/github/inst/DRBD9/linstor-common-0.9.7-1.el7.noarch.rpm wget http://gold.hyperdc.net/new/github/inst/DRBD9/linstor-controller-0.9.7-1.el7.noarch.rpm wget http://gold.hyperdc.net/new/github/inst/DRBD9/linstor-satellite-0.9.7-1.el7.noarch.rpm wget http://gold.hyperdc.net/new/github/inst/DRBD9/python-linstor-0.9.3-1.noarch.rpm
LVMを設定する
fdisk /dev/vdb pvcreate /dev/vdb1 vgcreate vg1 /dev/vdb1
LINSTORの起動
systemctl start drbd systemctl start linstor-controller systemctl start linstor-satellite
クラスタへノード登録 1台目を登録
linstor node create drbd9-01 172.16.1.233
ノードが追加されている事を確認
linstor node list
2台目を登録
linstor node create drbd9-02 172.16.1.234
追加したサーバでlinstor-satelliteを起動
systemctl start linstor-satellite
firewallで3366ポートを開けないとONLINEにならないと思う
firewall-cmd --add-port=3366/tcp --permanent firewall-cmd --reload
ストレージプールの作成
linstor storage-pool create lvm drbd9-01 pool1 vg1 linstor storage-pool create lvm drbd9-02 pool1 vg1
作成したストレージプールの確認
linstor storage-pool list
ボリューム定義の作成
linstor resource-definition create vol1 linstor volume-definition create vol1 1G
自動配備 事前にポートを開けておかないと通信が出来ない
firewall-cmd --add-port=7000/tcp --permanent firewall-cmd --reload
自動配備する
linstor resource create vol1 --auto-place 2
作成したプールを使う
mkfs.xfs /dev/drbd1000 mkdir /mnt/drbd mount /dev/drbd1000 /mnt/drbd df -h
3台目を追加する
DRBD9とlinstorをインストールしておく fdisk /dev/vdb pvcreate /dev/vdb1 vgcreate vg1 /dev/vdb1 systemctl start drbd systemctl start linstor-controller systemctl start linstor-satellite firewall-cmd --add-port=3366/tcp --permanent firewall-cmd --reload
ここからは1台目で実行
linstor node create drbd9-03 172.16.1.235 3台目のLVMボリュームをストレージプールに追加 linstor storage-pool create lvm drbd9-03 pool1 vg1 linstor storage-pool list linstor resource-definition create vol2 linstor volume-definition create vol2 2G linstor resource create drbd9-02 vol2 --storage-pool pool1 linstor resource create drbd9-03 vol2 --storage-pool pool1 linstor storage-pool list