SMART가 내 디스크 중 하나에서 복구할 수 없는 읽기 오류를 발견했지만 zpool status
모든 디스크를 ONLINE(IE는 DEGRADED가 아님)으로 표시합니다.
- 왜 그럴 수 있는지 아시나요? ZFS는 누구라도 즉시 오류를 알 수 있을 것입니다...
- 모든 디스크의 상태를 다시 확인하려면 스크럽을 실행해야 합니까?
- SMART가 ZFS에 자동으로 보고하도록 할 수 있습니까?
답변1
- 왜 그럴 수 있는지 아시나요? ZFS는 누구라도 즉시 오류를 알 수 있을 것입니다...
- 모든 디스크의 상태를 다시 확인하려면 스크럽을 실행해야 합니까?
- SMART가 ZFS에 자동으로 보고하도록 할 수 있습니까?
- 아니요, 모든 블록을 항상 확인하는 것은 아닙니다. 단지 기록된 각 블록이 필요하거나 액세스되는 즉시 처리(중복이 가능한 경우 복원)될 수 있는지 확인하는 것뿐입니다. 빈 공간은 전혀 검사하지 않으며(귀중한 데이터가 없기 때문에 시간 낭비이기 때문입니다), 일반 데이터는 읽을 때만 검사합니다(쓰기는 추가 전용이므로). mmusante가 정확하게 말했듯이 오류가 심각하고 자동으로 복구할 수 없는 경우에만 오류 메시지를 받게 됩니다(그렇지 않으면 에서 알림과 오류 개수만 볼 수 있습니다
zpool status
). - 예.
cronjob을 통해 정기적으로 풀을 스크러빙하는 것이 더 쉬울 수 있습니다. 일반적인 권장 시간은 엔터프라이즈 품질 디스크의 경우 한 달에 한 번, 소비자 수준 디스크의 경우 일주일에 한 번 정도입니다. 그렇지 않으면 다음을 사용하여 수동 스크러빙을 시작할 수 있습니다.smartmontools의 스크립트:
대부분의 경우 /etc/smartmontools/run.d/에 스크립트를 배치하기만 하면 됩니다. smartd가 보고서를 보내려고 할 때마다 smart-runner가 실행되고 후자가 스크립트를 실행합니다.
스크립트에 사용할 수 있는 여러 변수가 있습니다(다시, smartd 맨페이지 참조). 이는 테스트 실행에서 나온 것입니다.
SMARTD_MAILER=/usr/share/smartmontools/smartd-runner SMARTD_SUBJECT=SMART error (EmailTest) detected on host: XXXXX SMARTD_ADDRESS=root SMARTD_TFIRSTEPOCH=1267409738 SMARTD_FAILTYPE=EmailTest SMARTD_TFIRST=Sun Feb 28 21:45:38 2010 VET SMARTD_DEVICE=/dev/sda SMARTD_DEVICETYPE=sat SMARTD_DEVICESTRING=/dev/sda SMARTD_FULLMESSAGE=This email was generated by the smartd daemon running on: SMARTD_MESSAGE=TEST EMAIL from smartd for device: /dev/sda
또한 스크립트에는 "$1"로 사용할 수 있는 보고서의 임시 복사본이 있습니다. 완료되면 삭제되지만 동일한 내용이 /var/log/syslog에 기록됩니다.
그런 다음 장치 이름을 풀로 매핑하면 됩니다(파싱 가능
zpool status
).