Webサーバの製作2
サーバ用CPU EPYC 7443P 24-Core 48-Threadを入手したので、Webサーバの構築を行なった。
Webサーバの仕様
| 項目 | 内容 |
| CPU | AMD EPYC 7443P 24-Core 48-Thread 3/15/2021発売 2.85GHz(ブースト最大4.0GHz) |
| メモリ | NEMIX サーバー用メモリ DDR4-3200MHz 128GB (32GB×4枚) ECC RDIMM |
| マザーボード | SuperMicro H12SSL-CT IPMI BMC AST2500 |
| HDD | Seagate BarraCuda 3.5" 8TB HDD 6Gb/s 256MB 5400rpm |
| SSD | KIOXIA SSD 2TB NVMe M.2 Type 2280 PCIe Gen 4.0×4 |
| ハードウェアRAID | HighPoint RAIDコントローラー SSD7540 RAID10構成 4TB KIOXIA SSD 1TB NVMe M.2 Type 2280 PCIe Gen 4.0×4 ×8枚 |
| 水冷 | ENERMAX LIQTECH 240 TR4Ⅱ水冷式 CPU クーラー |
前回のRyzenCPUの場合と微妙に異なるが、ほとんど同じ仕様になっている。 特筆すべきは、IPMIが使えること。IPMIを通じてLAN経由で他のPCから操作ができる。

図1はIPMIによるサーバの各種ヘルス表示を示したものである。 ログイン画面からファンの状態までを示した。
ファンはなぜかcritical表示が出ているが、回転数が低すぎると言っているらしい。 BMCコントローラが自動で調整しているようだが、ファンの認識の問題なのか、なぜか赤表示になってしまった。 フルスピード設定にすると全てグリーンになるが、騒音が大きく、無意味なので、オプティモールに戻した。 実際には、サーバケースの2つのファンが、低速だが、しっかりと回転しているので、問題なしと判断した。 ファンを個別に設定できればよいのだが、今後の仕様変更に期待したい。
なお、サーバはアイドル状態であったが、高負荷になった場合、自動でファンの回転数が上がると思われる。 このことについては、高負荷実験を通じて検証する予定。 また、ファン3は水冷ラジエーターの2つのファンを統合したものであり、高性能ファン(max 2400rpm)を取り付けている。 そのため、回転数は高めに出ている。
Memtest86によるメモリチェック
レジスタードECCメモリを使っているので、当然ながらメモリチェックを行なった。(図2)


Memtest86を使い、メモリチェックを図2のように行なった。メモリチェックは128GBもあるので1パス完了するのにほぼ1日を要した。
上図より、ECCメモリはしっかりと認識されていることを確認した。
ECC Enabled: Yes (Multi-bit ECC correction)
となっていることで確認。
BIOS設定
メモリスクラビングを24hに設定した。 (24時間後にメモリスクラビングを実行するのか、それとも少しずつ24時間かけてメモリスクラビングを実行するのかよくわかってないが、おそらく後者だろうと思っている。 まあ、どちらでもいいか。しっかりとスクラビングさえしてくれればね。)
Ubuntu22.04 OSでの設定
EDACの使用からrasdaemonに最近変更になった模様。
比較的最近の資料でもEDACを使っている例が多いので、いくらか混乱した。
まず、dmidecode --type memory コマンドを実行すると、
~# dmidecode --type memory
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.3.0 present.
Handle 0x0029, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 4 TB
Error Information Handle: 0x0028
Number Of Devices: 8
.............
.............
Handle 0x0035, DMI type 17, 92 bytes
Memory Device
Array Handle: 0x0029
Error Information Handle: 0x0034
Total Width: 72 bits
Data Width: 64 bits
Size: 32 GB
Form Factor: DIMM
Set: None
Locator: DIMMC1
Bank Locator: P0_Node0_Channel2_Dimm0
Type: DDR4
Type Detail: Synchronous Registered (Buffered)
Speed: 3200 MT/s
Manufacturer: Undefined
Serial Number: 033DE95D
Asset Tag: DIMMC1_AssetTag (date:18/41)
Part Number:
Rank: 2
Configured Memory Speed: 3200 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
Memory Technology: DRAM
Memory Operating Mode Capability: Volatile memory
Firmware Version:
Module Manufacturer ID: Unknown
Module Product ID: Unknown
Memory Subsystem Controller Manufacturer ID: Unknown
Memory Subsystem Controller Product ID: Unknown
Non-Volatile Size: None
Volatile Size: 32 GB
Cache Size: None
Logical Size: None
..............
の黄色で示したように、ECCメモリが認識されていることを確認できた。 (メモリは4枚あるが、そのうちの1枚のみを示した。)
rasdaemonをインストールし、コマンド実行すると、
~# ras-mc-ctl --summary No Memory errors. No PCIe AER errors. No Extlog errors. No MCE errors.
のように、エラーは全く検出されない。 ECCがしっかりと動作しているのか不安になるが、何も検出されないのはきっといいことなのだろう。
メモリのオーバークロック状態でメモリストレステストを行なうと、ECCエラーが出るらしい。 しかし、本サーバのBIOS項目にメモリのオーバークロック設定が無いため、ストレステストは無意味。 気長にメモリエラーが発生するのを待つしかないようだ。
メモリエラーが決していいことではないのだが、ECCが正常に動作しているのかどうかの確認が難しい。 サーバ用のEPYCプロセッサを使用しているので、ほぼ確実にECCは動作しているとは思っている。 他の確認方法として、最近よく耳にする「ローハンマー攻撃」というものがある。 とあるメモリに隣接するメモリに特殊な書き込みを行なうと、とあるメモリが影響を受けることがあるらしい。 将来的に、方法論がわかれば活用したいと考えている。 (メモリ自身も進化しているので、ローハンマー攻撃に強いメモリが出回れば、この方法は使えなくなるが…)作成日: 更新日: