환경: Debian Bullseye, 작성 당시 최신 버전, nvme-cli 1.12
저는 NVMe를 처음 접했고 현재 NVMe SSD를 올바르게 구성하려고 합니다. 내가 아는 한 메타데이터는 필요하지 않지만T10-PI를 사용하여 정보를 보호하고 싶습니다.이 주제에 관해 두 가지 질문이 있습니다.
먼저, 특정 장치나 네임스페이스에 대해 이 보호 기능이 활성화되어 있는지 확인하는 방법을 알고 싶습니다.장치나 네임스페이스를 포맷할 때 T10-PI를 활성화하거나 비활성화할 수 있다는 것을 알고 있지만 현재 상태를 가져오는 방법을 모르겠습니다. 다양한 명령에 대한 매뉴얼 페이지를 대부분 읽고 nvme
NVMe 사양을 어느 정도 이해하려고 노력했지만 소용이 없었습니다. 발견할 수 없을 것 같습니다.
특정 설정에서만 이 문제가 발생했습니다. 관심 있는 다른 설정의 경우 현재 상태나 값을 읽는 방법을 파악하는 데 오랜 시간이 걸리지 않았습니다.
둘째, 이 보호 기능을 활성화하는 방법을 잘 모르겠습니다.이론적으로 man nvme-format
이것은 읽기에서 분명합니다. -i <n>
format 명령에 매개변수를 추가하면 다음과 같은 결과가 나타납니다 .
nvme format /dev/nvme0 -l 3 -i 1
문제의 디스크는 6개의 LBA 모드를 제공하며 이 모드는 3
내가 원하는 모드입니다. 섹터당 4096바이트, 메타데이터가 없으므로 -l 3
매개변수가 없습니다. -i 1
T10-PI를 엽니다.
위의 명령을 실행하면 오류 메시지 없이 실행됩니다. 그런 다음 smartctl -x /dev/nvme0
현재 LBA 크기가 표시되어 4096
해당 nvme id-ns /dev/nvme0n1
모드가 3
예상대로 사용되고 있음을 확인합니다. 여태까지는 그런대로 잘됐다.
그러나 다음 내용은 매우 의심스럽습니다.
root@gaia ~/scripts # nvme list
Node SN Model Namespace Usage Format FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 PHFT640100G7800CGN INTEL SSDPEDMD800G4 1 800.17 GB / 800.17 GB 4 KiB + 0 B 8DV10171
다음 Format
으로 표시됩니다 4 KiB + 0 B
. 왜? 제가 아는 바로는 T10-PI에는 LBA당 최소 8바이트의 메타데이터가 필요합니다. 그래서 정확히 무슨 일이 일어나고 있는지 잘 모르겠습니다.
nvme format /dev/nvme0 -l 3 -i 1
메타데이터가 없어 공간이 없기 때문에 PI를 비활성화합니까 ? 아니면 PI가 활성화되어 있지만 nvme list
"실제" 메타데이터 크기만 표시됩니까(PI에 필요한 "암시적" 바이트는 제외)?
with -l 4
대신 사용해야 합니까 ? 4096바이트 LBA 크기 + 8바이트 메타데이터를 나타냅니다. 를 사용해야 하는 경우 잘못된 명령줄 인수에 대해 오류가 발생하지 않는 이유는 무엇입니까 (메타데이터가 없으면 T10-PI를 열 수 없습니다)?-l 3
nvme format
-l 4
-l 4
nvme format -l 3 -i 1