HPE DL360 Gen10でM.2 NVMe SSDを2枚増設する PCIe bifurcation設定

余ったスロットがあれば載せたくなるオタク

HPE DL360 Gen10にはPCIe Slotが3つある

HPE DL360 Gen10のPCIeライザーと空きスロット
我が家で利用してるHPE DL360 Gen10ですが、汎用的なPCIeカードが3枚搭載できます。
HPE独自のFlexibleLOMと合わせることで4つ搭載可能ですが、
FlexibleLOMはNICぐらいしかラインナップにありません。

Slot3に関してはCPU2接続となっており、CPU2を搭載していないと利用できません。
また、Slot3を利用するにはオプションのライザーカードが必要です。
(SPN:875539-001 なぜかヤフオクで定期的に出てくる)

上記のことから我が家では下記構成となっており、CPUで分散させようとしてます。

・FlexibleLOM Intel X710 10GBASE-SR 2port (Service&vMotion)
・Slot1 Intel X710 10GBASE-SR 2port (iSCSI&vMotion)
・Slot2 無し
・Slot3 Intel X710 10GBASE-SR 2port (iSCSI&Service)

これにより、常時通信の発生するiSCSIとService通信が分散されるというわけです。
性能的優位については検証してないです。ロマンです。

ESXiサーバにNVMe SSDはアリか?

そもそも何に使えそうか、ChatGPTに聞いてみました。
後述しますが、RAIDを組めないのと昨今のメモリ高騰から
メモリ不足対応に利用するのがよさそうです。

NVMe SSDの主な活用方法は以下のとおりです。
・Memory Tiering over NVMe
NVMe SSDをDRAMの下位階層として使用し、ESXiホストが利用できる実質的なメモリ容量を増やす機能。※ESXi 8.0 Update 3ではTechnical Preview扱いです。

・VMFSデータストア
NVMe SSDをローカルストレージとして使用し、仮想マシン、仮想ディスク、ISOイメージ、テンプレートなどを保存します。高速ですが、単体構成では冗長性がありません。

・Swap to Host Cache
NVMe SSD上にホストキャッシュ領域を確保し、メモリ不足時の仮想マシンスワップ先として使用します。通常のストレージへスワップするより高速ですが、Memory Tieringとは別の旧来型の機能です。

・Persistent Scratch/Syslog領域
ESXiのログや一時ファイルを永続的に保存する領域として使用します。USBメモリやSDカードからESXiを起動している環境では、特に有効です。

・Core Dump File
ESXiがクラッシュした際の診断情報を保存する領域として使用します。障害解析には役立ちますが、NVMe SSDの容量を活用する主目的としては補助的です。

M.2 SSDは余ってたのでこれを使って「Memory Tiering」なる新機能を使ってみます。

実はメインサーバはメモリ384GBに対してvMotion先のサブサーバは192GBしかありません。
容量平準化させようにもメインサーバはA3DCの関係上これ以上メモリ枚数を減らせず…
性能低下はやむなしとはいえ、仮想マシンの停止がなければヨシとしましょう。

あと1枚はシンプルはVMFSとして利用しspot仮想マシンを配置します。

Intel VROCはGen10 Plusから

HPE ProLiant Gen10とIntel VROCに関する参考情報
参照:RedditのHPE ProLiant Gen10とVROCに関するdiscussion
Intel Xeon-SP SkylakeといえばIntel VROCが初搭載された世代になります。
これによりCPUのPCIeに接続したNVMe SSD同士でRAIDを構築することができます。
このため、ESXiのようにOS側でRAID機能を持たないOSでも複数ディスクを単一ドライブとして認識することが可能です。

が、ことHPE ProLiantシリーズではIntel VROCに対応しているのはGen10 Plus以降。
「DL360 Gen10 VROC」で調べるとさも対応してるかのように出ますが、
実際は「DL360 Gen10 Plus」の話だったというわけです。
なので残念ながらGen10ではOS側で全ディスク管理するか単体でも利用になります。

Slot2はPCIe3.0 x8

DL360 Gen10に搭載するPCIe M.2 NVMe変換カード
Gen10は2017年発売でSkylake世代になるためPCIe 3.0対応です。
第一世代Xeon-SPのレーン数的に両方ともx16でいけるのでは?
と思うのですが標準搭載ライザーはx16とx8です。

DL360 Gen10のライザー構成について

オプションですがx16x16だったりが使えるライザーがあります。
中にはPCIeスロットはそのままでPCIe M.2が使えるライザーなどもあります。
以下、HPE ProLiant DL360 Gen10 Server – Spare Partsより引用
URL: HPE ProLiant DL360 Gen10 Server – Spare Parts

