1. RAID 개요
1988년, 캘리포니아 대학교 버클리 캠퍼스는 RAID(RedundantArrayofInexpensiveDisks) 개념을 제안했고, 디스크 비용이 계속 낮아지면서 RAID는 (RedundantArrayofIndependentDisks)로 바뀌었지만, 본질은 변하지 않았습니다. SNIA, 버클리 및 기타 기관들은 RAID0~RAID6의 7개 수준을 표준 RAID 수준으로 설정했으며, 표준 RAID는 다른 RAID 수준으로 결합할 수 있습니다. 가장 많이 사용되는 레벨은 RAID0, RAID1, RAID3, RAID5, RAID6, RAID10입니다. 각 RAID 레벨은 구현 방법과 기술을 나타내며, 레벨 간 구분은 없습니다. 실제 적용에서는 사용자의 데이터 애플리케이션 특성에 따라 가용성, 성능, 비용을 고려하여 적절한 RAID 레벨과 특정 구현 방법을 선택해야 합니다.
구현 측면에서 RAID는 주로 세 가지 유형으로 나뉩니다: 소프트 RAID, 하드 RAID, 그리고 하이브리드 RAID. 소프트 RAID의 모든 기능은 운영체제와 CPU가 수행하는데, 이는 당연히 가장 비효율적입니다. 하드 RAID는 특수 RAID 제어/처리 칩과 I/O 처리 칩, 어레이 버퍼를 갖추고 있어 CPU 자원을 소모하지 않지만 비용이 많이 듭니다. 하이브리드 RAID는 RAID 제어/처리 칩을 가지고 있지만, CPU와 드라이버가 필요한 I/O 처리 칩이 없고, 성능과 비용은 소프트 RAID와 하드 RAID 사이가 됩니다.
2. 기본 원칙
RAID는 여러 개의 독립적이고 고성능 디스크 드라이브로 구성된 디스크 서브시스템으로, 단일 디스크보다 더 높은 저장 성능과 데이터 중복 기술을 제공합니다. RAID는 호스트 환경에 저렴한 비용으로 높은 데이터 신뢰성을 가진 고성능 스토리지를 제공하는 다중 디스크 관리 기술의 한 종류입니다. RAID의 두 가지 주요 목표는 데이터 신뢰성과 입출력 성능을 향상시키는 것입니다. 디스크 배열에서는 데이터가 여러 디스크에 분산되어 있지만, 컴퓨터 시스템에서는 하나의 디스크와 같습니다. 중복성은 동일한 데이터를 여러 디스크에 동시에 쓰거나(일반적으로 미러링과 같이) 또는 계산된 체크 데이터를 배열에 쓰는 방식으로 이루어져, 단일 디스크가 고장 나도 데이터 손실이 발생하지 않도록 보장합니다.
RAID에는 세 가지 주요 개념과 기법이 있습니다: 미러링, DataStripping, Dataparity:
미러링은 여러 디스크에 데이터를 복제하는 방식으로, 한편으로는 신뢰성을 높이고, 두 개 이상의 복제본에서 데이터를 동시에 읽어 읽기 성능을 향상시킵니다. 분명히 이미지의 쓰기 성능은 약간 낮고, 데이터가 여러 디스크에 올바르게 쓰이도록 하는 데 더 많은 시간이 걸립니다. 데이터 스트라이핑은 여러 개의 서로 다른 디스크에 데이터 샤드를 저장하고, 여러 데이터 샤드를 함께 하여 완전한 데이터 복사본을 형성하는 방식으로, 미러링의 여러 복사본과는 다르며 성능 문제로 자주 사용됩니다. 데이터 스트립은 동시성 세밀성이 더 높으며, 데이터에 접근할 때 서로 다른 디스크에서 데이터를 동시에 읽고 쓸 수 있어 입출력 성능이 크게 향상됩니다. 데이터 검증은 중복 데이터를 사용하여 오류 감지 및 복구를 위해 사용되며, 중복 데이터는 보통 헤밍웨이 코드, XOR 연산 및 기타 알고리즘으로 계산됩니다. 검증 기능은 디스크 배열의 신뢰성, 도난 방지, 내결함성을 크게 향상시킬 수 있습니다. 하지만 데이터 검증은 여러 출처에서 데이터를 읽고 계산하며 비교해야 하므로 시스템 성능에 영향을 줄 수 있습니다. RAID 등급은 세 가지 기술 중 하나 이상을 사용하여 서로 다른 데이터 신뢰성, 가용성, 입출력 성능을 달성합니다. 어떤 RAID를 설계할지(또는 새로운 등급이나 유형), 어떤 RAID 모드를 사용할지에 대해서는, 시스템 요구에 대한 깊은 이해를 바탕으로 합리적인 선택을 하고, 신뢰성, 성능, 비용을 포괄적으로 평가하여 타협을 해야 합니다.
일반적으로 RAID의 주요 장점은 대용량, 고성능, 신뢰성, 관리 용이성입니다.
3. 레이드 등급
JBOD(JustaBunchOfDisks)는 표준 RAID 계층이 아니며, 제어 소프트웨어가 없어 조정된 제어를 제공하지 않는 디스크 집합을 나타내는 데 자주 사용됩니다. JBOD는 여러 개의 물리 디스크를 직렬로 연결하여 거대한 논리 디스크를 제공합니다. 저장 성능은 단일 디스크와 정확히 같으며, 데이터 보안을 제공하지 않습니다. 사용 가능한 저장 용량은 모든 멤버 디스크의 저장 공간의 합과 같습니다.
RAID0는 스트라이핑이라고 불리며, 단순하고 검증되지 않은 데이터 스트라이핑 기술입니다. 성능은 모든 RAID 계층 중 가장 높습니다. 어떤 종류의 중복 정책도 제공되지 않습니다. 저장 공간 100% 활용.
RAID1은 미러링이라고 하며, 작업 중인 디스크와 미러된 디스크에 데이터를 완전히 일관되게 쓰고 디스크 공간 사용률은 50%입니다. 데이터가 기록될 때 성능이 영향을 받지만, 데이터는 읽히지 않습니다. 작동 중인 디스크가 고장 나면 시스템이 자동으로 미러링된 디스크에서 데이터를 읽어 사용자의 작업에 영향을 주지 않아 최상의 데이터 보호를 제공합니다.
RAID2는 헤밍 코드 디스크 어레이(Heming Code Disk Array)라고 불리며, 그 설계 아이디어는 헤밍 코드를 사용해 데이터 검증 중복성을 달성하는 것입니다. 데이터 폭이 클수록 저장 공간 사용률이 높아지지만, 더 많은 디스크가 필요합니다. 오류 수정 기능은 있지만, 헤밍코드의 데이터 중복 오버헤드가 너무 크고 데이터 재구성이 매우 시간이 많이 걸려 실제로는 거의 사용되지 않습니다.
RAID3는 전용 패리티 스트립이라고 하며, 전용 디스크를 체크 디스크로, 나머지 디스크를 데이터 디스크로 사용하며, 데이터는 각 데이터 디스크에 비트와 바이트 단위로 교차 저장됩니다. RAID3는 최소 세 개의 디스크가 필요합니다.
RAID4와 RAID3도 거의 같은 원리로 작동합니다. 읽기 성능은 매우 좋지만, 쓰기 성능은 좋지 않습니다. 그리고 회원 디스크 수가 증가함에 따라 체크섬 디스크의 시스템 병목 현상이 더욱 두드러지게 됩니다. 실제 환경에서는 드물며, 주류 스토리지 제품에서는 RAID4 보호를 거의 사용하지 않습니다.
RAID5는 분산 패리티 체크섬 스트립(distributed parity checksum strip)이라고 불리며, 현재 가장 일반적인 RAID 수준이어야 하며, 원리는 RAID4와 유사하지만, RAID4에서 동시 쓰기 작업 중 체크 디스크의 성능에 병목 현상은 없습니다.
RAID6는 더블 패리티 스트립이라 불리며, 두 디스크가 동시에 고장 났을 때 데이터 무결성 문제를 해결하기 위해 이중 검사 개념을 도입했으며, 이는 다른 RAID 클래스가 해결할 수 없는 문제입니다. 하지만 RAID5보다 훨씬 비용이 많이 들고, 쓰기 성능이 좋지 않으며, 설계와 구현이 매우 복잡합니다. 따라서 RAID6는 실제로 거의 사용되지 않으며, 일반적으로 RAID10 솔루션에 대한 경제적인 대안입니다.
표준 RAID 티어에는 장단점이 있습니다. 여러 RAID 레벨을 결합하여 상호 보완적인 장점을 달성하고 서로의 단점을 보완하여 더 높은 성능, 데이터 보안 및 기타 지표를 갖춘 RAID 시스템을 완성합니다. 물론 조합 레벨의 구현 비용은 일반적으로 매우 비싸며, 특정 경우에 한정됩니다. 실제로 널리 사용되는 것은 RAID01과 RAID10뿐입니다.
RAID01은 먼저 스트라이프 처리되고 그 다음 미러링되는데, 이는 본질적으로 물리적 디스크를 이미징하는 것입니다; RAID10은 먼저 이미지잉을 하고, 그 다음 스트라이프(stripe)를 가상 디스크를 이미징하는 것입니다. 같은 구성에서는 RAID01이 보통 RAID10보다 더 나은 내결함성을 가집니다. RAID01은 RAID0과 RAID1의 장점을 결합하여 전체 디스크 사용률이 50%에 불과합니다.
4. 주류 RAID 수준 비교
RAID 구성
레벨/설명: | 내결함성 | 장점 | 결점 | RAID 0
드라이브 간에 데이터를 매핑하여 대형 가상 디스크를 만듭니다. 각 물리적 디스크는 요청의 일부만 처리하기 때문에 더 높은 성능을 제공할 수 있습니다. 하지만 한 드라이브가 고장 나면 가상 디스크(VD)에 접근할 수 없게 되고 데이터가 영구적으로 사라집니다. | 안 | 더 나은 성능 추가 저장 공간 | 중요한 데이터에 사용되어서는 안 됩니다 | RAID 1
데이터를 미러링하고, 데이터 중복성을 두 개의 드라이브에 저장하세요. 한 디스크가 고장 나면 다른 디스크가 주 드라이브로 사용하게 됩니다. | 디스크 오류 단일 디스크 고장 | 높은 읽기 성능 드라이브 고장 후 빠르게 복구하세요 데이터 중복성 | 디스크 오버헤드가 큽니다 제한된 수용 인원 | RAID 5
드라이브 간에 데이터를 매핑하고 각 데이터 스트립의 패리티 비트를 VD에서 서로 다른 드라이브에 저장하세요. 패리티 비트는 단일 디스크 고장 시 고장 난 디스크의 데이터를 다른 디스크에서 재구성할 수 있는 정보를 포함합니다. | 디스크 오류 단일 디스크 고장 | 구동 용량의 효율적 활용 높은 읽기 성능 중간에서 높은 쓰기 성능 | 중간 정도의 디스크 고장 영향 패리티의 재계산으로 인해 재구성 시간이 더 길어집니다 | RAID 6
드라이브 간에 데이터를 매핑하고 각 데이터 스트립의 패리티 비트를 VD에서 서로 다른 드라이브에 저장하세요. RAID 5와 달리 RAID 6는 두 가지 패리티 계산(P와 Q)을 수행하여 듀얼 디스크 장애를 견딜 수 있습니다. | 데이터 중복성 높은 읽기 성능 | 디스크 오류 듀얼 디스크 고장 | 두 가지 패리티 계산으로 인해 쓰기 성능이 저하됩니다 패리티를 위해 두 개의 디스크를 사용하는 것과 동등하기 때문에 추가 비용이 발생합니다 | RAID 10
거울 세트에 스트립을 붙였다. 디스크 오버헤드가 높긴 하지만, 드라이브 고장 시 고성능, 중복성, 빠른 복구를 위한 훌륭한 해결책입니다. | 디스크 오류 이미지 세트당 디스크 고장 하나 | 높은 읽기 성능 최대 192개의 드라이브를 가진 RAID 그룹을 지원할 수 있습니다 | 가장 높은 비용 | RAID 50
세트장에 RAID 5 스트립이 있습니다. 패리티 계산당 디스크 읽기를 줄임으로써, 구성에 따라 RAID 5에서 성능을 향상시킬 수 있습니다. | 디스크 오류 스팬당 디스크 한 건의 장애 | 높은 읽기 성능 중간에서 높은 쓰기 성능 최대 192개의 드라이브를 가진 RAID 그룹을 지원할 수 있습니다 | 중간 정도의 디스크 고장 영향 패리티의 재계산으로 인해 재구성 시간이 더 길어집니다 | RAID 60
세트에 RAID 6 스트립이 설치되어 있습니다. 패리티 계산당 디스크 읽기 횟수가 적기 때문에, 구성에 따라 RAID 6로 성능을 향상시킬 수 있습니다. | 디스크 오류 각 스팬당 두 개의 디스크가 고장 납니다 | 높은 읽기 성능 최대 192개의 드라이브를 가진 RAID 그룹을 지원할 수 있습니다 | 두 가지 패리티 계산으로 인해 쓰기 성능이 저하됩니다 패리티를 위해 두 개의 디스크를 사용하는 것과 동등하기 때문에 추가 비용이 발생합니다 |
5. RAID 소프트웨어 및 하드웨어 차이
소프트 RAID
소프트 RAID는 전용 제어 칩과 입출력 칩을 갖추지 않으며, 운영체제와 CPU가 모든 RAID 기능을 구현합니다. 현대 운영체제는 기본적으로 소프트 RAID 지원을 제공하며, 디스크 장치 드라이버 위에 소프트웨어 계층을 추가하여 물리적 드라이브와 논리 드라이브 간의 추상화를 제공합니다. 현재 운영체제에서 가장 일반적으로 지원되는 RAID 등급은 RAID0, RAID1, RAID10, RAID01, RAID5입니다. 예를 들어, Windows Server는 RAID0, RAID1, RAID5를 지원하고, Linux는 RAID0, RAID1, RAID4, RAID5, RAID6 등을 지원하며, Mac OS X Server, FreeBSD, NetBSD, OpenBSD, Solaris 등 운영체제도 해당 RAID 레벨을 지원합니다.
소프트 RAID의 구성 관리와 데이터 복구는 비교적 간단하지만, 모든 RAID 작업은 CPU가 검사 값 계산과 같이 완전히 수행하므로 실행 효율이 상대적으로 낮습니다.
소프트 RAID는 운영체제에 의해 구현되므로, 시스템이 위치한 파티션은 RAID의 논리 멤버 디스크로 사용할 수 없으며, 소프트 RAID는 시스템 디스크 D를 보호할 수 없습니다. 일부 운영체제에서는 RAID 구성 정보가 디스크에 별도의 파일로 저장되지 않고 시스템 정보에 저장됩니다. 이렇게 하면 시스템이 갑작스럽게 다운되어 재설치가 필요할 때 RAID 정보가 사라집니다. 또한, 디스크의 내결함성 기술은 온라인 교체, 핫스왑 또는 핫스왑을 완전히 지원하지 않으며, 잘못된 디스크의 핫스왑을 지원할 수 있는지는 운영체제 구현과 관련이 있습니다.
하드 RAID
하드 RAID는 자체 RAID 제어 처리와 입출력 처리 칩, 심지어 배열 버퍼링까지 갖추고 있는데, 이는 CPU 사용량과 전체 성능 면에서 세 가지 구현 유형 중 가장 우수하지만 구현 비용이 가장 높습니다. 하드 RAID는 일반적으로 시스템이 실행 중일 때 고장 난 디스크를 대체하는 핫스왑 기술을 지원합니다.
하드 RAID는 RAID 카드와 RAID 칩이 메인보드에 통합된 형태이며, 서버 플랫폼은 종종 RAID 카드를 사용합니다. RAID 카드는 4개의 부분으로 구성됩니다: RAID 코어 처리 칩(RAID 카드의 CPU), 포트, 캐시, 그리고 배터리입니다. 그중 포트는 IDE/ATA, SCSI, SATA, SAS, FC 등 RAID 카드가 지원하는 디스크 인터페이스 유형을 의미합니다.
하드 RAID와 소프트 RAID가 혼합되어 있습니다
소프트 RAID는 좋지 않고 시스템 파티션을 보호하지 않아 데스크톱 시스템에 적용하기 어렵습니다. 하드 RAID는 매우 비용이 많이 들고, 서로 다른 RAD는 서로 독립적이며 상호 운용성이 없습니다. 따라서 사람들은 성능과 비용 사이에서 타협점을 얻기 위해 소프트웨어와 하드웨어를 결합하여 RAID를 구현합니다. 즉, 높은 비용 성능을 확보하기 위해서입니다.
이 RAID는 비용 절감을 위해 처리 제어 칩을 사용하지만, 칩은 종종 더 저렴하고 처리 능력이 약하며, 대부분의 작업 처리는 여전히 CPU가 펌웨어 드라이버를 통해 수행합니다.
6. RAID 애플리케이션 선택
RAID 계층을 선택할 때 세 가지 주요 요소가 있습니다: 데이터 가용성, I/O 성능, 그리고 비용입니다. 가용성이 필요하지 않다면 고성능 RAID0를 선택하세요. 가용성과 성능이 중요하고 비용이 큰 요소가 아니라면 디스크 수를 기준으로 RAID1을 선택하세요. 가용성, 비용, 성능이 모두 중요하다면, 일반적인 데이터 전송과 디스크 수를 기준으로 RAID3 또는 RAID5를 선택하세요. 실제 적용에서는 사용자의 데이터 애플리케이션의 특성과 구체적인 조건을 고려하여 가용성, 성능, 비용을 고려하여 적절한 RAID 레벨을 선택해야 합니다.
|