====== FreeBSDのnvmecontrolコマンドを色々試してみる ====== FreeBSDでNVMeデバイスを操作するnvmecontrolコマンドは、2020-10-17現在ドキュメントが不完全な状態で、 ===== 試した環境 ===== * FreeBSD 12.1-RELEASE-p3 ===== コマンド ===== ==== devlist ==== NVMeデバイス一覧を表示。デバイスだけではなく名前空間も表示されるようだ。 # nvmecontrol devlist nvme0: SAMSUNG MZQLB960HAJR-00007 nvme0ns1 (915715MB) nvme1: SAMSUNG MZQLB960HAJR-00007 nvme1ns1 (915715MB) ==== identify ==== 指定NVMeデバイスの詳細表示。 NVMeデバイスを指定した場合はIDENTIFY_CONTROLLERの、名前空間を指定した場合はIDENTIFY_NAMESPACEのデータを人間が読める形で表示する。 -xオプションで各データの先頭1024バイトの16進ダンプを表示、-vを付けると4096バイト(全ダンプ?)になる。 # nvmecontrol identify nvme1 Controller Capabilities/Features ================================ Vendor ID: 144d Subsystem Vendor ID: 144d Serial Number: S437NY0KC00562 Model Number: SAMSUNG MZQLB960HAJR-00007 Firmware Version: EDA5202Q Recommended Arb Burst: 2 IEEE OUI Identifier: 38 25 00 Multi-Path I/O Capabilities: Not Supported Max Data Transfer Size: 2097152 bytes Controller ID: 0x0004 Version: 1.2.0 Admin Command Set Attributes ============================ Security Send/Receive: Supported Format NVM: Supported Firmware Activate/Download: Supported Namespace Managment: Supported Device Self-test: Not Supported Directives: Not Supported NVMe-MI Send/Receive: Not Supported Virtualization Management: Not Supported Doorbell Buffer Config: Not Supported Get LBA Status: Not Supported Sanitize: Not Supported Abort Command Limit: 8 Async Event Request Limit: 4 Number of Firmware Slots: 3 Firmware Slot 1 Read-Only: Yes Per-Namespace SMART Log: Yes Error Log Page Entries: 64 Number of Power States: 1 Total NVM Capacity: 960197124096 bytes Unallocated NVM Capacity: 0 bytes NVM Command Set Attributes ========================== Submission Queue Entry Size Max: 64 Min: 64 Completion Queue Entry Size Max: 16 Min: 16 Number of Namespaces: 1 Compare Command: Supported Write Uncorrectable Command: Supported Dataset Management Command: Supported Write Zeroes Command: Supported Save Features: Supported Reservations: Not Supported Timestamp feature: Not Supported Verify feature: Not Supported Fused Operation Support: Not Supported Format NVM Attributes: Crypto Erase, Per-NS Erase, Per-NS Format Volatile Write Cache: Not Present # nvmecontrol identify -v nvme1 Controller Capabilities/Features ================================ Vendor ID: 144d Subsystem Vendor ID: 144d Serial Number: S437NY0KC00562 Model Number: SAMSUNG MZQLB960HAJR-00007 Firmware Version: EDA5202Q Recommended Arb Burst: 2 IEEE OUI Identifier: 38 25 00 Multi-Path I/O Capabilities: Not Supported Max Data Transfer Size: 2097152 bytes Controller ID: 0x0004 Version: 1.2.0 Admin Command Set Attributes ============================ Security Send/Receive: Supported Format NVM: Supported Firmware Activate/Download: Supported Namespace Managment: Supported Device Self-test: Not Supported Directives: Not Supported NVMe-MI Send/Receive: Not Supported Virtualization Management: Not Supported Doorbell Buffer Config: Not Supported Get LBA Status: Not Supported Sanitize: Not Supported Abort Command Limit: 8 Async Event Request Limit: 4 Number of Firmware Slots: 3 Firmware Slot 1 Read-Only: Yes Per-Namespace SMART Log: Yes Error Log Page Entries: 64 Number of Power States: 1 Total NVM Capacity: 960197124096 bytes Unallocated NVM Capacity: 0 bytes NVM Command Set Attributes ========================== Submission Queue Entry Size Max: 64 Min: 64 Completion Queue Entry Size Max: 16 Min: 16 Number of Namespaces: 1 Compare Command: Supported Write Uncorrectable Command: Supported Dataset Management Command: Supported Write Zeroes Command: Supported Save Features: Supported Reservations: Not Supported Timestamp feature: Not Supported Verify feature: Not Supported Fused Operation Support: Not Supported Format NVM Attributes: Crypto Erase, Per-NS Erase, Per-NS Format Volatile Write Cache: Not Present 名前空間を指定したパターン。 # nvmecontrol identify nvme1ns1 パスワード: Size: 234423126 blocks Capacity: 234423126 blocks Utilization: 49172754 blocks Thin Provisioning: Not Supported Number of LBA Formats: 2 Current LBA Format: LBA Format #01 Data Protection Caps: Not Supported Data Protection Settings: Not Enabled Multi-Path I/O Capabilities: Not Supported Reservation Capabilities: Not Supported Format Progress Indicator: 0% remains Deallocate Logical Block: Read Not Reported Optimal I/O Boundary: 0 blocks NVM Capacity: 960197124096 bytes Globally Unique Identifier: 343337304bc005620025385900000001 IEEE EUI64: 0000000000000000 LBA Format #00: Data Size: 512 Metadata Size: 0 Performance: Best LBA Format #01: Data Size: 4096 Metadata Size: 0 Performance: Best ====== ns ====== NVMe namespaceに関する操作。 ===== ns active ===== NVMeデバイスの有効な名前空間を一覧表示する。 # nvmecontrol ns active nvme1 Active namespaces: 1 ===== ns controllers ===== NVMシステム内のコントローラを一覧表示する。 # nvmecontrol ns controllers nvme1 NVM subsystem includes 1 controller(s): 0x0004 ===== ns delete ===== 指定のNVMe namespaceを削除する。 -nには名前空間ID (nvmecontrol nsidで取得した数値)を指定する。 # nvmecontrol ns delete -n 1 nvme1 namespace 1 deleted ===== ns identify ===== 指定コントローラ、名前空間IDの名前空間の詳細を表示する。nvmecontrol identifyに名前空間デバイスを指定したものと等価。 # nvmecontrol ns identify -n 1 nvme1 ====== nsid ====== 指定名前空間デバイスからコントローラと名前空間IDを取得する。 # nvmecontrol nsid nvme1ns1 nvme1 1