NAS는 zpool status가 읽기 오류나 체크섬 오류를 보고하기 시작할 때 여전히 접근 가능할 수 있습니다. 디스크가 죽었다고 결론짓기 전에, 올바른 풀에서 스크럽을 실행하십시오. 이 검사는 풀의 블록을 읽고 그들의 체크섬을 확인합니다.
VM, 백업 또는 공유를 호스팅하는 서버에서는 조용한 I/O 창을 선택하겠습니다. 스크럽은 디스크를 사용하고, ZFS는 resilver와 동시에 실행할 수 없도록 합니다. 목적은 풀이 건강한지 확인하는 것이며, 경고를 없애기 위해 명령을 다시 실행하는 것이 아닙니다.

스크럽 시작 전, 풀 이름 확인
현재 상태를 읽는 것부터 시작하십시오. lsblk에서 보이는 마운트나 디스크로 풀 이름을 추측하지 마십시오. zpool list 명령은 가져온 풀을 제공하고, zpool status -v는 그들의 상태와 알려진 오류를 표시합니다.
sudo zpool list
sudo zpool status -v tank
tank를 머신에서 반환된 이름으로 교체하십시오. 출력에서 scan 라인, 풀의 일반 상태 및 vdev의 READ, WRITE, CKSUM 카운터를 확인하십시오. -v 변형은 ZFS가 경로를 알고 있을 때 관련된 파일 목록도 표시할 수 있습니다.
이미 resilver 중인 풀은 추가하거나 교체한 디스크를 복구합니다. 스크럽 요청 전에 이 작업이 완료되기를 기다려야 합니다: OpenZFS는 이러한 작업을 한 번에 하나만 허용합니다. 디스크가 데이터베이스나 매우 바쁜 VM에 사용되고 있다면, 중간에 I/O 포화를 초래하기보다는 제어를 연기하십시오.
조용한 기간 동안 스크럽 시작
다음 명령은 tank에서 정상 스크럽을 시작합니다:
sudo zpool scrub tank
스크럽은 데이터를 탐색하며 체크섬을 확인합니다. 미러, RAIDZ 또는 dRAID의 경우 ZFS는 유효한 복사본이 있는 경우 손상된 블록을 복구할 수 있습니다. 고립된 디스크나 복제가 없는 손상은 백업이나 하드웨어 교체로 처리해야 할 사고입니다.
명령은 거의 즉시 반환됩니다. 이는 정상입니다: 작업은 백그라운드에서 계속 진행됩니다. 만약 부하가 불편해진다면, OpenZFS는 스크럽을 일시 중지한 후 동일한 명령으로 나중에 다시 시작할 수 있도록 허용합니다.
sudo zpool scrub -p tank
sudo zpool scrub tank
첫 번째 점검에는 zpool scrub -a를 피하십시오. 이 옵션은 모든 풀에서 작업을 시작, 일시 중지 또는 종료하며, 여러 개의 풀을 호스팅하는 머신에서 부하가 크게 걸릴 수 있습니다.
진행 상황 추적 및 오류 읽기
스크럽 중에 zpool status를 다시 실행하십시오:
sudo zpool status tank
sudo zpool status -v tank
scan 라인은 작업의 시작, 스캔된 볼륨, 진행 상황, 처리 속도 및 남은 예상 시간을 나타냅니다. 100%를 초과한 진행 상황은 읽기 중 데이터가 변경되기 때문에 활성 풀에서 나타날 수 있습니다.
마지막에 디스크 카운터와 자세한 목록을 다시 읽으십시오. 깔끔한 결과는 0 errors로 완료된 스크럽을 나타냅니다. 수리된 오류는 여전히 디스크, 케이블 및 컨트롤러의 이력을 확인해야 할 필요가 있습니다. 이 단계에서 커널 메시지가 종종 유용합니다: 가이드 Linux의 dmesg는 스토리지 경고를 분리하는 방법을 보여줍니다.
- 증가하는 READ 또는 WRITE: 새로운 작업 전에 디스크, 케이블 및 컨트롤러를 확인하십시오.
- 증가하는 CKSUM: 전송 또는 읽기 오류를 찾아보십시오, ZFS가 건전한 복사본 덕분에 블록을 복구했더라도 말입니다.
- 스크럽 후 목록에 나타나는 파일: 확인된 백업에서 복원한 후, 오류가 지속되는 경우 원인인 하드웨어를 교체하십시오.
영구 오류 후, 단순 점검에서 벗어나기
스크럽은 주어진 순간에 풀의 관찰 가능한 무결성을 검증합니다. NAS 외부의 백업을 대체하지 않으며, 불안정한 디스크를 신뢰할 수 있는 디스크로 변환하지도 않습니다. 만약 zpool status -v tank가 스캔 종료 후에도 오류를 계속 나열한다면, 먼저 읽을 수 있는 데이터를 건강한 대상으로 복사하십시오.
문서 OpenZFS의 zpool scrub는 체크섬 검사가 모든 블록을 검사하고, 자동 수리는 유효한 중복 복사본을 요구한다고 명시합니다. 중복이 없는 풀의 경우, 합리적인 결정은 백업에서 복원하고 결함 있는 매체를 교체하는 것입니다.