때때로 조용한 결함이 있는 것으로 의심되는 SSD가 있습니다. 실행해 badblocks
보니 불량 섹터가 아닌 것이 분명하지만 전자 장치의 경쟁 조건이 있을 수 있습니다. 이 경우 재시도하면 데이터를 올바르게 읽을 수 있습니다.
일반 디스크에는 더 많은 공간을 차지하여 오류를 수정하는 ECC가 있습니다. Linux가 블록 장치 위에 ECC 계층을 추가할 수 있습니까?
나는 장치 매퍼와 비슷한 것을 생각하고 있습니다. 아마도 다음과 같습니다.
dmsetup create-ecc /dev/orig /dev/mapper/with_ecc
따라서 /dev/mapper/with_ecc에 대한 모든 읽기 및 쓰기는 /dev/orig의 ecc 읽기/쓰기로 변환됩니다.
편집하다:
다른 사람들도 그것을 찾고 있는 것 같습니다. http://permalink.gmane.org/gmane.linux.kernel.device-mapper.devel/8756
답변1
BTFSzfs는 데이터 무결성을 위해 설계되었습니다.
기본적으로 btrfs는 단일 장치 구성에서 메타데이터를 복사합니다. 데이터를 복사할 수도 있다고 생각합니다. 하지만 저는 한 번도 해본 적이 없습니다.
zfs에는 copies=n
단일 디스크 RAID1인 것 같습니다. 선택한 중복 정도는 사용 가능한 장치 공간과 장치 성능에 부정적인 영향을 미친다는 점을 고려하세요. 다행히 파티션/볼륨별로 복제/복제본을 지정할 수 있습니다.
이 블로그 게시물을 확인하세요.Richard Elling/Oracle에서 단일 장치의 zfs에 대해 설명합니다. 불행하게도 그래픽 이미지가 로드되지 않았습니다.
실제 증거와 일화적인 증거 모두 장치가 여전히 상당한 정도로 작동하는 동안 복구할 수 없는 오류가 발생할 수 있음을 시사합니다. ZFS는 데이터 손실 없이 이러한 오류를 허용할 수 있습니다. 아주 멋지다. 그러나 머피의 법칙은 결국 당신을 따라잡을 것입니다. ZFS가 데이터를 복구할 수 없는 경우 ZFS는 어떤 파일이 손상되었는지 알려줍니다. 그런 다음 백업 또는 소스 미디어에서 복원해야 하는지 여부를 결정할 수 있습니다.
답변2
SSD에서 SMART 자체 테스트를 실행합니다. 다음 명령을 루트로 실행합니다( /dev/sda
SSD의 장치 이름으로 대체).
smartctl -t long /dev/sda
몇 시간이 걸립니다. 완료되면 다음을 통해 결과를 쿼리할 수 있습니다.
smartctl -a /dev/sda | less
이 SMART Selective self-test log
블록까지 아래로 스크롤하세요. 최상위 결과가 나타나면 Completed without error
SSD에는 아무런 문제가 없습니다. 오류가 보고되면 오류가 발생했다는 의미이므로 가능한 한 빨리 데이터를 저장해야 합니다.