다음을 통해 공유


NVME_HEALTH_INFO_LOG 구조체(nvme.h)

SMART/Health Information Log 페이지에 포함된 정보를 지정하는 필드를 포함합니다.

SMART/Health Information Log 페이지는 전원 주기에 걸쳐 유지되는 컨트롤러의 수명 동안 SMART 및 일반 상태 정보를 제공합니다. 로그 페이지는 전역적으로 지원됩니다. 전역 로그 페이지를 요청하려면 네임스페이스를 지정합니다 FFFFFFFFh.

SMART/Health Information Log 페이지는 컨트롤러 식별 데이터 구조에 표시된 대로 네임스페이스별로 지원될 수도 있습니다. 로그 페이지가 네임스페이스별로 지원되지 않는 경우 이외의 네임스페이스를 FFFFFFFFh 지정하면 NVME_STATUS_INVALID_FIELD_IN_COMMAND 상태 명령을 중단해야 합니다. NVMe 버전 1.3에서는 SMART/Health 로그 페이지에 정의된 네임스페이스 관련 정보가 없으므로 전역 로그 페이지 및 네임스페이스 특정 로그 페이지에는 동일한 정보가 포함됩니다.

NVM 하위 시스템의 상태에 대한 중요한 경고는 호스트에 대한 비동기 이벤트 알림을 통해 표시됩니다. 호스트에 대한 비동기 이벤트 알림을 생성하는 경고는 기능 설정 명령을 사용하여 구성됩니다.

SMART/Health Information 로그의 일부로 반환된 매개 변수를 사용하여 성능을 계산할 수 있습니다. 특히 읽기 또는 쓰기 명령 수, 읽거나 쓴 데이터 양, 컨트롤러 사용량이 많은 시간을 통해 초당 I/O와 대역폭을 모두 계산할 수 있습니다.

NVME_HEALTH_INFO_LOG 구조체는 로그 페이지 가져오기 명령에 의해 반환됩니다. 자세한 내용은 NVME_CDW10_GET_LOG_PAGE 참조하세요.

구문

typedef struct {
  union {
    struct {
      UCHAR AvailableSpaceLow : 1;
      UCHAR TemperatureThreshold : 1;
      UCHAR ReliabilityDegraded : 1;
      UCHAR ReadOnly : 1;
      UCHAR VolatileMemoryBackupDeviceFailed : 1;
      UCHAR Reserved : 3;
    } DUMMYSTRUCTNAME;
    UCHAR AsUchar;
  } CriticalWarning;
  UCHAR  Temperature[2];
  UCHAR  AvailableSpare;
  UCHAR  AvailableSpareThreshold;
  UCHAR  PercentageUsed;
  UCHAR  Reserved0[26];
  UCHAR  DataUnitRead[16];
  UCHAR  DataUnitWritten[16];
  UCHAR  HostReadCommands[16];
  UCHAR  HostWrittenCommands[16];
  UCHAR  ControllerBusyTime[16];
  UCHAR  PowerCycle[16];
  UCHAR  PowerOnHours[16];
  UCHAR  UnsafeShutdowns[16];
  UCHAR  MediaErrors[16];
  UCHAR  ErrorInfoLogEntryCount[16];
  ULONG  WarningCompositeTemperatureTime;
  ULONG  CriticalCompositeTemperatureTime;
  USHORT TemperatureSensor1;
  USHORT TemperatureSensor2;
  USHORT TemperatureSensor3;
  USHORT TemperatureSensor4;
  USHORT TemperatureSensor5;
  USHORT TemperatureSensor6;
  USHORT TemperatureSensor7;
  USHORT TemperatureSensor8;
  UCHAR  Reserved1[296];
} NVME_HEALTH_INFO_LOG, *PNVME_HEALTH_INFO_LOG;

멤버

CriticalWarning

컨트롤러 상태에 대한 위험 경고를 나타내는 필드를 포함하는 위험 경고(CriticalWarning) 구조체입니다.

CriticalWarning 구조체의 각 필드는 위험 경고 유형에 해당하는 비트입니다. 여러 비트를 설정할 수 있습니다. 비트가 로 0지워지면 해당 중요한 경고가 적용되지 않습니다. 이 필드의 비트는 현재 연결된 상태를 나타내며 영구적이지 않습니다.

심각한 경고로 인해 호스트에 비동기 이벤트 알림이 발생할 수 있습니다.

