私はOracle X8-2LでNVMeホットプラグで遊んでいます。起動前にサーバーに接続された複数のNVMeドライブがあり、サーバーの起動後に接続される複数のNVMeドライブがあります。起動直後にlsblkを実行し、期待どおりに起動時に接続されているすべてのドライブを確認しました。この時点でホットプラグドライブを接続し、「echo 1> /sys/bus/pci/rescan」を実行しました。もう一度検索した後、別の "lsblk"を実行しましたが、起動時にシステムに接続されているNVMeドライブのみが表示され、起動後に接続されたドライブがありません。
ただし、「lspci -v | grep -i nvme」を実行しましたが、追加のホットプラグ接続ドライブが表示されますが、「使用中のカーネルドライバ」は表示されません。
次の図に示すように、「使用中のカーネルドライバ:nvme」と「カーネルモジュール:nvme」の両方が表示されているnvmeドライブは起動時に接続されたドライブであり、「カーネルモジュール:nvme」のみが表示されているドライブは起動後に接続されたドライブです。 (0000:cf:00.0および0000:ce:00.0を参照)
私がしなければならないのは、ドライバがこのドライブで動作するようにすることだけです。ドライバはnvmeドライブとして表示され、カーネルはそれをnvmeドライブとして認識し、ドライバがロードされない理由を理解できません。私はデバイスにバインドするとドライバが添付されると思いました(私はこの領域で多くの時間を費やしていないので間違っているかもしれません)。
"echo 0000:cf:00.0 > /sys/bus/pci/drivers/nvme/bind" しかし、"bash: echo: 書き込みエラー: 対応するデバイスがありません"を返します。
/sys/bus/pci/devices を見ると、デバイスが存在するようです。