T630にProxmox + DRBDでクラスタを組む

HPのシンクライアントであるT630にProxmoxを入れて、DRBDで共有ディスクを構築してクラスタとする話です。

T630自体はAMDのx64の4コアなシンクライアントです。メモリもDDR4が2枚、ストレージもM.2 SATAが2枚ので拡張性もそこそこです。

最初はCephを組んでみたのですが、ネットワークが1GbEとは言え、Read 65MB/s、Write 16MB/sぐらいしか出ず、小規模の環境じゃパフォーマンスが出ないことが分かったので昔にDRBDで1GbE環境では書き込み100MB/s程度出たなーというのを思い出したので、実質Proxmoxはdebianなので、DRBD入れればNFSもなしで行けると思ったので、やってみようと思いました。

とりあえず、リポジトリの変更からやっていきます。サブスクリプションなしのリポジトリに書き換えて、更新します。

# echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" \
> /etc/apt/sources.list.d/pve-enterprise.list

# apt update 
# apt upgrade -y

次にlinbitのリポジトリをリポジトリを登録していきます。

# wget -O- https://packages.linbit.com/package-signing-pubkey.asc | apt-key add - 
# echo "deb http://packages.linbit.com/proxmox/ proxmox-7 drbd-9" \
  > /etc/apt/sources.list.d/linbit.list
# apt update

drbdのパッケージをインストールしていきます。

# apt install pve-headers -y
# apt install drbd-dkms drbd-utils -y
# apt install bcache-tools -y
# modprobe drbd
# grep -q drbd /etc/modules || echo "drbd" >> /etc/modules

LINSTORをインストールし、自動起動を有効にしていきます。ここでOS再起動をかけておきます。

# apt install linstor-controller linstor-satellite linstor-client linstor-proxmox -y
# systemctl start linstor-satellite
# systemctl enable linstor-satellite
# reboot

最後に共有にするストレージのVGを作成しておきます。

# vgcreate vg_ssd /dev/sda

ここまではクラスタを組む3ノード全台で実施します。

ここからは1ノードで実施します。コントローラを起動して、ノード登録をしていきます。

# systemctl start linstor-controller
# systemctl enable linstor-controller
# linstor node create pve-alice 192.168.8.21 --node-type Combined
# linstor node create pve-belle 192.168.8.22 --node-type Combined
# linstor node create pve-clare 192.168.8.23 --node-type Combined
# linstor node list
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Node      x NodeType x Addresses                 x State  x
tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
x pve-alice x COMBINED x 192.168.8.21:3366 (PLAIN) x Online x
x pve-belle x COMBINED x 192.168.8.22:3366 (PLAIN) x Online x
x pve-clare x COMBINED x 192.168.8.23:3366 (PLAIN) x Online x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

次にストレージプールを作成していきます。

# linstor storage-pool create lvm pve-alice pool_ssd vg_ssd
# linstor storage-pool create lvm pve-belle pool_ssd vg_ssd
# linstor storage-pool create lvm pve-clare pool_ssd vg_ssd

作成したプールを確認します。128GBのLVMを3人とも認識しています。

#  linstor storage-pool list
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x StoragePool          x Node      x Driver   x PoolName x FreeCapacity x TotalCapacity x CanSnapshots x State x SharedName x
tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
x DfltDisklessStorPool x pve-alice x DISKLESS x          x              x               x False        x Ok    x            x
x DfltDisklessStorPool x pve-belle x DISKLESS x          x              x               x False        x Ok    x            x
x DfltDisklessStorPool x pve-clare x DISKLESS x          x              x               x False        x Ok    x            x
x pool_ssd             x pve-alice x LVM      x vg_ssd   x   119.24 GiB x    119.24 GiB x False        x Ok    x            x
x pool_ssd             x pve-belle x LVM      x vg_ssd   x   119.24 GiB x    119.24 GiB x False        x Ok    x            x
x pool_ssd             x pve-clare x LVM      x vg_ssd   x   119.24 GiB x    119.24 GiB x False        x Ok    x            x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

リソースグループを作成します。

# linstor resource-group create rg_ssd --storage-pool pool_ssd --place-count 2

Proxmoxのストレージの設定をしていきます。

# vi /etc/pve/storage.cfg
##以下を追記
drbd: drbdstorage
	content rootdir,images
	controller 192.168.8.21,192.168.8.22,192.168.8.23
	resourcegroup rg_ssd
	preferlocal  yes

ストレージ設定したので、再起動します。

# systemctl restart pvedaemon

これでProxmoxの画面から見ると、以下のようにdrbdstorageが増えています。
容量は128GBで認識するようですね。–place-count 2なので192GBになるんかなと思ってました。

drbdstorage上にVMを立ててベンチマークしてみます。

# apt-get install fio -y
# wget http://www.winkey.jp/downloads/visit.php/fio-crystaldiskmark
# fio fio-crystaldiskmark

Run status group 0 (all jobs):
   READ: bw=215MiB/s (225MB/s), 215MiB/s-215MiB/s (225MB/s-225MB/s), io=1024MiB (1074MB), run=4773-4773msec

Run status group 1 (all jobs):
  WRITE: bw=45.4MiB/s (47.6MB/s), 45.4MiB/s-45.4MiB/s (47.6MB/s-47.6MB/s), io=1024MiB (1074MB), run=22553-22553msec

Run status group 2 (all jobs):
   READ: bw=226MiB/s (237MB/s), 226MiB/s-226MiB/s (237MB/s-237MB/s), io=1024MiB (1074MB), run=4529-4529msec

Run status group 3 (all jobs):
  WRITE: bw=38.2MiB/s (40.1MB/s), 38.2MiB/s-38.2MiB/s (40.1MB/s-40.1MB/s), io=1024MiB (1074MB), run=26798-26798msec

Run status group 4 (all jobs):
   READ: bw=12.8MiB/s (13.4MB/s), 12.8MiB/s-12.8MiB/s (13.4MB/s-13.4MB/s), io=767MiB (805MB), run=60001-60001msec

Run status group 5 (all jobs):
  WRITE: bw=1056KiB/s (1081kB/s), 1056KiB/s-1056KiB/s (1081kB/s-1081kB/s), io=61.9MiB (64.9MB), run=60003-60003msec

Run status group 6 (all jobs):
   READ: bw=94.8MiB/s (99.4MB/s), 94.8MiB/s-94.8MiB/s (99.4MB/s-99.4MB/s), io=1024MiB (1074MB), run=10797-10797msec

Run status group 7 (all jobs):
  WRITE: bw=22.8MiB/s (23.9MB/s), 22.8MiB/s-22.8MiB/s (23.9MB/s-23.9MB/s), io=1024MiB (1074MB), run=44974-44974msec

Disk stats (read/write):
    dm-0: ios=461668/281018, merge=0/0, ticks=170136/1321032, in_queue=1491168, util=99.30%, aggrios=461668/281156, aggrmerge=0/32, aggrticks=176128/1338523, aggrin_queue=1517673, aggrutil=99.28%
  sda: ios=461668/281156, merge=0/32, ticks=176128/1338523, in_queue=1517673, util=99.28%

読み込みは自身のノードのものを見るので、215MB/sとSATAのSSDらしい数値が出ています。書き込みは45MBと物足りませんが、Cephの時は16MB/sだったので、DRBDのほうが速い結果になりました。

今回SSDにはTHNSNK128GVN8を使用しましたが、これがそもそも書き込み130MB/s程度しか出ないので、もう少し高速なSSDに変更すれば結果はよくなるかもしれません。

次はSSDを変えるか、LANを専用にするようにしてみようと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)