NVMeボリュームへのアクセス

I/OはLinuxホストによって仮想デバイス ターゲットに転送されます。DM-MPは、これらの仮想ターゲットへの物理パスを管理します。

I/Oターゲットは仮想デバイス

実行しているのはDM-MPで作成された仮想デバイスに対するI/Oのみで、物理デバイス パスに対しては実行していないことを確認してください。物理パスに対してI/Oを実行している場合、DM-MPがフェイルオーバー イベントを実行できず、I/Oが失敗します。

物理I/Oを実行するには、DM-MPで物理パスの管理用に作成された仮想デバイスがターゲットであることを確認してください。これらのブロック デバイスには、次の例のように、dmデバイスまたは/dev/mappersymlinkを介してアクセスできます。

/dev/dm-1
/dev/mapper/eui.00001bc7593b7f5f00a0980000af4462

nvme listコマンドの出力例を次に示します。ホストのノード名と対応するネームスペースIDが表示されます。

NODE         SN           MODEL           NAMESPACE

/dev/nvme1n1 021648023072 NetApp E-Series 10
/dev/nvme1n2 021648023072 NetApp E-Series 11
/dev/nvme1n3 021648023072 NetApp E-Series 12
/dev/nvme1n4 021648023072 NetApp E-Series 13
/dev/nvme2n1 021648023151 NetApp E-Series 10
/dev/nvme2n2 021648023151 NetApp E-Series 11
/dev/nvme2n3 021648023151 NetApp E-Series 12
/dev/nvme2n4 021648023151 NetApp E-Series 13	
説明

Node

ノード名は2つの要素で構成されます。

  • nvme1はコントローラAを表し、nvme2はコントローラBを表します。
  • n1n2(以下同様)は、ホスト側で認識されるネームスペース識別子です。この表では、これらの識別子がコントローラAに対して1回、コントローラB対して1回、繰り返し出力されています。

Namespace

Namespace列にはネームスペースID(NSID)が表示されます。これは、ストレージ アレイ側で認識される識別子です。

次のmultipath -llの出力では、最適化されたパスのprioの値は50、最適化されていないパスのprioの値は10になっています。

Linuxオペレーティング システムは、status=activeと表示されたパス グループにI/Oをルーティングし、status=enabledと表示されたパス グループをフェイルオーバーに使用します。

eui.00001bc7593b7f500a0980000af4462 dm-0 NVME,NetApp E-Series
size=15G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- #:#:#:# nvme1n1 259:5 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  `- #:#:#:# nvme2n1 259:9  active ready running

eui.00001bc7593b7f5f00a0980000af4462 dm-0 NVME,NetApp E-Series
size=15G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=0 status=enabled
| `- #:#:#:# nvme1n1 259:5 failed faulty running
`-+- policy='service-time 0' prio=10 status=active
  `- #:#:#:# nvme2n1 259:9  active ready running
説明

policy='service-time 0' prio=50 status=active

この行と次の行は、NSIDが10のネームスペースnvme1n1が、prioの値が50でstatusの値がactiveのパスで最適化されていることを示しています。

このネームスペースはコントローラAに所有されています。

policy='service-time 0' prio=10 status=enabled

この行は、ネームスペース10のフェイルオーバー パスを示しています。prioの値が10でstatusの値がenabledのパスです。このパスのネームスペースには、この時点ではI/Oは転送されていません。

このネームスペースはコントローラBに所有されています。

policy='service-time 0' prio=0 status=enabled

この例は、別の時点(コントローラAのリブート中)におけるmultipath -llの出力を示したものです。prioの値が0でstatusの値がenabledのネームスペース10へのパスがfailed faulty runningと表示されています。

policy='service-time 0' prio=10 status=active

activeパスがnvme2になっており、このパスでコントローラBにI/Oが転送されています。