ZFS가 디스크 성능 저하를 보고하지 않는 이유는 무엇입니까?

ZFS가 디스크 성능 저하를 보고하지 않는 이유는 무엇입니까?

SMART가 내 디스크 중 하나에서 복구할 수 없는 읽기 오류를 발견했지만 zpool status모든 디스크가 "온라인"으로 표시됩니다(IE는 다운그레이드되지 않음).

  1. 왜 이런 일이 일어나는지 아십니까? ZFS는 가능한 한 빨리 모든 오류를 알게 될 것이라고 생각합니다.
  2. 모든 디스크의 상태를 다시 확인하려면 정리를 실행해야 합니까?
  3. SMART가 자동으로 ZFS에 보고하도록 할 수 있습니까?

답변1

  1. 왜 이런 일이 일어나는지 아십니까? ZFS는 가능한 한 빨리 모든 오류를 알게 될 것이라고 생각합니다.
  2. 모든 디스크의 상태를 다시 확인하려면 정리를 실행해야 합니까?
  3. SMART가 자동으로 ZFS에 보고하도록 할 수 있습니까?
  1. 아니요, 모든 블록을 항상 확인하지는 않습니다. 단지 필요하거나 액세스할 때 기록된 모든 블록을 고려할 수 있도록 보장할 뿐입니다(그리고 중복이 가능한 경우 복구할 수 있음). 빈 공간은 전혀 확인하지 말고(가치 있는 데이터가 없으므로 시간 낭비이므로) 읽기 시 일반 데이터만 확인합니다(쓰기는 추가 전용이므로). mmusante가 말했듯이 오류가 심각하고 자동 복구가 불가능한 경우에만 오류 메시지가 표시됩니다(그렇지 않으면 알림과 오류 개수만 표시됩니다 zpool status).
  2. 예.
  3. 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).

관련 정보