はじめに
既存のProxmox VEクラスタはTX1320 M2を3台構成で構築していました。
2024年にダラダラと機材を買い集めたりして Lenovo ThinkCentre M75s Gen 5 - Hardware and ECC memory でECCメモリが動作しそうなことも分かったので、いよいよThinkCentre M75s Gen 5を3台構成でProxmox VEクラスタを再構築して移行することにしました。
設定とか細かい話はさておき、概要や経緯などを整理しておこうと思います。
構成情報
おおよその機器構成の比較は以下の通り。
TX1320 M2 (01) | TX1320 M2 (02, 03) | ThinkCentre M75s Gen5 | |
---|---|---|---|
Shipset | C236 | C236 | AMD Phoenix PRO 665 |
CPU model | Xeon E3-1220v5 | Xeon E3-1230v5 | Ryzen 7 Pro 8700G (APU) |
Core/Thread | 4C/4T | 4C/8T | 8C/16T |
CPU Mark - Single Thread Rating | 2,070 | 2,196 | 3,960 |
CPU Mark - Multithread Rating | 5,815 | 7,930 | 31,762 |
Memory | DDR4-2133 ECC 16GB x4(64GB) | DDR4-2133 ECC 16GB x2(32GB) | DDR5-5600 ECC 32GB x2(64GB) |
System disk | SATA SSD WD Green 120GB | SATA SSD WD Green 120GB | 付属(NVMe SSD 256GB) |
Data disk | SATA SSD MX500 2TB | SATA SSD MX500 2TB | SATA SSD Intel DC S4500 3.84TB |
Ethernet | GbE x2 / iRMC x1 | GbE x2 / iRMC x1 (Advanced) | 1GbE x1 (DASH) |
Remote管理機能 | iRMC | iRMC + Advanced | NanoKVM |
PCI slot 1 | PCIe 3.0 x8 - 空き | PCIe 3.0 x8 - 空き | PCIe 3.0 x16 - Intel X520 |
PCI slot 2 | PCIe 3.0 x8 - 空き | PCIe 3.0 x8 - 空き | PCIe 3.0 x1 - NanoKVM PCIe |
PCI slot 3 | PCIe 3.0 x4 - 空き | PCIe 3.0 x4 - 空き | - |
PCI slot 4 | PCIe 3.0 x1 - 空き | PCIe 3.0 x1 - 空き | - |
電源 | 250W | 250W | 260W |
TX1320 M2は2017年に PRIMERGY TX1320 M2が来たよー の辺りで購入したもの。
01は新品だけど02,03はたまたま当時安かった中古の構成品を調達したので、ハードウェア構成が少し違う。
ThinkCentre M75s Gen5は細々とパーツを集めていたので、調達時期が不安定。
一応手元のメモによれば時期感はこれくらい。
時期 | 品目 | メモ |
---|---|---|
2022年くらい | Intel X520 | 貰いものなので2022年くらいから部屋に眠ってたやつだと思う(曖昧) |
2024年4月25日 | Intel DC S4500 | 結局eBayから購入した(※)。到着は5月末くらいだったと思う。 |
2024年9月30日 | NanoKVM PCIe | いつのロットか忘れたけど3個セットで公式から買ったはず |
2024年12月6日 | ThinkCentre M75s Gen 5 | 1台目の検証機。大体同日くらいでメモリも買った。 |
2025年3月20日 | Rucks ICX7150-24 | 10GbE SW |
2025年3月21日 | ThinkCentre M75s Gen 5 | 残りの2台は2点セットで購入 |
※最初はAmazonで買おうとしたけど、マーケットプレイスの業者が2連続で「ご注文商品在庫切れになっております。全額返金させて頂きますので注文キャンセルをお願いいたします。」などと回答してきた。キャンセルは商品を用意できない業者側の都合ではないですかとAmazonに通告。無在庫転売してた品目の差額補正をサボっていたせいで注文請けてから赤字になることに気付いたんじゃないだろうか。願わくば廃業するかAmazonにBANされて欲しい。
費用
クラスタ構築の生々しい費用感を載せておきます。
大体1基20万強なので、TX1320 M2を構築した時の費用感と比べると…性能を考えると、まぁ、まぁ…比較的、心なしか、同じくらい、なんじゃないでしょうか。楽天リーベイツ様様です。
おまけで基幹SWの更改とかCeph用バックプレーンの10G SWも追加しているので、それは参考程度に。
用途 | 品目 | カテゴリ | 単価(税込) | 個数 | 金額 |
---|---|---|---|---|---|
仮想サーバー #1 | ThinkCentre M75s gen 5 #1 | 本体 | ¥108,779 | 1 | ¥108,779 |
楽天リーベイツ還元 | ポイント | ¥-21,756 | 1 | ¥-21,756 | |
KSM56E46BD8KM-32HA | ECCメモリ | ¥27,958 | 2 | ¥55,916 | |
NanoKVM-PCIe | KVM拡張カード | ¥6,866 | 1 | ¥6,866 | |
Intel X520 | 10GbE NIC | ¥0 | 1 | ¥0 | |
SFP+ | 10GbE Module | ¥0 | 2 | ¥0 | |
Intel DC S4500 Series 3.84TB | SSD | ¥61,162 | 1 | ¥61,162 | |
仮想サーバー #2 | ThinkCentre M75s gen 5 #1 | 本体 | ¥105,904 | 1 | ¥105,904 |
楽天リーベイツ還元 | ポイント | ¥-21,181 | 1 | ¥-21,181 | |
KSM56E46BD8KM-32HA | ECCメモリ | ¥27,678 | 2 | ¥55,356 | |
NanoKVM-PCIe | KVM拡張カード | ¥6,866 | 1 | ¥6,866 | |
Intel X520 | 10GbE NIC | ¥0 | 1 | ¥0 | |
SFP+ | 10GbE Module | ¥0 | 2 | ¥0 | |
Intel DC S4500 Series 3.84TB | SSD | ¥61,162 | 1 | ¥61,162 | |
仮想サーバー #3 | ThinkCentre M75s gen 5 #1 | 本体 | ¥105,904 | 1 | ¥105,904 |
楽天リーベイツ還元 | ポイント | ¥-21,181 | 1 | ¥-21,181 | |
KSM56E46BD8KM-32HA | ECCメモリ | ¥27,678 | 2 | ¥55,356 | |
NanoKVM-PCIe | KVM拡張カード | ¥6,866 | 1 | ¥6,866 | |
Intel X520 | 10GbE NIC | ¥0 | 1 | ¥0 | |
SFP+ | 10GbE Module | ¥0 | 2 | ¥0 | |
Intel DC S4500 Series 3.84TB | SSD | ¥61,162 | 1 | ¥61,162 | |
基幹SW | Rucks ICX7150-24 | L2SW | ¥35,624 | 1 | ¥35,624 |
SFP+ | 10GbE Module | ¥0 | 3 | ¥0 | |
Ceph用SW | JT-S508CL-8S | 10GbE SW | ¥10,593 | 1 | ¥10,593 |
SFP+ | 10GbE Module | ¥0 | 3 | ¥0 | |
その他 | その他 | ケーブル類 | ¥5,000 | 1 | ¥5,000 |
合計 | ¥678,399 |
インストール設定
Proxmox VE自体は大体こんな感じでインストール。IP周りは省略。
pve-a01 | pve-a02 | pve-a03 | Tag | |
---|---|---|---|---|
Power - Intelligent Cooling | Balance mode | Balance mode | Balance mode | BIOS |
Filesystem | ext4 | ext4 | ext4 | Proxmox installer |
Disk | /dev/nvme0n1 | /dev/nvme0n1 | /dev/nvme0n1 | Proxmox installer |
Country | Japan | Japan | Japan | Proxmox installer |
Timezone | Asia/Tokyo | Asia/Tokyo | Asia/Tokyo | Proxmox installer |
Keymap | jp | jp | jp | Proxmox installer |
root@example.com | root@example.com | root@example.com | Proxmox installer | |
Management interface | enp12s0f1 | enp12s0f1 | enp12s0f1 | Proxmox installer |
Hostname | pve-a01 | pve-a02 | pve-a03 | Proxmox installer |
初期設定とか
人によりけりなのでメモ程度に列挙。
Repositoryの設定
WebUIからEnterpriseなpveとcephのリポジトリをDisable、pve-no-subscriptionを追加。
NTP(chrony)の設定
デフォルトのNTPを無効にして家の中のNTPサーバーに向け直す。IPは文書用なのでコピペしても動かないよ。
|
|
Nested KVMの確認
見た感じデフォルトで有効になっているのでOK
|
|
lm-sensorsの追加
lm-sensorsパッケージを追加して温度確認できるように。
|
|
WebUIを443/TCPでも使えるように
デフォルトの管理WebUIのポート番号が8006なので、443でアクセスしても繋がるようにしておく。
|
|
Proxmox VEのクラスタ設定
最初にクラスタを作るノードに公開鍵を登録しておく。
特にrootユーザーの authorized_keys
は実体が /etc/pve
に置かれているので、クラスタを組んだ後にcorosyncで共有されてしまう。
|
|
こんな感じでWebUIから作る。
Join Informationからクラスタ参加情報をコピー
PasswordとCluster networkのサブネットを選択してJoin
上手くいくとクラスタを作成したノード側にクラスタノードが追加されます。
Joinした側のノードのWebUIは一度接続が切れるので、そちらは閉じて良い。
必要なノード数分作業して、全部登録されたらOK。
Cephクラスタ設定
Host -> CephまたはDatacenter -> CephからCeph Squid (19.2)をインストール
Public Networkだけを裏の10G Linkを使うように設定します。
残りのノードも同様にHost -> CephからCeph Squid (19.2)をインストール。
1台目でConfigurationが終わっているので、2台目以降はInstallationのみで完了です。
Ceph Monitorの追加
デフォルトでは1台目にしかmonitor/managerが設定されていませんので、Ceph -> MonitorからMonitorとManagerに2,3台目を追加します。
Ceph OSDの追加
なにかで使っていると No Disks unused と言われるので、その場合はwipeします。
|
|
とても有名なSSDの書き込みキャッシュ無効化の話。Forumでもたまに話題になります。
- https://yourcmc.ru/wiki/Ceph_performance
- https://forum.proxmox.com/threads/disabling-write-cache-on-ssds-with-ceph.112767/
今回のOSD用SSDはSATA接続の INTEL SSDSC2KB038T7
ですが、デフォルトでは書き込みキャッシュが有効になっていました。
|
|
あとでベンチマークを取るので、これは一旦有効のまま進めます。
OSDに追加できるDiskは /dev/sda
しかないので、自動的に選択されました。そのほかの設定はそのままです。
3台分設定出来たら完了です。
VMイメージ用Cephプールを作成
安直に datastore
を作ります。
PG Autoscaler Modeは on
でもそう実害は無いと思いますが https://pve.proxmox.com/wiki/Deploy_Hyper-Converged_Ceph_Cluster#pve_ceph_pools のデフォルトに合わせて warn
にしておきます。
作成すると自動的に Datacenter/Storage に追加されます。
VMイメージ用プールに透過圧縮を設定
初期状態では透過圧縮機能が有効になっていません。 VMイメージの場合は割と圧縮が効く印象ですので、有効にしていきます。
|
|
圧縮アルゴリズムとしては、とりあえずlz4を選んでおけば良いと思います。
参考: https://stackoverflow.com/questions/67537111/how-do-i-decide-between-lz4-and-snappy-compression
lz4は公式プラグインとしては提供されないので、その点については注意。
BlueStore supports inline compression using snappy, zlib, or lz4. Please note that the lz4 compression plugin is not distributed in the official release. https://docs.ceph.com/en/quincy/rados/configuration/bluestore-config-ref/#inline-compression
compression_mode
が aggressive
だと圧縮不可のclient hintを付与していない限り、可能な範囲で圧縮してくれるようになります。
書き込み済みのデータは圧縮されないので、出来ればOSD Pool作成時に設定しておきたいです。
ひとまず以下のように設定。(クラスタなので、どこか1つのノードで設定すればOK)
|
|
ちゃんと compression_algorithm lz4 compression_mode aggressive が設定されています。
|
|
CephFSの設定
CephFSも使えるとcloud-initや起動時のhook-scriptが格納出来て便利なので作成します。
まずはMetadata Serversを3台分設定します。
Create CephFSから作成。大した量を置かないのでPGは32にしておきます。
自動的にPoolが作成されるので、こちらも透過圧縮設定を入れておきます。
|
|
Live MigrationのNWと帯域
Live migrationで使うLinkをCephと同じ10Gネットワークに設定して、帯域を750 MiB/sに設定しておきます。
Notificationの対応
Mailを無効にして代わりにSlackを使います。
まずはSlackへのNotificationの追加。
元々あった mail-to-root はModifyでEnableのチェックを外しておきます。
Notification Matcherを新しく追加します。
Match Rulesはデフォルトで全部なので、ひとまずそのままで良いです。
通知先に先ほど追加したSlackを指定して作成します。
元々登録されていたdefault-matcherのEnableのチェックは外しておきます。
最後に、TestからSlackに送信されることを確認して完了です。
VMの移行
半分くらいはNASを介してBackup & Restoreしました。語ることが無い。
もう半分くらいは、ついでにOSをクリーンインストールしてAnsibleで再構築しました。これまた語れることが無い。
qm remote-migrateの動作確認
せっかく移行するなら qm remote-migrate
というコマンドで、直接別クラスタからVMを移動してみたいと思っていました。
が、結論から言うとCephを使っているとダメらしい、ということが分かりました。
[SOLVED] - remote-migration & cloudinit | Proxmox Support Forum
使い方はこんな感じです。
もう削除済みなのでトークンもベタ張りしますが「むむむ…!」というエラーで終わります。
|
|
使ってないstoppedなVMがいたのでcloud-initディスクを外して再度試してみましたが、やっぱり駄目でした。
|
|
処分
売るのも面倒なのでTX1320 M2は リネットジャパン さんに回収してもらいました。
ThinkCentreの箱をそのまま流用できたし、ついでに家電も回収してもらえるので丁度良いですね。
一部パーツは剥がして 買取案内|じゃんぱら さんに持ち込み。
買う時は高いECCメモリは下取り価格ほとんどつかないんですよね…
ThinkCentreから剥がしたDDR5-5600 8GBメモリの方が良い値段になる寂しさ。
終わり
構築自体は2025年4月頃にポチポチやっていましたが、そのあとCephのベンチマークを取ったりして、なんやかんやで移行が終わったのは2025年7月くらいでしょうか。
更改先のハードウェア選定を2023年頃からせっせと進めていて、何とか旧クラスタが致命的に壊れる前に移行できました。
今度は載ってるVMのEoL対応とかソフトウェアスタックの見直しとか、NASのハードウェア更改も進めたいのですが頭も手も足りないですね。
Cephのベンチマーク結果も整理しておきたいので、これまた後程…