RAID 1에 2개의 서로 다른 파일 버전이 포함되어 있으면 어떻게 되나요?

RAID 1에 2개의 서로 다른 파일 버전이 포함되어 있으면 어떻게 되나요?

하드웨어라고 해보자RAID 1디스크가 있는 컨트롤러그리고오프라인으로 전환되었으며 두 디스크에 있는 파일이 디스크에서 변경되었습니다.(모두 오프라인 상태). RAID 컨트롤러가 다시 켜지고 사용자가 변경된 파일을 요청하면 어떻게 됩니까? 대부분의 RAID 1 컨트롤러는 해당 파일에서 읽기를 시도할 때까지 오류를 감지하지 못한다고 가정합니다.

  1. RAID 컨트롤러가 파일 크기/날짜/서명의 차이를 식별하여 오류를 보고합니까, 아니면 변경 사항을 인식하지 못한 채 해당 파일에 대한 2개의 디스크 내용 중 하나를 전달합니까?

  2. 운영 체제가 오류를 감지합니까?

  3. 소프트웨어 RAID 1 컨트롤러가 다르게 작동합니까?

  4. 마지막으로 RAID 1 어레이의N디스크 중 OS 또는 컨트롤러가 실제로 어떤 디스크에서 읽습니까? 모두 N? 일부 RAID 컨트롤러는 항상 사용합니까?디스크 0, 무작위로 디스크를 선택합니까, 아니면 파일 시스템에 액세스하여 무결성을 확인합니까(디스크가 암호화된 경우에도)?

답변1

"파일 시스템에 액세스할 수 있고 무결성을 확인합니까(디스크가 암호화된 경우에도)"? 아니요. RAID 컨트롤러파일에 대해 모른다– 단지 디스크 컨트롤러인 척 하며, 블록(섹터)만 다룹니다. 그리고 두 디스크의 개별 섹터가 올바르게 기록되었기 때문에~이다블록 수준에서는 오류가 감지되지 않습니다.

하드웨어 RAID 컨트롤러가 미러가 일치하지 않는 경우를 처리하는 방법에 대한 정보가 있는지 모르겠습니다. 그러나 NeilBrown은 오랫동안 Linux를 유지관리해 온 사람입니다.mdraid소프트웨어 RAID 기능 – 게시됨이 LWN 댓글mdraid가 이를 처리하는 방법을 설명합니다.

[...] RAID1의 두 장치에 동일한 데이터가 포함되어 있지 않거나 RAID4/5/6의 데이터 합계가 패리티 블록과 일치하지 않는 경우 이는 불일치가 아니라 불일치입니다. 부패.
가장 가능성 있는 설명은 무언가 잘못되었을 때(예: 전원 손실) 어레이의 여러 장치에 기록 중이었고 일부 쓰기는 성공했지만 다른 장치에는 성공하지 못했다는 것입니다. 어느 것이 성공하고 어느 것이 실패했는지는 중요하지 않습니다.

이 경우 두 블록 모두 잘못되지 않았습니다. 다시 한 번 말해야 겠어요. 두 블록 모두 정확합니다. 그것들은 서로 다른 시점에서 정확합니다.
여기에는 부패가 없으며 단지 불일치만 있을 뿐입니다.
각 블록에는 새 데이터 또는 이전 데이터가 포함되며 둘 다 어떤 의미에서는 정확합니다.
(블록이 장치에 절반만 기록된 경우(장치에 충분한 커패시터가 없는 경우 가능) CRC가 올바르지 않기 때문에 읽기 오류가 발생합니다. CRC 오류가 발생하면 , md/raid는 데이터가 잘못되었음을 알고 있으며 어쨌든 데이터를 읽을 수도 없습니다).

RAID1의 경우 어떤 장치를 사용하도록 선택하고 어떤 장치가 데이터를 교체하는지는 실제로 중요하지 않습니다. md는 장치 목록에서 가장 빠른 것을 임의로 선택합니다.
패리티 배열의 경우 패리티를 사용해도 일치하지 않는 다른 장치가 무엇인지 알 수 없으므로 데이터를 사용하고 패리티를 무시하는 것이 합리적입니다. (패리티가 데이터와 일치하지 않을 수 있고 데이터 블록 중 하나가 누락된 경우(장치 오류) 날짜나 패리티를 사용할 수 없으며 "쓰기 구멍"이 있는 것입니다.)


그렇다면 운영 체제가 오류를 감지할까요? 이는 디스크에서 사용 중인 파일 시스템과 일치하지 않는 섹터가 파일에 속하는지 아니면 파일 시스템의 자체 메타데이터에 속하는지에 따라 달라집니다. 메타데이터 섹터에 불일치가 있는 경우 감지될 가능성이 더 높지만 대부분의 경우 RAID 불일치가 아닌 일반 파일 시스템 손상으로 보고됩니다.

대부분의 파일 시스템은 파일 내용을 전혀 체크섬하지 않기 때문에 파일의 경우 그럴 가능성이 적습니다. 디스크에서 읽은 내용이 사용자가 얻는 내용입니다. 체크섬을 수행하는 Btrfs, ZFS 또는 ReFS와 같은 예외는 거의 없습니다.

이들 중 일부(Btrfs, ZFS)에는 실제로 하드웨어 RAID에 비해 장점이 있는 자체 디스크 미러링 기능이 있습니다.알고 있다어떤 디스크에 잘못된 데이터가 있고 다른 디스크에서 읽어 파일을 자동으로 복구할 수 있습니다. 그러나 하드웨어 RAID를 사용하면 RAID 컨트롤러에 "다른 버전"을 요청할 방법이 없으며 복구도 불가능합니다.


소프트웨어 RAID 1 컨트롤러가 다르게 작동합니까? 그럴 수도 있지만(위에 인용된 LWN 설명 참조) 또 다른 중요한 차이점도 있습니다.

소프트웨어 RAID(및 파일 시스템 미러링)를 사용하면 디스크 자체가 미러 세트에 속하는 정보를 전달합니다. 따라서 하나의 디스크를 다른 곳으로 옮기면 여전히 불완전한 RAID 1 어레이의 일부로 인식되며 일반적으로 소프트웨어는 처음부터 디스크 쓰기를 허용하지 않습니다. 디스크를 분리하지 않는 한 읽기 전용으로 유지됩니다. 거울.

관련 정보