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を専用にするようにしてみようと思います。