CriticalWarning.DUMMYSTRUCTNAME

CriticalWarning.DUMMYSTRUCTNAME.AvailableSpaceLow

사용 가능한 예비 공간이 임계값 아래로 떨어졌는지 여부를 나타냅니다.

이 값을 로 1설정하면 사용 가능한 여유 공간이 임계값 아래로 떨어졌습니다.

CriticalWarning.DUMMYSTRUCTNAME.TemperatureThreshold

온도가 온도 임계값을 초과하거나 온도 임계값 미만인지 여부를 나타냅니다.

이 값을 로 1설정하면 온도가 온도 임계값을 초과하거나 온도 임계값보다 낮습니다. 온도 임계값에 대한 자세한 내용은 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD 참조하세요.

CriticalWarning.DUMMYSTRUCTNAME.ReliabilityDegraded

NVM 하위 시스템 안정성이 저하되었는지 여부를 나타냅니다.

이 값을 로 1설정하면 심각한 미디어 관련 오류 또는 NVM 하위 시스템 안정성을 저하시키는 내부 오류로 인해 NVM 하위 시스템 안정성이 저하되었습니다.

CriticalWarning.DUMMYSTRUCTNAME.ReadOnly

미디어가 읽기 전용 모드로 배치되었는지 여부를 나타냅니다.

이 값을 로 1설정하면 미디어가 읽기 전용 모드로 배치됩니다.

CriticalWarning.DUMMYSTRUCTNAME.VolatileMemoryBackupDeviceFailed

휘발성 메모리 백업 디바이스가 실패했는지 여부를 나타냅니다.

이 값을 로 1설정하면 휘발성 메모리 백업 디바이스가 실패합니다. 이 필드는 컨트롤러에 휘발성 메모리 백업 솔루션이 있는 경우에만 유효합니다.

CriticalWarning.DUMMYSTRUCTNAME.Reserved

CriticalWarning 구조체의 비트 05:07이 예약되어 있습니다.

CriticalWarning.AsUchar

Temperature[2]

컨트롤러 및 NVM 하위 시스템을 포함하여 전체 디바이스의 복합 온도(켈빈도)를 나타냅니다.

이 필드의 온도가 온도 임계값을 초과하면 비동기 이벤트 완료가 발생할 수 있습니다. 자세한 내용은 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD 참조하세요.

경고 및 중요한 과열 복합 온도 임계값은 컨트롤러 식별 데이터 구조의 WCTEMPCCTEMP 필드에 의해 보고됩니다.

AvailableSpare

사용 가능한 나머지 예비 용량의 정규화된 백분율(0~100)을 나타냅니다.

AvailableSpareThreshold

사용 가능한 예비 용량의 임계값을 나타냅니다.

AvailableSpare 값이 이 필드에 표시된 임계값보다 낮으면 비동기 이벤트 완료가 발생할 수 있습니다. 값은 정규화된 백분율(0~100)으로 표시됩니다.

PercentageUsed

실제 사용량 및 제조업체의 NVM 수명 예측에 따라 사용된 NVM 하위 시스템 수명 비율에 대한 공급업체별 추정치를 나타냅니다.

값 100은 NVM 하위 시스템에 있는 NVM의 예상 내구성이 사용되었음을 나타내지만 NVM 하위 시스템 오류를 나타내지는 않을 수 있습니다. 값이 100을 초과할 수 있습니다. 254보다 큰 백분율은 255로 표시됩니다. 이 값은 전원 켜기 시간당 한 번 업데이트됩니다(컨트롤러가 절전 상태가 아닌 경우).

Reserved0[26]

예약된 필드입니다.

DataUnitRead[16]

메타데이터를 포함하지 않고 호스트가 컨트롤러에서 읽은 512 바이트 데이터 단위의 수를 나타냅니다.

이 필드의 값은 수천 단위로 보고되며 반올림됩니다. 예를 들어 값 1은 읽은 512바이트의 1000 단위에 해당합니다. LBA(논리 블록 액세스) 크기가 512바이트 이외의 값이면 컨트롤러는 읽은 데이터의 양을 512바이트 단위로 변환합니다.

NVM 명령 집합의 경우 비교 및 읽기 작업의 일부로 읽는 논리 블록이 이 값에 포함됩니다.

DataUnitWritten[16]

메타데이터를 포함하지 않고 호스트가 컨트롤러에 쓴 512 바이트 데이터 단위의 수를 나타냅니다.

