단일 블록 장치의 ECC

단일 블록 장치의 ECC

때때로 조용한 결함이 있는 것으로 의심되는 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/sdaSSD의 장치 이름으로 대체).

smartctl -t long /dev/sda

몇 시간이 걸립니다. 완료되면 다음을 통해 결과를 쿼리할 수 있습니다.

smartctl -a /dev/sda | less

SMART Selective self-test log블록까지 아래로 스크롤하세요. 최상위 결과가 나타나면 Completed without errorSSD에는 아무런 문제가 없습니다. 오류가 보고되면 오류가 발생했다는 의미이므로 가능한 한 빨리 데이터를 저장해야 합니다.

관련 정보