본문 바로가기

멋진성이의 지식iN

이벤트 ID 51에 대한 정보

반응형
http://support.microsoft.com/kb/244780/

이벤트 ID 51에 대한 정보

이 페이지에서

모두 확대 | 모두 축소

요약
실제 디스크에 정보를 쓸 때 시스템 이벤트 로그는 다음 이벤트 메시지를 기록할 수 있습니다. 이벤트 ID: 51이벤트 종류: 경고이벤트 원본:...

실제 디스크에 정보를 쓸 때 시스템 이벤트 로그는 다음 이벤트 메시지를 기록할 수 있습니다.

이벤트 ID: 51
이벤트 종류: 경고
이벤트 원본: 디스크
설명: 페이징 작업 동안 \Device\Harddisk3\DR3 장치에 오류가 감지되었습니다.
데이터:
0000: 04 00 22 00 01 00 72 00
0008: 00 00 00 00 33 00 04 80
0010: 2d 01 00 00 00 00 00 00
0018: 00 00 00 00 00 00 00 00
0020: 00 52 ea 04 15 00 00 00
0028: 01 00 00 00 04 00 00 00
0030: 03 00 00 00 2a 00 00 00
0038: 02 84 00 00 00 29 06 00
0040: 2a 60 0a 82 75 29 00 00
0048: 80 00

참고 해당 설명에서의 장치와 특정 16진수 데이터는 다를 수 있습니다.

추가 정보
해당 시스템이 디스크로 정보를 페이징할 때 일반 오류가 발생하면 이벤트 ID 51 이벤트 메시지를 기록합니다. 페이징 작업에서 운영 체제는 메모...

해당 시스템이 디스크로 정보를 페이징할 때 일반 오류가 발생하면 이벤트 ID 51 이벤트 메시지를 기록합니다. 페이징 작업에서 운영 체제는 메모리에서 디스크로 메모리 페이지를 스왑하거나 디스크에서 메모리까지 메모리 페이지를 검색합니다. 이 작업은 Microsoft Windows의 메모리 관리의 일부입니다.

