ZFS 풀을 만들기 위해서 마법사를 시작하면 RAID Level을 선택하는 메뉴를 볼 수 있습니다.
각 유형의 차이점에 대해서 하나씩 알아보겠습니다.
Single
Single은 디스크 1개로 구성하는 것입니다. 그래서 ZFS에서 여러 개의 디스크로 구현하는 용량 확장, 성능 향상, 데이터 보호와 같은 기능은 사용할 수 없습니다.
대신 ZFS의 스냅샷, 압축과 같은 기능이 필요한 경우에 사용됩니다.
Mirror
거울(Mirror)을 보면 나와 똑 같은 사람이 둘이 보이죠?
ZFS에서 Mirror 방식은 2개의 디스크를 이용해서, 2개의 디스크가 항상 같은 데이터를 갖고 있게 실시간으로 복사해서 사용하는 방식입니다. 그러다 2개의 디스크 중에 하나의 디스크에 문제가 생겨도, 남아 있는 1개의 디스크에서 데이터를 읽고 쓸 수 있습니다.
RAID10
데이터는 모두 1개의 사본이 존재하게 됩니다. 즉 위의 Mirror(RAID1)와 같습니다. 이렇게 디스크 2개씩을 RAID1로 묶어서 하나의 그룹을 만듭니다. 그리고 이 그룹을 2개 이상 묶어서 RAID0 그룹을 만듭니다. 이렇게 2가지 방식이 같이 사용된다고 해서 RAID10이라고 부릅니다.
데이터 저장은 그림 처럼 일정 크기 단위로 RAID0 그룹을 순환하면서 이루어 집니다.
용량 효율은 낮지만(50%), 성능도 좋고, 구조도 간단하고, CPU 부담도 적습니다. 그래서 오랜 시간 동안 사랑 받고 있는 방식 중 하나입니다. 일반적으로 같은 디스크 수에서 성능은 RAID10이 가장 좋습니다.
디스크가 1개만 장애나는 경우에는 데이터가 손실되지 않습니다. 그러나 같은 그룹의 디스크 2개가 동시에 장애가 나면 데이터가 손실됩니다.
구성을 위해서는 최소 4개의 디스크가 있어야 합니다.
RAIDZ
RAID5와 비슷한 방식입니다. 패리티 블록을 사용하여 1개의 드라이브에 장애가 발생할 경우 손실된 데이터를 재구성할 수 있는 기능을 제공합니다. 성능과 데이터 보안의 조합으로 인해 가장 많이 사용되는 RAID 레벨 중 하나입니다. 하나의 드라이브 장애로부터 데이터를 보호하지만, 재구축(rebuild)하기 전에 다른 드라이브가 고장 나면 전체 데이터가 날라갈 수 있습니다.
구성을 위해서는 최소 3개의 디스크가 있어야 합니다.
RAIDZ2
RAID6와 비슷한 방식입니다. RAIDZ과 비슷하지만 패리티가 하나가 아닌 두 개입니다. 두 개의 드라이브 장애를 견디고 재구축할 수 있기 때문에 RAIDZ 보다 더 안전하다고 볼 수 있습니다.
구성을 위해서는 최소 4개의 디스크가 있어야 합니다.
RAIDZ3
패리티가 무려 3개입니다. 동시에 3개의 드라이브 장애를 견디고 재구축할 수 있다는 뜻입니다.
구성을 위해서는 최소 5개의 디스크가 있어야 합니다.
사용 가능 용량
디스크의 전체 용량에 비해서 RAID로 풀을 구성했을 때 실제로 사용할 수 있는 용량을 사용 가능 용량이라고 합니다.
RAID10의 용량 효율은 계산하기 쉽습니다. 딱 반토막(50%) 입니다. 예를 들어 10TB 짜리 4개로 구성하면 총 디스크 용량은 40TB, 사용 가능용량은 20TB가 됩니다.
RAIDZ 방식의 용량 효율은 다음 표와 같습니다. 구성 디스크의 수에 따라 효율에 차이가 있습니다.
RAIDZ 유형 | 디스크 수(N) | 용량 공식 | 효율 (%) |
---|---|---|---|
RAIDZ1 | 최소 3 | (N−1)/N | 66.7% ~ 87.5% |
RAIDZ2 | 최소 4 | (N−2)/N | 50% ~ 80% |
RAIDZ3 | 최소 5 | (N−3)/N | 40% ~ 75% |
N = 디스크 수 |
예를 들어 정리해보면 다음 표와 같습니다.
RAIDZ 수준 | 디스크 수 | 사용 가능 용량 | 효율 (%) |
---|---|---|---|
RAIDZ1 | 3개 (최소) | 20TB (10TB × (3-1)) | 66.7% |
RAIDZ1 | 5개 | 40TB (10TB × (5-1)) | 80% |
RAIDZ1 | 8개 | 70TB (10TB × (8-1)) | 87.5% |
RAIDZ2 | 4개 (최소) | 20TB (10TB × (4-2)) | 50% |
RAIDZ2 | 6개 | 40TB (10TB × (6-2)) | 66.7% |
RAIDZ2 | 10개 | 80TB (10TB × (10-2)) | 80% |
RAIDZ3 | 5개 (최소) | 20TB (10TB × (5-3)) | 40% |
RAIDZ3 | 8개 | 50TB (10TB × (8-3)) | 62.5% |
RAIDZ3 | 12개 | 90TB (10TB × (12-3)) | 75% |
유형별 구성 가능한 최대 디스크 수는 변수가 많아 관점마다 조금 다릅니다. 예를 들어 OpenZFS 설명서는 “성능 향상을 위해 3~9개 사이를 권장합니다.” 정도로 언급되고 있습니다. 참고용 수치는 다음 표와 같습니다.
RAIDZ 유형 | 최소 디스크 개수 | 권장 디스크 개수 |
---|---|---|
RAIDZ1 | 3개 | 5~9개 |
RAIDZ2 | 4개 | 6~12개 |
RAIDZ3 | 5개 | 8~16개 |