SMART가 내 디스크 중 하나에서 복구할 수 없는 읽기 오류를 발견했지만 zpool status
모든 디스크가 "온라인"으로 표시됩니다(IE는 다운그레이드되지 않음).
- 왜 이런 일이 일어나는지 아십니까? 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
).