모든 Raid를 통한 ZFS는 총 통증이며 MAD 사람들 만이 수행합니다 ... ECC 메모리가 아닌 ZFS를 사용하는 것과 같습니다.
샘플을 사용하면 더 잘 이해할 수 있습니다.
- Raid1을 통한 ZFS, 하나의 디스크는 전원이 꺼 졌을 때 비트가 변경되었습니다 ... 알다시피, ZFS는 어느 디스크를 읽었는지에 따라 약간의 손상을 보거나 읽지 않습니다 ) ... 실패가 VDEV 부분에있는 경우 ... ZPOOL 전체가 모든 데이터를 영구적으로 잃습니다.
- Raid0을 통한 ZFS, 전원이 꺼 졌을 때 하나의 디스크가 비트가 변경되었습니다 ... 알고있는 것을 모두 들어보십시오 (레이드 컨트롤러는 해당 비트가 변경된 것을 보지 못하고 두 디스크 모두 정상이라고 생각합니다) ... 실패는 VDEV 부분에 있습니다 ... ZPOOL 전체가 모든 데이터를 영원히 잃어 버립니다.
ZFS가 좋은 곳은 전원이없는 디스크 (RAID 컨트롤러가이를 수행 할 수 없음), 요청없이 변경 될 때 변경된 비트 등을 감지하는 것입니다.
RAM 모듈의 비트가 요청없이 자연스럽게 변경 될 때와 같은 문제입니다. 메모리가 ECC이면 메모리가 자체적으로 수정합니다. 그렇지 않은 경우 해당 데이터가 변경되어 수정 된 디스크로 데이터가 전송됩니다. 실패가 VDEV 파트에있는 경우 변경이 UDEV 파트에 없는지 확인하십시오. ZPOOL 전체가 모든 데이터를 영구적으로 잃어 버립니다.
이것이 ZFS의 약점입니다 ... VDEV가 실패하면 모든 데이터가 영원히 손실됩니다.
하드웨어 RAID 및 소프트웨어 Raid는 자발적인 비트 변경을 감지 할 수 없으며, 체크섬이없고, Raid1 레벨 (미러)에서 최악이며, 모든 부품을 읽고 비교하지는 않으며, 모든 부품이 항상 동일한 데이터를 가질 것이라고 가정합니다. Raid는 데이터가 다른 것 / 방법에 의해 변경되지 않았다고 가정합니다. 그러나 디스크 (메모리)는 자발적인 비트 변경이 발생하기 쉽습니다.
ECC가 아닌 RAM에서 ZFS를 사용하지 말고 습격 디스크에서 ZFS를 사용하지 마십시오. ZFS가 모든 디스크를 보도록하고 VDEV 및 POOL을 망칠 수있는 계층을 추가하지 마십시오.
이러한 실패를 시뮬레이션하는 방법 ... PC 전원 끄기, 해당 Raid1의 디스크 1 개를 꺼내고 1 비트 만 변경 ... Raid 컨트롤러가 어떻게 변경되었는지 알 수 없는지 확인하십시오 ... ZFS는 모든 읽기를 테스트하기 때문에 가능합니다 체크섬에 대해 일치하지 않으면 다른 부분을 읽어보십시오 ... 하드웨어 불가능 읽기 실패를 제외하고 실패로 인해 레이드를 다시 읽지 않음 ... Raid가 읽을 수있는 경우 데이터가 정상이라고 생각하지만 (이러한 경우는 아님) ) ... Raid가 "이봐, 난 거기에서 읽을 수없고 하드웨어 고장"이라고 쓰여있는 경우에만 다른 디스크에서 읽으려고합니다 ... 체크섬이 읽은 것처럼 체크섬이 일치하지 않으면 ZFS가 다른 디스크에서 읽습니다. "이봐, 난 거기에서 읽을 수 없습니다, 하드웨어 실패"라고 말합니다.
Raid의 모든 수준에 걸친 ZFS는 데이터에 대한 총체적인 고통과 전체적인 위험입니다! 비 ECC 메모리의 ZFS뿐만 아니라
그러나 아무도 나에게 말하지 않는 것은 :
- 내부 캐시가있는 디스크를 사용하지 마십시오 (SHDD뿐만 아니라 8Mib ~ 32MiB 캐시가있는 디스크 등). 일부는 이러한 캐시에 비 ECC 메모리를 사용합니다
- SATA NCQ (쓰기를 대기열에 넣는 방법)는 전원이 느슨하면 ZFS를 망칠 수 있으므로 사용하지 마십시오.
어떤 디스크를 사용해야합니까?
- 모든 큐가 전원 장애시 디스크에 기록되고 그 안에 ECC 메모리를 사용하는 내장 배터리가있는 디스크입니다 (죄송 합니다만, 디스크가 거의없고 비용이 많이 듭니다).
그러나, 대부분의 사람들은이 모든 것을 알지 못하고 문제가 없었습니다 ... 나는 그들에게 말합니다 : 와우, 당신은 얼마나 운이 좋은지, 복권을 사십시오.
위험이 있습니다 ... 그러한 실패가 발생할 수 있습니다 ... 그래서 더 나은 대답은 다음과 같습니다.
- ZFS와 데이터가 실제로 저장되는 위치 (RAM, Raid, NCQ, 내부 디스크 캐시 등) 사이에 여유를 두지 마십시오.
내가 개인적으로 무엇을합니까?
- 더 많은 레이어를 추가하십시오 ... 나는 각각의 2.5 "SATA III 7200 rpm 디스크를 USB 3.1 Gen2 유형 C 인클로저에 사용하고 일부 인클로저를 PC에 연결하는 USB 3.1 Gen 2 유형 A 허브에 연결하고 다른 허브에 연결합니다 PC의 다른 루트 포트 등에 연결한다는 것입니다.
- 시스템의 경우 변경할 수없는 (LiveCD와 같은) Linux 시스템을 사용하기 때문에 ZFS (Raid0 레벨)에서 내부 SATA 커넥터를 사용합니다. 각 디스크는 내부 디스크에서 동일한 내용을 부팅합니다. 시스템의 복제 이미지를 가지고 있습니다. (1GiB 시스템 미만) ... 또한 트릭을 사용하여 시스템에 파일이 포함되어 있고 부팅시 복제 된 RAM 매핑 된 드라이브를 사용하므로 부팅 후 모든 시스템이 RAM에서 실행됩니다 ... DVD도 같은 방식으로 부팅 할 수 있으므로 내부 디스크에 장애가 발생하면 DVD로 부팅하고 시스템이 다시 온라인 상태입니다 ... SystemRescueCD와 비슷한 트릭이지만 ISO 파일이 조금 더 복잡 할 수 있습니다. 내부 ZFS 또는 실제 DVD 일 뿐이며 두 가지 다른 버전을 원하지 않습니다.
Raid에 대해 ZFS에 약간의 빛을 줄 수 있기를 바랍니다. 일이 잘못되면 정말 고통 스럽습니다!