NVME 도구는 정보를 보호하는 데 어떻게 작동합니까?

NVME 도구는 정보를 보호하는 데 어떻게 작동합니까?

환경: Debian Bullseye, 작성 당시 최신 버전, nvme-cli 1.12

저는 NVMe를 처음 접했고 현재 NVMe SSD를 올바르게 구성하려고 합니다. 내가 아는 한 메타데이터는 필요하지 않지만T10-PI를 사용하여 정보를 보호하고 싶습니다.이 주제에 관해 두 가지 질문이 있습니다.

먼저, 특정 장치나 네임스페이스에 대해 이 보호 기능이 활성화되어 있는지 확인하는 방법을 알고 싶습니다.장치나 네임스페이스를 포맷할 때 T10-PI를 활성화하거나 비활성화할 수 있다는 것을 알고 있지만 현재 상태를 가져오는 방법을 모르겠습니다. 다양한 명령에 대한 매뉴얼 페이지를 대부분 읽고 nvmeNVMe 사양을 어느 정도 이해하려고 노력했지만 소용이 없었습니다. 발견할 수 없을 것 같습니다.

특정 설정에서만 이 문제가 발생했습니다. 관심 있는 다른 설정의 경우 현재 상태나 값을 읽는 방법을 파악하는 데 오랜 시간이 걸리지 않았습니다.

둘째, 이 보호 기능을 활성화하는 방법을 잘 모르겠습니다.이론적으로 man nvme-format이것은 읽기에서 분명합니다. -i <n>format 명령에 매개변수를 추가하면 다음과 같은 결과가 나타납니다 .

nvme format /dev/nvme0 -l 3 -i 1

문제의 디스크는 6개의 LBA 모드를 제공하며 이 모드는 3내가 원하는 모드입니다. 섹터당 4096바이트, 메타데이터가 없으므로 -l 3매개변수가 없습니다. -i 1T10-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 3nvme format-l 4-l 4nvme format -l 3 -i 1

관련 정보