이 필드의 값은 수천 단위로 보고되며 반올림됩니다. 예를 들어 값 1은 읽은 512바이트의 1000 단위에 해당합니다. LBA(논리 블록 액세스) 크기가 512바이트 이외의 값이면 컨트롤러는 기록된 데이터의 양을 512바이트 단위로 변환합니다.

NVM 명령 집합의 경우 쓰기 작업의 일부로 작성된 논리 블록이 이 값에 포함됩니다. 수정할 수 없는 쓰기 명령은 이 값에 영향을 주지 않습니다.

HostReadCommands[16]

컨트롤러에서 완료한 읽기 명령 수를 나타냅니다.

NVM 명령 집합의 경우 비교 및 읽기 명령 수입니다.

HostWrittenCommands[16]

컨트롤러에서 완료한 쓰기 명령 수를 나타냅니다.

NVM 명령 집합의 경우 쓰기 명령의 수입니다.

ControllerBusyTime[16]

컨트롤러가 I/O 명령으로 사용 중인 시간(분)을 나타냅니다.

I/O 큐에 미해결 명령이 있는 경우 컨트롤러가 사용 중입니다. 특히 I/O 제출 큐 Tail 초인종 쓰기를 통해 명령이 실행되고 해당 완료 큐 항목이 연결된 I/O 완료 큐에 아직 게시되지 않은 경우

PowerCycle[16]

전원 주기 수를 나타냅니다.

PowerOnHours[16]

전원 켜기 시간 수를 나타냅니다. 여기에는 컨트롤러의 전원이 공급된 시간과 저전력 상태 상태가 포함되지 않습니다.

UnsafeShutdowns[16]

안전하지 않은 종료 횟수를 나타냅니다. 이 수는 컨트롤러 구성에 제출된 SHN에 표시된 종료 알림이 전원이 손실되기 전에 수신되지 않을 때 증가합니다.

MediaErrors[16]

컨트롤러가 복구되지 않은 데이터 무결성 오류를 감지한 발생 횟수를 나타냅니다.

수정할 수 없는 ECC, CRC 체크섬 오류 또는 LBA 태그 불일치와 같은 미디어 오류가 이 필드에 포함됩니다.

ErrorInfoLogEntryCount[16]

컨트롤러 수명 동안 의 오류 정보 로그 항목 수를 나타냅니다.

WarningCompositeTemperatureTime

컨트롤러가 작동하고 복합 온도(온도)WCTEMP(경고 복합 온도 임계값) 필드보다 크거나 같고 컨트롤러 식별 데이터 구조의 CCTEMP(위험 복합 온도 임계값) 필드보다 작은 시간(분) 나타냅니다.

WCTEMP 또는 CCTEMP 필드의 값이 0h이면 온도 값에 0h 관계없이 이 필드는 항상 로 지워집니다.

CriticalCompositeTemperatureTime

컨트롤러가 작동하고 복합 온도(온도)컨트롤러 식별 데이터 구조의 CCTEMP(중요 복합 온도 임계값) 필드보다 큰 시간(분)을 나타냅니다.

CCTEMP 필드의 값이 0h이면 온도 값에 0h 관계없이 이 필드는 항상 로 지워집니다.

TemperatureSensor1

온도 센서 1에서 보고한 켈빈도의 현재 온도를 나타냅니다.

TemperatureSensor2

온도 센서 2에서 보고한 켈빈도의 현재 온도를 나타냅니다.

TemperatureSensor3

온도 센서 3에서 보고한 켈빈도의 현재 온도를 나타냅니다.

TemperatureSensor4

온도 센서 4에서 보고한 켈빈도의 현재 온도를 나타냅니다.

TemperatureSensor5

온도 센서 5에서 보고한 켈빈도의 현재 온도를 나타냅니다.

TemperatureSensor6

온도 센서 6에서 보고한 켈빈도의 현재 온도를 나타냅니다.

TemperatureSensor7

온도 센서 7에서 보고한 켈빈도의 현재 온도를 나타냅니다.

TemperatureSensor8

온도 센서 8에서 보고한 켈빈도의 현재 온도를 나타냅니다.

Reserved1[296]

예약된 필드입니다.

설명

온도 센서에서 보고한 온도를 사용하여 비동기 이벤트를 트리거할 수 있습니다. 자세한 내용은 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
머리글 nvme.h

추가 정보