ZFS : 미러 및 RAID-Z


14

OpenSolaris 및 ZFS를 사용하여 XenServer 가상 머신의 iSCSI 대상 및 일반 홈 파일 서버의 두 가지 기본 서비스를 제공하는 파일 서버를 구축 할 계획입니다. 내가보고있는 하드웨어에는 2 개의 4 포트 SATA 컨트롤러, 2 개의 작은 부팅 드라이브 (각 컨트롤러에 하나씩) 및 4 개의 큰 드라이브 용 스토리지가 포함됩니다. 이를 통해 컨트롤러를 하나의 빈 포트로 사용하여 어레이를 업그레이드 할 수 있습니다.

약간 혼란스러워하는 부분은 스토리지 드라이브를 설정하는 방법입니다. 성능을 위해 미러링은 왕처럼 보입니다. 미러링보다 RAIDZ를 사용하면 어떤 이점이 있는지 알기가 어렵습니다. 이 설정을 통해 두 가지 옵션, 즉 하나의 스트라이프에 두 개의 미러링 된 풀 또는 RAIDZ2를 볼 수 있습니다. 모두 RAIDZ2의 유일한 이점은 것 ... 2 드라이브 오류 및 / 또는 하나 개의 컨트롤러 장애로부터 보호해야 어떤 이 개 드라이브가 실패 할 수 있습니다. 두 경우 모두 스토리지의 용량이 50 % 여야하지만 첫 번째 스토리지의 성능이 훨씬 우수해야합니다.

내 마음을 감싸려는 또 다른 것은 두 개 이상의 장치가있는 미러링 된 어레이의 이점입니다. 데이터 무결성을 위해 3 방향 미러에 비해 RAIDZ의 이점은 무엇입니까? ZFS는 파일 무결성을 유지하기 때문에 RAIDZ가 테이블에 가져 오는 내용은 무엇입니까? ZFS의 무결성 검사는 RAIDZ의 패리티 값을 무효화하지 않습니까?

답변:


14

간단한 대답은 무언가를 미러링하는 데 거의 처리 능력이 필요하지 않다는 것입니다. 디스크에 두 번 쓰면됩니다. RAID-Z2의 경우 완전히 새로운 패리티 블록을 계산해야합니다. 비록 작은 CAN은 많은 양의 데이터를 빠르게 써야 할 때 CPU를 정지시킵니다.

그것은 빠른 쓰기 속도없이 단지 대량 스토리지, RAID-Z2 허용 않는 좋은 대안이 있다면 미러링은 항상 고속 데이터에 대한 선호되는 솔루션입니다 어떤 당신이 암시로 두 개의 드라이브가 죽어가.

다른 장점은 미러링 된 풀을 더 많은 미러링 된 장치로 확장 할 수 있고 RAID-Z2를 확장 할 수는 없지만 더 많은 RAID-Z2 스토리지를 풀에 추가 할 수 있지만 2 개의 RAID-Z2 스토리지 풀이 연결된다는 것입니다. 모든 스토리지와 스트라이프간에 균등하게 분할되는 것이 아닙니다.


그러나 ZFS에서 RAIDZ의 패리티 블록은 무엇을 제공합니까? ZFS가 이미 제공하는 것 이상의 추가 데이터 무결성을 제공합니까? 아니면 단순히 두 개의 드라이브가 죽어야합니까? 이것이 3 방향 시나리오보다 유일한 이점이라면 미러에 비해 RAIDZ의 이점이 없습니다.
John Clayton

1
RAID-Z를 사용하면 하나의 드라이브를 죽일 수 있습니다. 10 개의 드라이브가 있으면 9 개의 드라이브에 해당하는 데이터를 얻을 수 있습니다. RAID-Z2를 사용하면 두 개의 드라이브를 모두 죽일 수 있으며 8 개의 드라이브 가치가있는 데이터를 가질 수 있습니다. 미러를 사용하면 드라이브 절반을 죽일 수 있지만 각 두 세트 중 하나만 죽을 수 있습니다. 나는 당신이 이것을 이미 알고 있다고 생각하지만, 4 개의 드라이브의 프린지 케이스 인 RAID-Z2와 Mirror 모드의 두 가지 드라이브 장애 해결 솔루션을 제공합니다. 일반적인 시나리오에서는 "유용한"추가 데이터 무결성 허용량이 없습니다.
dotwaffle September

그렇다면 미러보다 RAIDZ의 이점을 분명히하는 것이 하드웨어 장애로부터 조금 더 보호되는 것입니까? RAIDZ1과 X 드라이브가있는 미러는 본질적으로 동일합니까?
John Clayton

5
RAID-Z의 패리티는 ZFS의 내장 체크섬의 상위 집합입니다. 모든 체크섬은 디스크에서 읽고있는 데이터가 올바른지 확인하는 것입니다. 오버 헤드가 거의없는 빠른 검사를 위해 설계되었습니다. RAID-Z의 패리티가 제공하는 것은 드라이브 손실시 (또는 RAID-Z2의 경우 2) 손상된 데이터 를 재구성 할 수있는 기능 입니다. 그러나이 패리티 데이터를 생성하는 계산은 단순한 블록 체크섬보다 CPU를 훨씬 많이 사용하며 4KB 블록 만 작성하더라도 전체 스트라이프에서 계산해야합니다.
afrazier

4
@John Clayton : 중복 수준은 스토리지 구성 방법에 따라 다릅니다. N-way 미러를 만들 수 있습니다. 즉, 데이터 용량이 하나의 드라이브 크기이므로 데이터 손실없이 N-1 드라이브를 잃을 수 있습니다. 예를 들어, 3 방향 미러가있는 경우 3 개의 드라이브 모두 동일한 데이터를 포함하므로 데이터 손실없이 2 개의 드라이브를 잃을 수 있습니다. 차이점은 N-way 미러에 드라이브를 추가하면 중복성이 증가하지만 (용량은 항상 1 드라이브의 크기 임), raidz2에 드라이브를 추가하면 용량이 증가하지만 (이중화는 항상 2 개의 드라이브입니다).
rob

18

RAID-Z는 약간의 CPU 시간 비용으로 RAID 5/6 볼륨이 겪는 대부분의 쓰기 패널티와 데이터 무결성 문제를 제거합니다. 일반적으로 시스템에는 여분의 CPU주기가 있으므로 IO 성능 및 데이터 무결성을 향상시키기 위해 CPU 시간을 소비하는 것이 미러링과 비교하여 좋은 절충안입니다.

다음은 다른 질문에 대답 할 수있는 RAID-Z에 대한 자세한 설명입니다 .

또한 RAID는 내결함성 솔루션 입니다. 데이터 손실을 방지하기 위해 RAID-Z2를 구현하지 않습니다. 백업을 수행하거나 복제합니다. 하드웨어 고장시 시스템 작동을 유지하기 위해 RAID-Z2 대 RAID-Z 또는 RAID-10 대 RAID-6 대 RAID-5를 구현하도록 선택합니다.


1
기술적 인 차이를 이해하는 데 도움이되었으므로 dotwaffle에 대한 답변을 제공해야합니다. 그래도 의도 된 사용법에 대한 훌륭한 조언은 ... 정말로 생각을 멈추게 만들었습니다.
John Clayton

1
참고로 중요한 것은 RAIDZ가 eleminates 동안이다 쓰기 페널티 문제를이 도입 읽기 로 인해 처벌 문제를 각각의 읽기 작업에 대한 동시성 증가
더 - wabbit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.