ONTAPストレージでNVMe-oF用にProxmox VE 9.xを構成する
Proxmox VE 9.x ホストは、非対称名前空間アクセス (ANA) を備えた NVMe over Fibre Channel (NVMe/FC) および NVMe over TCP (NVMe/TCP) プロトコルをサポートします。ANA は、iSCSI および FCP 環境における非対称論理ユニット アクセス (ALUA) と同等のマルチパス機能を提供します。
Proxmox VE 9.x 用の NVMe over Fabrics (NVMe-oF) ホストを構成する方法を学びます。詳細なサポートと機能情報については、 "ONTAPのサポートと機能"。
Proxmox VE 9.x の NVMe-oF には、次の既知の制限があります。
-
NVMe-FC の SAN ブート構成はサポートされていません。
ステップ1: Proxmox VEとNVMeソフトウェアをインストールし、構成を確認する
NVMe-oF 用にホストを構成するには、ホストおよび NVMe ソフトウェア パッケージをインストールし、マルチパスを有効にして、ホストの NQN 構成を確認する必要があります。
-
サーバーに Proxmox VE 9.x をインストールします。インストールが完了したら、必要な Proxmox VE 9.x カーネルが実行されていることを確認します。
uname -rProxmox VE 9.x カーネルバージョンの例:
6.17.2-2-pve
-
「 nvme-cli 」パッケージをインストールします。
apt list|grep nvme-cli次の例は、 `nvme-cli`パッケージバージョン:
nvme-cli/stable,now 2.13-2 amd64
-
をインストールします
libnvmeパッケージ:apt list|grep libnvme次の例は、 `libnvme`パッケージバージョン:
libnvme-dev/stable 1.13-2 amd64
-
ホスト上で、hostnqn文字列を確認します。
/etc/nvme/hostnqn:cat /etc/nvme/hostnqn次の例は、 `hostnqn`価値:
nqn.2014-08.org.nvmexpress:uuid:3933xxxx-3333-xxxx-4844-325xxxxa524c
-
ONTAPシステムで、 `hostnqn`文字列が一致する `hostnqn`ONTAPアレイ上の対応するサブシステムの文字列:
::> vserver nvme subsystem host show -vserver vs_proxmox_FC_NVMeFC例を示します
Vserver Subsystem Priority Host NQN ------- --------- -------- ----------------------------------------------- vs_proxmox_FC_NVMeFC sub_176 regular nqn.2014-08.org.nvmexpress:uuid:3933xxxx-3333-xxxx-4844-325xxxxa4834 regular nqn.2014-08.org.nvmexpress:uuid:3933xxxx-3333-xxxx-4844-325xxxxa524c 2 entries were displayedもし `hostnqn`文字列が一致しない場合は、 `vserver modify`更新するコマンド `hostnqn`対応するONTAPストレージシステムサブシステムの文字列を `hostnqn`文字列から `/etc/nvme/hostnqn`ホスト上。
ステップ2: NVMe/FCとNVMe/TCPを構成する
Broadcom/Emulex または Marvell/QLogic アダプタを使用して NVMe/FC を構成するか、手動の検出および接続操作を使用して NVMe/TCP を構成します。
Broadcom/Emulexアダプタ用にNVMe/FCを設定します。
-
サポートされているアダプタモデルを使用していることを確認します。
-
モデル名を表示します。
cat /sys/class/scsi_host/host*/modelname次の出力が表示されます。
SN1700E2P SN1700E2P
-
モデルの説明を表示します:
cat /sys/class/scsi_host/host*/modeldesc次の例のような出力が表示されます。
HPE SN1700E 64Gb 2p FC HBA HPE SN1700E 64Gb 2p FC HBA
-
-
推奨されるBroadcomを使用していることを確認します
lpfcファームウェアおよび受信トレイドライバ:-
ファームウェアのバージョンを表示します。
cat /sys/class/scsi_host/host*/fwrevこのコマンドはファームウェアのバージョンを返します。
14.4.473.14, sli-4:6:d 14.4.473.14, sli-4:6:d
-
受信トレイのドライバーのバージョンを表示します。
cat /sys/module/lpfc/version次の例は、ドライバーのバージョンを示しています。
0:14.4.0.10
サポートされているアダプタドライバおよびファームウェアバージョンの最新リストについては、を参照してください"Interoperability Matrix Tool"。
-
-
確認します
lpfc_enable_fc4_typeがに設定されます3:cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type -
イニシエータポートを表示できることを確認します。
cat /sys/class/fc_host/host*/port_name次のような出力が表示されます:
0x10005ced8c531948 0x10005ced8c531949
-
イニシエータポートがオンラインであることを確認します。
cat /sys/class/fc_host/host*/port_state次の出力が表示されます。
Online Online
-
NVMe/FCイニシエータポートが有効になっており、ターゲットポートが認識されることを確認します。
cat /sys/class/scsi_host/host*/nvme_info例を示します
NVME Initiator Enabled XRI Dist lpfc0 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc0 WWPN x10005ced8c531948 WWNN x20005ced8c531948 DID x082400 ONLINE NVME RPORT WWPN x200ed039eac79573 WWNN x200dd039eac79573 DID x060902 TARGET DISCSRVC ONLINE NVME RPORT WWPN x2001d039eac79573 WWNN x2000d039eac79573 DID x060904 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 0000000034 Cmpl 0000000034 Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 0000000000142cfb Issue 0000000000142cfc OutIO 0000000000000001 abort 00000005 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 00000005 Err 00000005 NVME Initiator Enabled XRI Dist lpfc1 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc1 WWPN x10005ced8c531949 WWNN x20005ced8c531949 DID x082500 ONLINE NVME RPORT WWPN x2010d039eac79573 WWNN x200dd039eac79573 DID x062902 TARGET DISCSRVC ONLINE NVME RPORT WWPN x2007d039eac79573 WWNN x2000d039eac79573 DID x062904 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 0000000034 Cmpl 0000000034 Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 00000000000d39f1 Issue 00000000000d39f2 OutIO 0000000000000001 abort 00000005 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 00000005 Err 00000005
Marvell/QLogicアダプタ用にNVMe/FCを設定します。
-
サポートされているアダプタ ドライバーとファームウェア バージョンを使用していることを確認します。
cat /sys/class/fc_host/host*/symbolic_name次の例は、ドライバーとファームウェアのバージョンを示しています。
SN1700Q FW:v9.15.05 DVR:v10.02.09.400-k SN1700Q FW:v9.15.05 DVR:v10.02.09.400-k
-
確認します
ql2xnvmeenableが設定されます。これにより、MarvellアダプタをNVMe/FCイニシエータとして機能させることができます。cat /sys/module/qla2xxx/parameters/ql2xnvmeenable想定される出力は1です。
NVMe/TCP プロトコルは自動接続操作をサポートしていません。代わりに、NVMe/TCPサブシステムと名前空間をNVMe/TCPコマンドで検出することができます。 `connect`または `connect-all`手動で操作します。
-
イニシエーター ポートが、サポートされている NVMe/TCP LIF 全体で検出ログ ページ データを取得できることを確認します。
nvme discover -t tcp -w host-traddr -a traddr例を示します
nvme discover -t tcp -w 192.168.165.72 -a 192.168.165.51 Discovery Log Number of Records 4, Generation counter 47 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 3 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:discovery traddr: 192.168.165.51 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 1 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:discovery traddr: 192.168.166.50 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 2====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 3 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:subsystem.sub_176 traddr: 192.168.165.51 eflags: none sectype: none =====Discovery Log Entry 3====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 1 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:subsystem.sub_176 traddr: 192.168.166.50 eflags: none sectype: none
-
を実行します
nvme connect-allノード全体でサポートされているすべてのNVMe/TCPイニシエータ/ターゲットLIFを対象としたコマンド:nvme connect-all -t tcp -w host-traddr -a traddr例を示します
nvme connect-all -t tcp -w 192.168.166.73 -a 192.168.166.50 nvme connect-all -t tcp -w 192.168.166.73 -a 192.168.166.51 nvme connect-all -t tcp -w 192.168.165.73 -a 192.168.165.50 nvme connect-all -t tcp -w 192.168.165.73 -a 192.168.165.51
NVMe/TCPの設定 `ctrl_loss_tmo timeout`自動的に「オフ」に設定されます。結果として:
-
再試行回数に制限はありません(無期限再試行)。
-
特定の設定を手動で行う必要はありません `ctrl_loss_tmo timeout`使用時の持続時間 `nvme connect`または `nvme connect-all`コマンド(オプション -l )。
-
NVMe/TCP コントローラーは、パス障害が発生した場合でもタイムアウトが発生せず、無期限に接続されたままになります。
ステップ3:オプションとして、udevルールのiopolicyを変更します
Proxmox VE 9.0以降、NVMe-oFのデフォルトのiopolicyは `queue-depth`に設定されています。iopolicyを `round-robin`に変更したい場合(これも設定可能なオプションとして利用可能です)、次のようにudevルールファイルを変更します:
-
ルート権限でテキスト エディターで udev ルール ファイルを開きます。
/usr/lib/udev/rules.d/71-nvmf-netapp.rules次の出力が表示されます。
vi /usr/lib/udev/rules.d/71-nvmf-netapp.rules
-
次の例のルールに示すように、 NetApp ONTAPコントローラの iopolicy を設定する行を見つけます。
ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="NetApp ONTAP Controller", ATTR{iopolicy}="queue-depth" -
ルールを修正して `queue-depth`が `round-robin`に変更されるようにします。次の例を参照してください:
ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="NetApp ONTAP Controller", ATTR{iopolicy}="round-robin" -
udev ルールを再読み込みし、変更を適用します。
udevadm control --reload udevadm trigger --subsystem-match=nvme-subsystem -
サブシステムの現在の iopolicy を確認します。<subsystem>をサブシステムの名前(例:nvme-subsys0)に置き換えます。
cat /sys/class/nvme-subsystem/<subsystem>/iopolicy次の出力が表示されます。
round-robin
|
|
新しい iopolicy は、一致するNetApp ONTAPコントローラ デバイスに自動的に適用されます。再起動は不要です。 |
ステップ4: オプションでNVMe/FCの1MB I/Oを有効にする
ONTAP は、識別コントローラ データで最大データ転送サイズ (MDTS) が 8 であると報告します。つまり、最大 I/O 要求サイズは 1 MB までになります。 Broadcom NVMe/FCホストに1MBのI/Oリクエストを発行するには、 `lpfc`の価値 `lpfc_sg_seg_cnt`パラメータをデフォルト値の 64 から 256 に変更します。
|
|
この手順は、Qlogic NVMe/FCホストには適用されません。 |
-
`lpfc_sg_seg_cnt`パラメータを256に設定します。
cat /etc/modprobe.d/lpfc.conf次の例のような出力が表示されます。
options lpfc lpfc_sg_seg_cnt=256
-
実行 `update-initramfs`コマンドを実行し、ホストを再起動します。
-
の値が256であることを確認し `lpfc_sg_seg_cnt`ます。
cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt
ステップ5: NVMeブートサービスを確認する
その `nvmefc-boot-connections.service`そして `nvmf-autoconnect.service`NVMe/FCに含まれるブートサービス `nvme-cli`パッケージはシステムの起動時に自動的に有効になります。
起動が完了したら、 `nvmefc-boot-connections.service`そして `nvmf-autoconnect.service`ブート サービスが有効になっています。
-
が有効であることを確認し `nvmf-autoconnect.service`ます。
systemctl status nvmf-autoconnect.service出力例を表示します。
○ nvmf-autoconnect.service - Connect NVMe-oF subsystems automatically during boot Loaded: loaded (/usr/lib/systemd/system/nvmf-autoconnect.service; enabled; preset: enabled) Active: inactive (dead) since Fri 2026-02-20 22:00:40 IST; 2 days ago Invocation: 48e3574eef064ff98928f840a62d787a Process: 3507 ExecStart=/usr/sbin/nvme connect-all --context=autoconnect (code=exited, status=0/SUCCESS) Main PID: 3507 (code=exited, status=0/SUCCESS) Mem peak: 6.9M CPU: 46ms -
が有効であることを確認し `nvmefc-boot-connections.service`ます。
systemctl status nvmefc-boot-connections.service出力例を表示します。
nvmefc-boot-connections.service - Auto-connect to subsystems on FC-NVME devices found during boot Loaded: loaded (/usr/lib/systemd/system/nvmefc-boot-connections.service; enabled; preset: enabled) Active: inactive (dead) since Fri 2026-02-20 22:00:11 IST; 2 days ago Invocation: 6f6d180fdbcd4fa6ad861c50ba6a15e6 Process: 1193 ExecStart=/bin/sh -c echo add > /sys/class/fc/fc_udev_device/nvme_discovery (code=exited, status=0/SUCCESS) Main PID: 1193 (code=exited, status=0/SUCCESS) Mem peak: 2.2M CPU: 10ms Feb 20 22:00:11 HPE-DL365-14-176 systemd[1]: nvmefc-boot-connections.service: Deactivated successfully. Feb 20 22:00:11 HPE-DL365-14-176 systemd[1]: Finished nvmefc-boot-connections.service - Auto-connect to subsystems on FC-NVME devices found during boot.
ステップ6: マルチパス構成を確認する
カーネル内のNVMeマルチパスステータス、ANAステータス、およびONTAPネームスペースがNVMe-oF構成に対して正しいことを確認します。
-
カーネル内NVMeマルチパスが有効になっていることを確認します。
cat /sys/module/nvme_core/parameters/multipath次の出力が表示されます。
Y
-
ONTAP名前空間の適切な NVMe-oF 設定 (モデルがNetApp ONTAPコントローラに設定され、負荷分散 iopolicy がラウンドロビンに設定されているなど) がホストに正しく表示されていることを確認します。
-
サブシステムを表示します。
cat /sys/class/nvme-subsystem/nvme-subsys*/model次の出力が表示されます。
NetApp ONTAP Controller NetApp ONTAP Controller
-
ポリシーを表示します。
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy次の出力が表示されます。
queue-depth queue-depth
-
-
ネームスペースが作成され、ホストで正しく検出されたことを確認します。
nvme list例を示します
Node Generic SN Model Namespace Usage Format FW Rev ------------- ----------- -------------------- ------------------------ ---------- -------------------------- ---------------- -------- /dev/nvme2n1 /dev/ng2n1 81PqYFYq2aVAAAAAAAAB NetApp ONTAP Controller 0x1 17.88 GB / 171.80 GB 4 KiB + 0 B 9.17.1
-
各パスのコントローラの状態がliveであり、正しいANAステータスが設定されていることを確認します。
nvme list-subsys /dev/<controller_ID>ONTAP 9.16.1 以降、NVMe/FC および NVMe/TCP は ASA r2 システム上のすべての最適化されたパスを報告します。 NVMe/FC次の出力例は、NVMe/FC を使用する AFF、FAS、ASA、または ASA r2 システムの 2 ノード ONTAP コントローラでホストされているネームスペースを示しています。
AFF、FAS、またはASAの出力例を表示
nvme-subsys114 - NQN=nqn.1992-08.com.netapp:sn.9e30b9760a4911f08c87d039eab67a95:subsystem.sles_161_27 hostnqn=nqn.2014-08.org.nvmexpress:uuid:f651xxxx-3133-xxxx-bbff-7edxxxxf123f iopolicy=round-robin\ +- nvme114 fc traddr=nn-0x234ed039ea359e4a:pn-0x2360d039ea359e4a,host_traddr=nn-0x20000090fae0ec88:pn-0x10000090fae0ec88 live optimized +- nvme115 fc traddr=nn-0x234ed039ea359e4a:pn-0x2362d039ea359e4a,host_traddr=nn-0x20000090fae0ec88:pn-0x10000090fae0ec88 live non-optimized +- nvme116 fc traddr=nn-0x234ed039ea359e4a:pn-0x2361d039ea359e4a,host_traddr=nn-0x20000090fae0ec89:pn-0x10000090fae0ec89 live optimized +- nvme117 fc traddr=nn-0x234ed039ea359e4a:pn-0x2363d039ea359e4a,host_traddr=nn-0x20000090fae0ec89:pn-0x10000090fae0ec89 live non-optimizedASA r2 の出力例を表示
nvme-subsys3 - NQN=nqn.1992-08.com.netapp:sn.94929fdb84eb11f0b624d039eac809ba:subsystem.sub_176 hostnqn=nqn.2014-08.org.nvmexpress:uuid:3933xxxx-3333-xxxx-4844-325xxxxa524c \ +- nvme1 fc traddr=nn-0x200dd039eac79573:pn-0x2010d039eac79573,host_traddr=nn-0x20005ced8c531949:pn-0x10005ced8c531949 live optimized +- nvme3 fc traddr=nn-0x200dd039eac79573:pn-0x200ed039eac79573,host_traddr=nn-0x20005ced8c531948:pn-0x10005ced8c531948 live optimized +- nvme5 fc traddr=nn-0x200dd039eac79573:pn-0x200fd039eac79573,host_traddr=nn-0x20005ced8c531949:pn-0x10005ced8c531949 live optimized +- nvme7 fc traddr=nn-0x200dd039eac79573:pn-0x2011d039eac79573,host_traddr=nn-0x20005ced8c531948:pn-0x10005ced8c531948 live optimizedNVMe/FC次の出力例は、NVMe/TCPを使用するAFF、FAS、ASA、またはASA r2システムの2ノードONTAPコントローラでホストされているネームスペースを示しています。
AFF、FAS、またはASAの出力例を表示
nvme-subsys2 - NQN=nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:subsystem.sub_176 hostnqn=nqn.2014-08.org.nvmexpress:uuid:3933xxxx-3333-xxxx-4844-325xxxxa524c \ +- nvme2 tcp traddr=192.168.166.50,trsvcid=4420,host_traddr=192.168.166.73,src_addr=192.168.166.73 live optimized +- nvme4 tcp traddr=192.168.165.51,trsvcid=4420,host_traddr=192.168.165.73,src_addr=192.168.165.73 live optimized +- nvme6 tcp traddr=192.168.166.51,trsvcid=4420,host_traddr=192.168.166.73,src_addr=192.168.166.73 live non-optimized +- nvme8 tcp traddr=192.168.165.50,trsvcid=4420,host_traddr=192.168.165.73,src_addr=192.168.165.73 live non-optimizedASA r2 の出力例を表示
nvme-subsys9 - NQN=nqn.1992-08.com.netapp:sn.9927e165694211f0b4f4d039eab31e9d:subsystem.nvme10 hostnqn=nqn.2014-08.org.nvmexpress:uuid:4c4cxxxx-0035-xxxx-804b-b7cxxxx44d33 \ +- nvme105 tcp traddr=192.168.39.10,trsvcid=4420,host_traddr=192.168.39.20,src_addr=192.168.39.20 live optimized +- nvme153 tcp traddr=192.168.39.11,trsvcid=4420,host_traddr=192.168.39.20,src_addr=192.168.39.20 live optimized +- nvme57 tcp traddr=192.168.38.11,trsvcid=4420,host_traddr=192.168.38.20,src_addr=192.168.38.20 live optimized +- nvme9 tcp traddr=192.168.38.10,trsvcid=4420,host_traddr=192.168.38.20,src_addr=192.168.38.20 live optimized -
ネットアッププラグインで、ONTAP ネームスペースデバイスごとに正しい値が表示されていることを確認します。
列( Column )nvme netapp ontapdevices -o column例を示します
Device Vserver Namespace Path ------------- --------------------- ------------------------------ /dev/nvme2n9 vs_proxmox_FC_NVMeFC /vol/vol_180_data_nvmefc4/ns NSID UUID Size ---- ------------------------------------ -------- 1 e3d3d544-de8b-4787-93af-bfec7769e909 32.21GB
JSONnvme netapp ontapdevices -o json例を示します
{ "Device":"/dev/nvme2n9", "Vserver":"vs_proxmox_FC_NVMeFC", "Subsystem":"sub_176", "Namespace_Path":"/vol/vol_180_data_nvmefc4/ns", "NSID":9, "UUID":"e3d3d544-de8b-4787-93af-bfec7769e909", "LBA_Size":4096, "Namespace_Size":32212254720, "UsedBytes":67899392, "Version":"9.17.1" } ]
ステップ7:既知の問題を確認する
既知の問題はありません。