그러나 컴퓨터가 저장 장치에서 이미지를 로드하고 로컬로 매핑된 파일 또는 임의의 파일을 읽고 쓸 때(버퍼링된 입출력일 경우) 이러한 이벤트 메시지를 기록할 수 있습니다. 컴퓨터에서 버퍼링되지 않은 입출력을 수행할 때 이 이벤트 메시지를 기록하지 않습니다. 이벤트 ID 9 또는 11 이벤트 메시지 문제를 해결하는 것과 동일한 방법으로 이벤트 ID 51 이벤트 메시지 문제를 해결할 수 있습니다.

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
154690  (http://support.microsoft.com/kb/154690/ ) How to troubleshoot event ID 9, event ID 11, and event ID 15 error messages
259237  (http://support.microsoft.com/kb/259237/ ) 클러스터 서버에서 이벤트 ID 9, 11 및 15의 문제 해결
"디스크" 오류(이벤트 ID 7, 9, 11, 51 등)와 연관된 이진 데이터를 사용하면 데이터 섹션을 디코딩하여 문제를 확인하는 데 도움이 됩니다. 데이터 섹션을 디코딩하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
182335  (http://support.microsoft.com/kb/182335/ ) ScsiPortLogError에 의해 작성된 이벤트 로그 데이터 형식
이벤트 ID 51에 CDB(Command Descriptor Block) 상자가 있으므로 이벤트 ID 51 이벤트 메시지의 데이터 섹션을 검토할 때 다음 정보를 고려해야 합니다.

이벤트 ID 51 이벤트 메시지의 데이터 섹션을 디코딩하는 방법

"요약" 절의 예에서 데이터 섹션을 디코딩할 때 해당 버스가 다시 설정되었지만 다시 요청되기 때문에 0x0080 섹터에 대해 섹터 0x2975820a에서 시작하는 LUN 3에 쓰기 작업을 수행하려는 시도가 실패한다는 것을 알 수 있습니다. 이 문서의 뒷부분에서 이 예제를 디코딩하는 특정 단계를 제시합니다.

아래의 표에서는 각 오프셋이 나타내는 사항을 설명합니다.

Windows Server 2003 및 Windows XP

표 축소표 확대
오프셋 길이
0x00 1 작업 유형: 0x03 = 읽기, 0x04 = 쓰기, 0x0F = Ioctl
0x01 1 나머지 재시도 횟수
0x02 2 덤프 데이터 크기 0x0068
0x04 2 문자열 수 0x0001
0x06 2 장치 이름에 대한 오프셋
0x08 2 사용 안 함
0x0a 2 패딩 바이트
0x0c 4 NTSTATUS 오류 코드
0x10 4 고유한 오류 값
0x14 4 NTSTATUS 최종 상태 0x00000000 = 요청 재시도
0x18 4 시퀀스 번호 – 사용 안 함
0x1c 4 Io 제어 코드(이 이벤트에 적용 안 됨)
0x20 8 있는 경우 불량 섹터에 대한 바이트 오프셋
0x28 8 오류 발생 시 눈금 수
0x30 4 포트 번호 – 사용 안 함
0x34 1 오류 플래그
0x35 3 사용 안함
0x38 64 SCSI 요청 블럭 구조 (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/storage/hh/storage/structs-scsibus_9cd58a74-3ae0-4536-ac0c-efaf73bf9733.xml.asp)
0x78 18 감지 데이터 구조

Windows 2000

표 축소표 확대
오프셋 길이
0x00 1 작업 유형: 0x03 = 읽기, 0x04 = 쓰기, 0x0F = Ioctl
0x01 1 나머지 재시도 횟수
0x02 2 덤프 데이터 크기 0x0022
0x04 2 문자열 수 0x0001
0x06 2 장치 이름에 대한 오프셋
0x08 2 사용 안 함
0x0a 2 패딩 바이트
0x0c 4 NTSTATUS 오류 코드
0x10 4 고유한 오류 값
0x14 4 NTSTATUS 최종 상태 0x00000000 = 요청 재시도
0x18 4 시퀀스 번호 사용 안 함
0x1c 4 Io 제어 코드(이 이벤트에 적용 안 됨)
0x20 8 있는 경우 불량 섹터에 대한 바이트 오프셋
0x28 4 경로 ID
0x2c 4 대상 ID
0x30 4 LUN
0x34 4 작업 유형: 0x0028 = 읽기, 0x002a = 쓰기
0x38 1 SCSI 상태
0x39 1 SRB 상태
0x3a 1 사용 안 함
0x3b 1 사용 안 함
0x3c 1 ASCQ(추가 감지 코드 한정자)
0x3d 1 ASC(추가 감지 코드)
0x3e 1 감지 키
0x3f 1 사용 안 함
0x40 10 CDB(Command Descriptor Block)

디코딩할 키 섹션

오류 코드
"요약" 절의 예에서 오류 코드는 두 번째 줄에 나열됩니다. 이 줄은 "0008:"로 시작하고 다음의 마지막 4바이트를 포함합니다.
0008: 00 00 00 00 33 00 04 80
ErrorCode = 0x80040033

이것은 오류 51의 코드입니다. 이 코드는 모든 이벤트 ID 51 이벤트 메시지에 대해 동일합니다.
IO_WARNING_PAGING_FAILURE
참고 이벤트 ID의 16진수 데이터를 상태 코드로 변환할 때 해당 값은 little endian 형식으로 표시됩니다.
최종 상태 코드
"요약" 절의 예에서 최종 상태 코드는 "0010:"으로 시작하는 0x14(세 번째 줄)에 나열되고 다음 줄의 마지막 4 옥텟을 포함합니다.
0010: 2d 01 00 00 00 00 00 00
FinalStatus = 0x00000000

이것은 STATUS_SUCCESS로 매핑되고 요청이 재시도됨을 의미합니다.

참고 이벤트 ID의 16진수 데이터를 상태 코드로 변환할 때 해당 값은 little endian 형식으로 표시됩니다.
대상 디스크
가 데이터를 사용하여 문제가 발생한 디스크를 확인하는 데 도움을 줄 수 있습니다.
0028: 01 00 00 00 04 00 00 00
경로 ID = 0x0000001, 대상 ID = 0x0000004
0030: 03 00 00 00 2a 00 00 00
LUN = 0x0000003

이벤트 ID에 대한 설명에서 드라이브 목록에 있는 기호 링크를 사용하여 볼륨을 더욱 쉽게 확인할 수 있습니다. 예: \Device\Harddisk3\DR3. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
159865  (http://support.microsoft.com/kb/159865/ ) 이벤트 메시지로부터 실제 디스크 장치를 구분하는 방법
참고 대상 디스크 정보는 운영 체제에 어떻게 표시되는지에 대한 것입니다. 저장소 가상화 및 다중 경로 I/O 소프트웨어는 운영 체제에 표시된 사항을 숨길 수 있습니다. 이 정보는 실제 매핑에 직접 해당하지 않을 수 있습니다.
SRB(SCSI Request Block) 매개 변수
"요약" 절의 예에서 ScsiStatus는 0x02(줄 "0038"의 첫 번째 바이트)이고 SrbStatus는 0x84(줄 "0038"의 두 번째 바이트)입니다. 이를 통해 다음 정보를 확인할 수 있습니다.
0038: 02 84 00 00 00 29 06 00
0x02의 ScsiStatus:
SCSISTAT_CHECK_CONDITION

SCSI 상태 코드: (SCSI.H)
표 축소표 확대
0x00 = SCSISTAT_GOOD
0x02 = SCSISTAT_CHECK_CONDITION
0x04 = SCSISTAT_CONDITION_MET
0x08 = SCSISTAT_BUSY
0x10 = SCSISTAT_INTERMEDIATE
0x14 = SCSISTAT_INTERMEDIATE_COND_MET
0x18 = SCSISTAT_RESERVATION_CONFLICT
0x22 = SCSISTAT_COMMAND_TERMINATED
0x28 = SCSISTAT_QUEUE_FULL
0x84의 SrbStatus:
SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_ERROR
표 축소표 확대
0x00 = SRB_STATUS_PENDING
0x01 = SRB_STATUS_SUCCESS
0x02 = SRB_STATUS_ABORTED
0x03 = SRB_STATUS_ABORT_FAILED
0x04 = SRB_STATUS_ERROR
0x05 = SRB_STATUS_BUSY
0x06 = SRB_STATUS_INVALID_REQUEST
0x07 = SRB_STATUS_INVALID_PATH_ID
0x08 = SRB_STATUS_NO_DEVICE
0x09 = SRB_STATUS_TIMEOUT
0x0A = SRB_STATUS_SELECTION_TIMEOUT
0x0B = SRB_STATUS_COMMAND_TIMEOUT
0x0D = SRB_STATUS_MESSAGE_REJECTED
0x0E = SRB_STATUS_BUS_RESET
0x0F = SRB_STATUS_PARITY_ERROR
0x10 = SRB_STATUS_REQUEST_SENSE_FAILED
0x11 = SRB_STATUS_NO_HBA
0x12 = SRB_STATUS_DATA_OVERRUN
0x13 = SRB_STATUS_UNEXPECTED_BUS_FREE
0x14 = SRB_STATUS_PHASE_SEQUENCE_FAILURE
0x15 = SRB_STATUS_BAD_SRB_BLOCK_LENGTH
0x16 = SRB_STATUS_REQUEST_FLUSHED
0x20 = SRB_STATUS_INVALID_LUN
0x21 = SRB_STATUS_INVALID_TARGET_ID
0x22 = SRB_STATUS_BAD_FUNCTION
0x23 = SRB_STATUS_ERROR_RECOVERY
0x24 = SRB_STATUS_NOT_POWERED
0x30 = SRB_STATUS_INTERNAL_ERROR
(비 scsi 관련 오류 메시지가 발생했음을 나타내기 위해 포트 드라이버에서 사용됨)
0x38 - 0x3f = 내부 포트 드라이버 사용을 위해 예약된 Srb 상태 값
SRB 상태 마스크:
표 축소표 확대
0x80 = SRB_STATUS_AUTOSENSE_VALID
0x40 = SRB_STATUS_QUEUE_FROZEN
SRB 상태 마스크는 하위 상태이므로 분해해야 합니다. 이것은 SRB 상태 코드와 결합됩니다.

이전 0x84 예에서 0x8_은 상태 마스크입니다. 따라서 SRB_STATUS_AUTOSENSE_VALID 및 0x04는 SRB 상태 코드입니다. 이것은 SRB_STATUS_ERROR를 의미합니다.
감지 코드
SRB 상태가 자동 감지 가능한 경우 감지 코드는 추가 정보를 제공합니다. "요약" 절의 예에서 감지 코드는 0x06(줄 "0038"에서 일곱 번째 바이트)이고 ASC는 0x29(줄 "0038"에서 여섯 번째 옥텟)입니다. 이를 통해 다음 정보를 확인할 수 있습니다.
0038: 02 84 00 00 00 29 06 00
0x06의 감지 키:

오프셋 003e의 바이트는 감지 키입니다. 다음으로 매핑됩니다.
0x06 = SCSI_SENSE_UNIT_ATTENTION

감지 코드: (SCSI.H)
표 축소표 확대
0x00 = SCSI_SENSE_NO_SENSE
0x01 = SCSI_SENSE_RECOVERED_ERROR
0x02 = SCSI_SENSE_NOT_READY
0x03 = SCSI_SENSE_MEDIUM_ERROR
0x04 = SCSI_SENSE_HARDWARE_ERROR
0x05 = SCSI_SENSE_ILLEGAL_REQUEST
0x06 = SCSI_SENSE_UNIT_ATTENTION
0x07 = SCSI_SENSE_DATA_PROTECT
0x08 = SCSI_SENSE_BLANK_CHECK
0x09 = SCSI_SENSE_UNIQUE
0x0A = SCSI_SENSE_COPY_ABORTED
0x0B = SCSI_SENSE_ABORTED_COMMAND
0x0C = SCSI_SENSE_EQUAL
0x0D = SCSI_SENSE_VOL_OVERFLOW
0x0E = SCSI_SENSE_MISCOMPARE
0x0F = SCSI_SENSE_RESERVED
0x29의 ASC(추가 감지 코드):

ASC는 오프셋 003d에서 줄 “0038”의 여섯 번째 바이트에 있고 그 값은 29입니다. 지정된 감지 키에 대해 다음으로 매핑됩니다.
0x29 = SCSI_ADSENSE_BUS_RESET

ASC: (SCSI.H)
표 축소표 확대
0x00 = SCSI_ADSENSE_NO_SENSE
0x02 = SCSI_ADSENSE_NO_SEEK_COMPLETE
0x04 = SCSI_ADSENSE_LUN_NOT_READY
0x0C = SCSI_ADSENSE_WRITE_ERROR
0x14 = SCSI_ADSENSE_TRACK_ERROR
0x15 = SCSI_ADSENSE_SEEK_ERROR
0x17 = SCSI_ADSENSE_REC_DATA_NOECC
0x18 = SCSI_ADSENSE_REC_DATA_ECC
0x20 = SCSI_ADSENSE_ILLEGAL_COMMAND
0x21 = SCSI_ADSENSE_ILLEGAL_BLOCK
0x24 = SCSI_ADSENSE_INVALID_CDB
0x25 = SCSI_ADSENSE_INVALID_LUN
0x27 = SCSI_ADSENSE_WRITE_PROTECT
0x28 = SCSI_ADSENSE_MEDIUM_CHANGED
0x29 = SCSI_ADSENSE_BUS_RESET
0x2E = SCSI_ADSENSE_INSUFFICIENT_TIME_FOR_OPERATION
0x30 = SCSI_ADSENSE_INVALID_MEDIA
0x3a = SCSI_ADSENSE_NO_MEDIA_IN_DEVICE
0x3b = SCSI_ADSENSE_POSITION_ERROR
0x5a = SCSI_ADSENSE_OPERATOR_REQUEST
0x5d = SCSI_ADSENSE_FAILURE_PREDICTION_THRESHOLD_EXCEEDED
0x64 = SCSI_ADSENSE_ILLEGAL_MODE_FOR_THIS_TRACK
0x6f = SCSI_ADSENSE_COPY_PROTECTION_FAILURE
0x73 = SCSI_ADSENSE_POWER_CALIBRATION_ERROR
0x80 = SCSI_ADSENSE_VENDOR_UNIQUE
0xA0 = SCSI_ADSENSE_MUSIC_AREA
0xA1 = SCSI_ADSENSE_DATA_AREA
0xA7 = SCSI_ADSENSE_VOLUME_OVERFLOW
0x00의 ASCQ(추가 감지 코드 한정자):

ASCQ는 오프셋 003C에서 줄 “0038”의 다섯 번째 바이트에 있고 값은 00입니다. 이 예에서는 00이므로 지정된 ASC에 적용되지 않습니다. 각 감지 코드에 대해 이러한 ASCQ 목록은 이 문서에서 다루기에 너무 큽니다. 자세한 내용은 DDK의 SCSI.H를 보십시오.

참고 위의 0x80에 대한 ASC 및 ASCQ 값 모두 공급업체 특정 값으로 SCSI 규정 또는 Microsoft DDK에는 설명되어 있지 않습니다. 하드웨어 공급업체에 문의하십시오.
CDB(Command Descriptor Block) 매개 변수
CDB는 해당 줄에서 ‘0040’의 오프셋으로 시작합니다.
0040: 2a 60 0a 82 75 29 00 00
0048: 80 00
오프셋 0x40의 바이트는 CDB 코드를 나타내고 오프셋 0x43부터 0x46까지의 바이트는 시작 섹터를 나타내며 오프셋 0x47부터 0x49까지는 작업에 포함된 섹터 수를 나타냅니다.

CDB 데이터 섹션은 little-endian 형식으로 되어 있지 않으므로 바이트를 거꾸로 표시할 필요가 없습니다. 형식이 이전 형식과 다르므로 이 섹션을 디코딩할 때 주의하십시오.

0x2a = 쓰기 요청
0x0a827529 = 시작 섹터
0x0080 = 섹터 수

SCSI CDB 코드: (SCSI.H)
표 축소표 확대
0x00 = SCSIOP_TEST_UNIT_READY
0x01 = SCSIOP_REZERO_UNIT
0x01 = SCSIOP_REWIND
0x02 = SCSIOP_REQUEST_BLOCK_ADDR
0x03 = SCSIOP_REQUEST_SENSE
0x04 = SCSIOP_FORMAT_UNIT
0x05 = SCSIOP_READ_BLOCK_LIMITS
0x07 = SCSIOP_REASSIGN_BLOCKS
0x07 = SCSIOP_INIT_ELEMENT_STATUS
0x08 = SCSIOP_READ6
0x08 = SCSIOP_RECEIVE
0x0A = SCSIOP_WRITE6
0x0A = SCSIOP_PRINT
0x0A = SCSIOP_SEND
0x0B = SCSIOP_SEEK6
0x0B = SCSIOP_TRACK_SELECT
0x0B = SCSIOP_SLEW_PRINT
0x0C = SCSIOP_SEEK_BLOCK
0x0D = SCSIOP_PARTITION
0x0F = SCSIOP_READ_REVERSE
0x10 = SCSIOP_WRITE_FILEMARKS
0x10 = SCSIOP_FLUSH_BUFFER
0x11 = SCSIOP_SPACE
0x12 = SCSIOP_INQUIRY
0x13 = SCSIOP_VERIFY6
0x14 = SCSIOP_RECOVER_BUF_DATA
0x15 = SCSIOP_MODE_SELECT
0x16 = SCSIOP_RESERVE_UNIT
0x17 = SCSIOP_RELEASE_UNIT
0x18 = SCSIOP_COPY
0x19 = SCSIOP_ERASE
0x1A = SCSIOP_MODE_SENSE
0x1B = SCSIOP_START_STOP_UNIT
0x1B = SCSIOP_STOP_PRINT
0x1B = SCSIOP_LOAD_UNLOAD
0x1C = SCSIOP_RECEIVE_DIAGNOSTIC
0x1D = SCSIOP_SEND_DIAGNOSTIC
0x1E = SCSIOP_MEDIUM_REMOVAL
0x23 = SCSIOP_READ_FORMATTED_CAPACITY
0x25 = SCSIOP_READ_CAPACITY
0x28 = SCSIOP_READ
0x2A = SCSIOP_WRITE
0x2B = SCSIOP_SEEK
0x2B = SCSIOP_LOCATE
0x2B = SCSIOP_POSITION_TO_ELEMENT
0x2E = SCSIOP_WRITE_VERIFY
0x2F = SCSIOP_VERIFY
0x30 = SCSIOP_SEARCH_DATA_HIGH
0x31 = SCSIOP_SEARCH_DATA_EQUAL
0x32 = SCSIOP_SEARCH_DATA_LOW
0x33 = SCSIOP_SET_LIMITS
0x34 = SCSIOP_READ_POSITION
0x35 = SCSIOP_SYNCHRONIZE_CACHE
0x39 = SCSIOP_COMPARE
0x3A = SCSIOP_COPY_COMPARE
0x3B = SCSIOP_WRITE_DATA_BUFF
0x3C = SCSIOP_READ_DATA_BUFF
0x40 = SCSIOP_CHANGE_DEFINITION
0x42 = SCSIOP_READ_SUB_CHANNEL
0x43 = SCSIOP_READ_TOC
0x44 = SCSIOP_READ_HEADER
0x45 = SCSIOP_PLAY_AUDIO
0x46 = SCSIOP_GET_CONFIGURATION
0x47 = SCSIOP_PLAY_AUDIO_MSF
0x48 = SCSIOP_PLAY_TRACK_INDEX
0x49 = SCSIOP_PLAY_TRACK_RELATIVE
0x4A = SCSIOP_GET_EVENT_STATUS
0x4B = SCSIOP_PAUSE_RESUME
0x4C = SCSIOP_LOG_SELECT
0x4D = SCSIOP_LOG_SENSE
0x4E = SCSIOP_STOP_PLAY_SCAN
0x51 = SCSIOP_READ_DISK_INFORMATION
0x52 = SCSIOP_READ_TRACK_INFORMATION
0x53 = SCSIOP_RESERVE_TRACK_RZONE
0x54 = SCSIOP_SEND_OPC_INFORMATION
0x55 = SCSIOP_MODE_SELECT10
0x5A = SCSIOP_MODE_SENSE10
0x5B = SCSIOP_CLOSE_TRACK_SESSION
0x5C = SCSIOP_READ_BUFFER_CAPACITY
0x5D = SCSIOP_SEND_CUE_SHEET
0x5E = SCSIOP_PERSISTENT_RESERVE_IN
0x5F = SCSIOP_PERSISTENT_RESERVE_OUT
0xA0 = SCSIOP_REPORT_LUNS
0xA1 = SCSIOP_BLANK
0xA3 = SCSIOP_SEND_KEY
0xA4 = SCSIOP_REPORT_KEY
0xA5 = SCSIOP_MOVE_MEDIUM
0xA6 = SCSIOP_LOAD_UNLOAD_SLOT
0xA6 = SCSIOP_EXCHANGE_MEDIUM
0xA7 = SCSIOP_SET_READ_AHEAD
0xAD = SCSIOP_READ_DVD_STRUCTURE
0xB5 = SCSIOP_REQUEST_VOL_ELEMENT
0xB6 = SCSIOP_SEND_VOLUME_TAG
0xB8 = SCSIOP_READ_ELEMENT_STATUS
0xB9 = SCSIOP_READ_CD_MSF
0xBA = SCSIOP_SCAN_CD
0xBB = SCSIOP_SET_CD_SPEED
0xBC = SCSIOP_PLAY_CD
0xBD = SCSIOP_MECHANISM_STATUS
0xBE = SCSIOP_READ_CD
0xBF = SCSIOP_SEND_DVD_STRUCTURE
0xE7 = SCSIOP_INIT_ELEMENT_RANGE

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
반응형