UbuntuでLINSTORを試してみた

前にこのページで紹介しましたが、LINBITは無料で利用できるUbuntuサーバ用のリポジトリを公開しています。

今回はこのリポジトリを使って、DRBDとLINSTORのテスト環境を作ってみます。

1.動作環境の準備

テストが目的ならば、動作環境は普通のパソコンにVirtualboxを入れたものでも十分です。今回のテスト環境はいわゆる小型パソコンと呼ばれるモデルで、CPUとメモリー、ストレージのスペックは以下です。

  • CPU      Intel(R) Core(TM) i5-6260U CPU @ 1.80GHz
  • メモリー  16GB
  • ストレージ 200GB

これにCentOS7をインストールして、Virtualboxが動く環境を整えました。

Virtuaboxで3つのUnuntu 20.04のゲストOSをそれぞれインストールします。

ノード名IPアドレス
node1192.168.3.101
node2192.168.3.102
node3192.168.3.103

メモリーはそれぞれ2GB、ストレージはシステム用に10GB、DRBD用に10GBほどあればテストには十分です。

ホスト名とIPアドレスは/etc/hostsに登録して、相互にホスト名でアクセスができるようにしてください。

 

2.DRBDのインストール

DRBD9のリポジトリを登録します。このリポジトリにはLINSTORのパッケージも含まれています。

add-apt-repository ppa:linbit/linbit-drbd9-stack

登録したらDRBDをインストールします。

apt-get update
apt install drbd-utils drbd-dkms lvm2

インストールが終わったら、modprobeコマンドでDRBDのカーネルモジュールを有効にします。

modprobe drbd

DRBDがカーネルに組み込まれたか確認するには、lsmodコマンドを実行するか/proc/drbdファイルを調べます。

cat /proc/drbd
version: 9.0.24-1 (api:2/proto:86-117)
GIT-hash: 6e91f89e4016d01512db171d98b3424204d254dc build by root@node1, 2020-09-11 07:36..
Transports (api:16): tcp (9.0.24-1)

無事にインストールができました。

3.LINSTORのインストール

次にLINSTORをインストールします。LINSTORはControllerとSateliteの2つのノードがあります。今回はnode1をControllerノード兼Sateliteノード、node2、node3をSateliteノードとして設定します。

node1でlinstor-controller linstor-satellite linstor-clientをインストールします。

apt install linstor-controller linstor-satellite linstor-client

LINSTOR Controllerを起動します。またサーバーの再起動に自動起動するように合わせて設定します。

systemctl enable linstor-controller
systemctl start linstor-controller

node2、node3ではSateliteのみをインストールします。

apt install linstor-satellite linstor-client

Sateliteは自動起動の設定は必要ありません。

4.LINSTORの初期化

3つのノードをLINSTORのクラスターとして登録します。Controllerノードであるnode1で次のコマンドを実行します。

linstor node create node1 192.168.3.101
linstor node create node2 192.168.3.102
linstor node create node3 192.168.3.103

LINSTORでノードの状況を確認します。このコマンドもnode1で実行します。

linstor node list 
+---------------------------------------------------------+
| Node  | NodeType  | Addresses                  | State  |
|=========================================================|
| node1 | SATELLITE | 192.168.3.101:3366 (PLAIN) | Online |
| node2 | SATELLITE | 192.168.3.102:3366 (PLAIN) | Online |
| node3 | SATELLITE | 192.168.3.103:3366 (PLAIN) | Online |
+---------------------------------------------------------+

5.ストレージプールの設定

本テスト環境にはそれぞれ10GBのデータ用のストレージがあります。これをLVMで初期化して、LINSTORのストレージプールとして登録します。

以下の操作は、node1、node2、node3全てのノードで実行します。

ますデータ用のストレージ(/dev/sdb)をpvcreateで登録します。

pvcreate /dev/sdb

次にボリュームグループを登録します。

vgcreate vg /dev/sdb

最後にLVを登録します。

lvcreate -l 100%FREE --thinpool vg/lvmthinpool

以上でLVMの設定は終わりです。

あとは、LINSTORにストレージプールを登録しましょう。このコマンドもnode1で実行します。

linstor storage-pool create lvmthin node1 linstor-pool vg/lvmthinpool
linstor storage-pool create lvmthin node2 linstor-pool vg/lvmthinpool
linstor storage-pool create lvmthin node3 linstor-pool vg/lvmthinpool

LINSTORに登録ができたか確認してみます。

linstor storage-pool list

次のように表示されば正常な動作になります。

6,次のステップ

LINSTORを使う準備が終わりました。日本語に訳されたLINSTORのユーザーズガイドをみて、冗長化されたボリュームを作ってみてください。