28.5.2. Broken NVDIMM 감지 및 교체
시스템 로그 또는 S.M.A.R.T.에서 보고된 NVDIMM과 관련된 오류 메시지가 표시되면 NVDIMM 장치가 실패할 수 있습니다. 이 경우 다음을 수행해야 합니다.
- NVDIMM 장치가 실패하는지 감지합니다.
- 저장된 데이터를 백업하고,
- 물리적으로 장치를 교체하십시오.
절차 28.3. Broken NVDIMM 감지 및 교체
- 손상된 DIMM을 감지하려면 다음 명령을 사용하십시오.
# ndctl list --dimms --regions --health --media-errors --human
badblocks
필드에는 NVDIMM이 손상된 것으로 표시됩니다.dev
필드에서 해당 이름을 기록해 둡니다. 다음 예에서nmem0
이라는 NVDIMM이 손상되었습니다.예 28.1. NVDIMM 장치의 상태
# ndctl list --dimms --regions --health --media-errors --human ... "regions":[ { "dev":"region0", "size":"250.00 GiB (268.44 GB)", "available_size":0, "type":"pmem", "numa_node":0, "iset_id":"0xXXXXXXXXXXXXXXXX", "mappings":[ { "dimm":"nmem1", "offset":"0x10000000", "length":"0x1f40000000", "position":1 }, { "dimm":"nmem0", "offset":"0x10000000", "length":"0x1f40000000", "position":0 } ], "badblock_count":1, "badblocks":[ { "offset":65536, "length":1, "dimms":[ "nmem0" ] } ], "persistence_domain":"memory_controller" } ] }
- 다음 명령을 사용하여 손상된 NVDIMM의
phys_id
속성을 찾습니다.# ndctl list --dimms --human
이전 예에서nmem0
이 손상된 NVDIMM임을 알 수 있습니다. 따라서nmem0
의phys_id
속성을 찾습니다. 다음 예제에서phys_id
는0x10
입니다.예 28.2. NVDIMM의 phys_id 속성
# ndctl list --dimms --human [ { "dev":"nmem1", "id":"XXXX-XX-XXXX-XXXXXXXX", "handle":"0x120", "phys_id":"0x1c" }, { "dev":"nmem0", "id":"XXXX-XX-XXXX-XXXXXXXX", "handle":"0x20", "phys_id":"0x10", "flag_failed_flush":true, "flag_smart_event":true } ]
- 다음 명령을 사용하여 손상된 NVDIMM의 메모리 슬롯을 찾습니다.
# dmidecode
출력에서Handle
식별자가 손상된 NVDIMM의phys_id
속성과 일치하는 항목을 찾습니다.검색
필드에는 손상된 NVDIMM에 사용되는 메모리 슬롯이 나열됩니다. 다음 예에서nmem0
장치는0x0010
식별자와 일치하며DIMM-XXX-YYYY
메모리 슬롯을 사용합니다.예 28.3. NVDIMM 메모리 슬롯 목록
# dmidecode ... Handle 0x0010, DMI type 17, 40 bytes Memory Device Array Handle: 0x0004 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 125 GB Form Factor: DIMM Set: 1 Locator: DIMM-XXX-YYYY Bank Locator: Bank0 Type: Other Type Detail: Non-Volatile Registered (Buffered) ...
- NVDIMM의 네임스페이스의 모든 데이터를 백업합니다. NVDIMM을 교체하기 전에 데이터를 백업하지 않으면 시스템에서 NVDIMM을 제거할 때 데이터가 손실됩니다.주의NVDIMM이 완전히 손상되는 경우와 같이 경우에 따라 백업이 실패할 수 있습니다.이를 방지하려면 28.5.1절. “S.M.A.R.T를 사용하여 NVDIMM 상태 모니터링.” 에 설명된 대로 S.M.A.R.T를 사용하여 NVDIMM 장치를 정기적으로 모니터링하고 장애가 발생하기 전에 NVDIMM을 교체하십시오.다음 명령을 사용하여 NVDIMM의 네임스페이스를 나열합니다.
# ndctl list --namespaces --dimm=DIMM-ID-number
다음 예에서nmem0
장치에는 백업해야 하는namespace0.0
및namespace0.2
네임스페이스가 포함되어 있습니다.예 28.4. NVDIMM 네임스페이스 목록
# ndctl list --namespaces --dimm=0 [ { "dev":"namespace0.2", "mode":"sector", "size":67042312192, "uuid":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "raw_uuid":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "sector_size":4096, "blockdev":"pmem0.2s", "numa_node":0 }, { "dev":"namespace0.0", "mode":"sector", "size":67042312192, "uuid":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "raw_uuid":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "sector_size":4096, "blockdev":"pmem0s", "numa_node":0 } ]
- 손상된 NVDIMM을 물리적으로 교체합니다.