使用非NVMe驱动器,我可以运行:
# hdparm -I /dev/whatever | grep TRIM
Data Set Management TRIM supported (limit 8 block)
Deterministic read data after TRIM使用三星960 EVO1TB NVMe驱动器(),我得到:
# hdparm -I /dev/nvme0n1
/dev/nvme0n1:
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device我能跑
# smartctl --all /dev/nvme0n1并获得一些有关驱动器的信息,但没有关于修剪类型。
我安装了nvme-cli,并运行nvme get-feature -f 0到-f 0xe,并从驱动器中获得了一些特性,但与TRIM类型无关。
Linux中是否有一种方法来查询NVME设备,列出它所支持的TRIM类型?
在Linux中是否有一种方式来查询NVMe设备,获取hdparm -I如果不是NVMe,smartctl和nvme似乎没有涵盖的其他任何东西的列表?
发布于 2019-02-22 00:39:35
我知道TRIM相当于NVME数据集管理(DSM)的取消分配。如果支持它,则可以将其应用于256个区域,每个区域大小可达16个块。
如果支持id-ctrl命令oncs.bit2,请检查它。
# nvme id-ctrl /dev/nvme1 -H
oncs : 0x6
[5:5] : 0 Reservations Not Supported
[4:4] : 0 Save and Select Not Supported
[3:3] : 0 Write Zeroes Not Supported
[2:2] : 0x1 Data Set Management Supported
[1:1] : 0x1 Write Uncorrectable Supported
[0:0] : 0 Compare Not Supported这些命令可以向您提供有关nvme设备的更多信息:
nvme id-ctrl /dev/nvme0 -H
nvme id-ns /dev/nvme0n1 -H
nvme show-regs /dev/nvme0n1 -H发布于 2022-11-01 03:00:26
要回答OP的问题(它支持何种类型的Trim),首先,所有符合NVME磁盘至少应该是DRAT (确定性读取后TRIM )。
这里引用了NVM快递NVM命令集规范修订1.0c 2022年10月3日中第3.2.3.2.1章中已分配或未写入的逻辑块。
从已分配的逻辑块读取的值应该是确定性的;具体来说,在对该逻辑块进行写入操作之前,该逻辑块的后续读取返回的值应该是相同的。
要知道磁盘剪切块读取的值是多少,请执行如下命令:
# nvme id-ns /dev/nvme0n1 -H | grep -A 4 "dlfeat"
dlfeat : 1
[4:4] : 0 Guard Field of Deallocated Logical Blocks is set to 0xFFFF
[3:3] : 0 Deallocate Bit in the Write Zeroes Command is Not Supported
[2:0] : 0x1 Bytes Read From a Deallocated Logical Block and its Metadata are 0x00https://unix.stackexchange.com/questions/472211
复制相似问题