・Riser x 16 x 8 Graphics Processing Unit (GPU) primary 1U
→標準構成のもの。Slot1がx16、Slot2がx8。GPU用の電源コネクタがついている
・Primary riser board, x 16 x 8 + PCIe M.2
→Slot1がx16、Slot2がx8だが電源コネクタの代わりにPCIe M.2スロットが2つついてる。
・Riser x 16 x 16 SATA M.2 Pri 1U
→Slot1,Slot2ともにx16でSATAのM.2スロットがついてる
・Primary riser board, x 16 x 8, GPU, 2 x 4 PCIe Non-Volatile Memory express (NVMe) interface ports
→Slot1がx16、Slot2がx8。M.2スロットの代わりにNVMeケーブル接続用のコネクタとGPU電源コネクタもついてる。

まぁとはいえ、オプションなので中古ですらめったに出回りません。
そもそも職場でも見たことない…w
ちなみにDL380 Gen10は標準でPCIe M.2スロット搭載ライザーが入ってるので
割と中古でも入手が可能です。

PCIe M.2カード(通称:下駄)を探す

DL360 Gen10のPCIeスロットにM.2変換カードを取り付けた状態


DL360 Gen10でPCIeの分岐(bifurcation)が可能なことは把握してましたので、
マザーボード側に分岐機能が必要なものを選択。
冷却についてはラックサーバにファンにより冷えると思うので特に考慮は不要。
一方、24/365で起動しつづけることになるため加工精度は高めのものを
選びたかったつもりですが…そちらについてはレビュー書いてるので見てもらえれば。
結果的に利用自体は問題なく可能でした。

x16対応のロック付きは要注意

PCIe x16ロック付きM.2変換カードの干渉部分


2台目のサーバ用として一番安価なカードも買ってみました。
こちらも問題なくPCIe 3.0 x4*2で接続できましたが、
本カードはPCIe x16の抜け防止の突起があります。
この突起がDL360 Gen10のSlot2のライザーカード(金属部)に干渉するため
Slot2には搭載できません!※Slot1へは搭載可能。
DL360 Gen10のライザーカードへM.2 NVMe変換カードを装着
どうしても搭載するときはこのように突起を削り取れば利用可能でした。
自分はリューターで切り取り、レジンで硬化させてみました。

BIOS(UEFI(RBSU))設定)

HPE RBSUのPCIeデバイス構成画面
システムユーティリティ > システム構成 > BIOS/プラットフォーム構成(RBSU) >
> PCIeデバイス構成 > アドバンスドPCIe構成 > PCIe分岐オプション
上記で辿っていくとそれっぽい画面にたどり着けます。
ただここの項目名がなかなか難解です。

[自動] [分岐] [デュアル分岐]

RBSUのマニュアルにも詳細は載ってないですが別のページに下記のような記述が。

…この設定により、PCIeレーンを2つの等分レーン (単一分岐) または4つの等分レーン (二重分岐または四重分岐) に分割することができます。
参照: HPE公式 RBSU PCIe分岐オプション説明

推測するにx16のPCIeスロットなら
[デュアル分岐] でx4x4x4x4、[分岐] でx8x8になると考えられます。

ただ今回対象のSlot2はx8
おそらくSlot2がx16になるライザーカードがある関係上、
選択できるようになってると思われます。
結果的に [分岐] で両方のM.2 SSDがPCIe3.0 x4で認識したのでヨシとします。
変更後は設定保存の上、再起動すると反映されます。
HPE RBSUのPCIe分岐オプション設定画面
再起動後は BIOS/プラットフォーム構成(RBSU) > ストレージオプション >
> NVM Expressオプション > NVM Expressドライブ撤去オプションから確認可能です。
ESXiで認識されたNVMe SSDデバイス一覧
SmartStorageAdministratorからも見えます。なんで?

OS起動

Smart Storage Administratorで見えるNVMeデバイス
本サーバではESXiを利用しているので上記のような表示になっていました。
※上記はデータ構成済
ここまでくればあとは通常のNVMeドライブと同じ扱いになります。
汎用的なNVMe SSDであればWindows,Linux,ESXiどれでも見えてくると思います。

Memory Tiering構築

ESXiのNVMeストレージ表示
構築方法はChatGPTが全部教えてくれるのでここでは割愛します。
デフォルトだと現行メモリ容量のうち25%しか利用しない設定になっています。
(192GBメモリだと48GしかSSD使ってくれない)
手動でMax 400%まで変更可能なので利用するSSDに合わせて変更します。
今回は192GBメモリ+SSDで384GBメモリを受け止めたいので120%に設定してます。
192GB+230GB= 422GB
ちゃんとESXiの画面も変わります。
ESXi Memory Tiering設定後のメモリ表示