답변:
RAID는 Redundant Array of Independent Disks (독립 디스크의 중복 배열)를 의미합니다 (일부는 "일반"디스크임을 나타 내기 위해 "저렴한"이라고 가르쳤습니다. 역사적으로 내부적으로 중복 디스크가 매우 비싸서 더 이상 사용할 수 없기 때문에 더 이상 사용할 수 없기 때문에).
가장 일반적인 수준에서 RAID는 동일한 읽기 및 쓰기에서 작동하는 디스크 그룹입니다. SCSI IO는 볼륨 ( "LUN")에서 수행되며 성능 향상 및 / 또는 중복 증가를 유발하는 방식으로 기본 디스크에 분배됩니다. 성능 향상은 스트라이핑의 기능입니다. 데이터가 여러 디스크에 분산되어 읽기 및 쓰기가 모든 디스크의 IO 대기열을 동시에 사용할 수 있습니다. 중복성은 미러링 기능입니다. 전체 디스크를 사본으로 보관하거나 개별 스트라이프를 여러 번 쓸 수 있습니다. 대안으로, 일부 유형의 레이드에서는 비트를 위해 데이터 비트를 복사하는 대신 패리티 정보를 포함하는 특수 스트라이프를 작성하여 중복성을 확보 할 수 있으며, 이는 하드웨어 장애시 손실 된 데이터를 재생성하는 데 사용할 수 있습니다.
여기에서 다루는 이러한 이점의 다른 수준을 제공하는 여러 구성이 있으며 각 구성에는 성능 또는 중복성에 대한 편견이 있습니다.
어떤 RAID 레벨이 작동하는지 평가할 때 중요한 측면은 장점과 하드웨어 요구 사항 (예 : 드라이브 수)에 따라 다릅니다.
이러한 RAID 유형 (0,1,5) 의 대부분 의 또 다른 중요한 측면은 데이터가 저장되는 실제 데이터와 추상화되어 있기 때문에 데이터의 무결성을 보장 하지 않는다는 것입니다. 따라서 RAID는 손상된 파일을 보호하지 않습니다. 파일이 어떤 방식 으로든 손상된 경우 손상이 미러링되거나 패리티되어 디스크에 커밋됩니다. 그러나 RAID-Z는 데이터의 파일 수준 무결성을 제공한다고 주장합니다 .
직접 연결된 스토리지에서 RAID와 하드웨어 및 소프트웨어의 두 가지 계층을 구현할 수 있습니다. 실제 하드웨어 RAID 솔루션에는 RAID 계산 및 처리 전용 프로세서가있는 전용 하드웨어 컨트롤러가 있습니다. 또한 일반적으로 배터리 백업 캐시 모듈을 사용하여 정전 후에도 데이터를 디스크에 쓸 수 있습니다. 이를 통해 시스템이 완전히 종료되지 않은 경우 불일치를 제거 할 수 있습니다. 일반적으로 좋은 하드웨어 컨트롤러는 소프트웨어보다 성능이 뛰어나지 만 상당한 비용이 들고 복잡성이 증가합니다.
소프트웨어 RAID는 전용 RAID 프로세서 나 별도의 캐시를 사용하지 않으므로 일반적으로 컨트롤러가 필요하지 않습니다. 일반적으로 이러한 작업은 CPU에서 직접 처리합니다. 최신 시스템에서는 이러한 계산에 최소한의 리소스가 사용되지만 약간의 지연 시간이 발생합니다. RAID는 OS에 의해 직접 처리되거나 FakeRAID 의 경우 가짜 컨트롤러에 의해 처리됩니다 .
일반적으로 누군가 소프트웨어 RAID를 선택하려는 경우 FakeRAID를 피하고 Windows의 동적 디스크, Linux의 mdadm / LVM 또는 Solaris, FreeBSD 및 기타 관련 배포판의 ZFS와 같은 OS 기본 패키지를 시스템에 사용해야합니다. . FakeRAID는 하드웨어와 소프트웨어의 조합을 사용하여 하드웨어 RAID의 초기 모습을 나타내지 만 소프트웨어 RAID의 실제 성능을 나타냅니다. 또한 일반적으로 어레이를 다른 어댑터로 옮기는 것은 매우 어렵습니다 (원본이 실패한 경우).
다른 곳의 RAID는 일반적으로 SAN (Storage Area Network) 또는 NAS (Network Attached Storage)라고하는 중앙 집중식 저장 장치에 있습니다. 이러한 장치는 자체 스토리지를 관리하고 연결된 서버가 다양한 방식으로 스토리지에 액세스 할 수 있도록합니다. 동일한 수의 디스크에 여러 워크로드가 포함되므로 일반적으로 높은 수준의 중복성을 갖는 것이 좋습니다.
NAS와 SAN의 주요 차이점은 블록 대 파일 시스템 수준 내보내기입니다. SAN은 파티션 또는 논리 볼륨 (RAID 어레이 위에 구축 된 것을 포함)과 같은 전체 "블록 장치"를 내 보냅니다. SAN의 예로는 파이버 채널 및 iSCSI가 있습니다. NAS는 파일 또는 폴더와 같은 "파일 시스템"을 내 보냅니다. NAS의 예로는 CIFS / SMB (Windows 파일 공유) 및 NFS가 있습니다.
RAID0 (일명 스트라이핑)은 때때로 "드라이브가 실패 할 때 남게되는 데이터의 양"이라고합니다. "R"은 "중복"을 의미하는 "RAID"에 맞습니다.
RAID0은 데이터 블록을 가져 와서 디스크 수만큼 (2 디스크 → 2 조각, 3 디스크 → 3 조각) 분할 한 다음 각 데이터 조각을 별도의 디스크에 씁니다.
즉, 단일 디스크 장애는 전체 어레이를 파괴하지만 (파트 1 및 파트 2는 있지만 파트 3은 없기 때문에) 매우 빠른 디스크 액세스를 제공합니다.
프로덕션 환경에서는 자주 사용되지 않지만, 영향을받지 않고 손실 될 수있는 임시 데이터가 엄격하게있는 상황에서는 사용할 수 있습니다. 캐싱 장치 (예 : L2Arc 장치)에 다소 일반적으로 사용됩니다.
사용 가능한 총 디스크 공간은 어레이에있는 모든 디스크의 합을 합한 것입니다 (예 : 3x 1TB 디스크 = 3TB의 공간).
RAID 1 (일명 미러링)은 데이터를 가져와 두 개 이상의 디스크 (일반적으로 2 개의 디스크 만 있음)에 동일하게 복제합니다. 두 개 이상의 디스크를 사용하는 경우 동일한 정보가 각 디스크에 저장됩니다 (모두 동일합니다). 디스크가 3 개 미만인 경우 데이터 중복성을 보장하는 유일한 방법입니다.
RAID 1은 때때로 읽기 성능을 향상시킵니다. RAID 1의 일부 구현은 읽기 속도를 두 배로 늘리기 위해 두 디스크에서 읽습니다. 일부는 디스크 중 하나에서만 읽으므로 추가적인 속도 이점이 없습니다. 다른 것들은 두 디스크에서 같은 데이터를 읽어 모든 읽기에서 어레이의 무결성을 보장하지만 단일 디스크와 동일한 읽기 속도를 갖습니다.
일반적으로 디스크 확장이 거의없는 소형 서버 (예 : 2 개의 디스크 공간이있는 1RU 서버 또는 중복이 필요한 워크 스테이션)에 사용됩니다. "잃어버린"공간에 대한 오버 헤드가 높기 때문에 동일한 용량의 사용 가능한 스토리지를 얻기 위해 두 배의 비용을 소비해야하므로 소용량, 고속 (및 고비용) 드라이브로 인해 비용이 엄청나게 비쌀 수 있습니다.
사용 가능한 총 디스크 공간은 어레이에서 가장 작은 디스크의 크기입니다 (예 : 2x 1TB 디스크 = 1TB의 공간).
1E의 RAID 수준은 항상 (적어도) 두 개의 디스크에 기록되는 데이터에서 RAID 1과 비슷합니다. 그러나 RAID1과 달리 여러 디스크에 데이터 블록을 인터리빙하여 홀수 개의 디스크를 허용합니다.
성능 특성은 RAID1과 유사하고 내결함성은 RAID 10과 유사합니다.이 체계는 3 개 이상의 홀수 디스크로 확장 될 수 있습니다 (어쩌면 RAID 10E라고도 함).
RAID 10은 RAID 1과 RAID 0의 조합입니다. 1과 0의 순서는 매우 중요합니다. 디스크가 8 개 있다고 가정하면 4 개의 RAID 1 어레이를 생성 한 다음 4 개의 RAID 1 어레이 위에 RAID 0 어레이를 적용합니다. 최소 4 개의 디스크가 필요하며 추가 디스크를 쌍으로 추가해야합니다.
이는 각 쌍에서 하나의 디스크가 실패 할 수 있음을 의미합니다. 따라서 디스크 A1, A2, B1, B2, C1, C2, D1, D2가있는 세트 A, B, C 및 D가있는 경우 각 세트 (A, B, C 또는 D)에서 하나의 디스크를 잃을 수 있습니다. 기능적인 배열.
그러나 동일한 세트에서 두 개의 디스크를 잃으면 어레이가 완전히 손실됩니다. 디스크의 최대 50 %를 잃을 수는 있지만 보장 할 수는 없습니다.
RAID 10에서는 고속 및 고 가용성이 보장됩니다.
RAID 10은 매우 일반적인 RAID 레벨입니다. 특히 단일 디스크 장애로 인해 RAID 어레이를 재 구축하기 전에 두 번째 디스크 장애가 발생할 가능성이 높은 대용량 드라이브의 경우 특히 그렇습니다. 복구 중에는 데이터를 재구성하기 위해 하나의 드라이브에서 읽기만하면되므로 성능 저하가 RAID 5에 비해 훨씬 낮습니다.
사용 가능한 디스크 공간은 총 공간 합계의 50 %입니다. (예 : 8 개의 1TB 드라이브 = 4TB의 사용 가능한 공간). 다른 크기를 사용하면 각 디스크에서 가장 작은 크기 만 사용됩니다.
리눅스 커널의 소프트웨어 RAID 드라이버 는 3 개 또는 5 개의 디스크 RAID 10 md
과 같이 드라이브가 홀수 인 RAID 10 구성을 허용 한다는 점에 주목할 가치가 있습니다 .
RAID 10의 반대입니다. 두 개의 RAID 0 어레이를 만든 다음 RAID 1을 맨 위에 놓습니다. 즉, 각 세트 (A1, A2, A3, A4 또는 B1, B2, B3, B4)에서 하나의 디스크를 잃을 수 있습니다. 상용 응용 프로그램에서는 거의 볼 수 없지만 소프트웨어 RAID를 사용하면 가능합니다.
절대적으로 명확하게 :
RAID 10보다 빠른 속도는 제공하지 않지만 중복성은 크게 줄어 듭니다. 모든 비용을 피해야합니다.
RAID 5는 수십 년 동안 가장 일반적으로 사용되는 RAID 수준이었습니다. 어레이에있는 모든 드라이브의 시스템 성능을 제공합니다 (작은 오버 헤드가 발생하는 작은 임의 쓰기는 제외). 간단한 XOR 연산을 사용하여 패리티를 계산합니다. 단일 드라이브 장애가 발생하면 알려진 데이터에 대한 XOR 조작을 사용하여 나머지 드라이브에서 정보를 재구성 할 수 있습니다.
불행히도, 드라이브 오류가 발생하면 재구성 프로세스는 IO를 많이 사용합니다. RAID의 드라이브가 클수록 재 구축 시간이 오래 걸리고 두 번째 드라이브 장애가 발생할 가능성이 높아집니다. 대형 느린 드라이브는 모두 재구성 할 데이터가 많고 성능이 훨씬 낮기 때문에 일반적으로 7200RPM 이하의 RAID 5를 사용하지 않는 것이 좋습니다.
소비자 응용 프로그램에 사용될 때 RAID 5 어레이의 가장 중요한 문제는 총 용량이 12TB를 초과 할 경우 거의 실패한다는 것입니다. SATA 소비자 드라이브 의 복구 할 수없는 읽기 오류 (URE) 속도는 10 14 비트 당 1 개 또는 ~ 12.5TB이기 때문입니다.
7 개의 2TB 드라이브가있는 RAID 5 어레이의 예를 살펴보면 드라이브에 장애가 발생하면 6 개의 드라이브가 남습니다. 어레이를 재구성하려면 컨트롤러가 각각 2TB에서 6 개의 드라이브를 읽어야합니다. 위의 그림을 보면 재 구축이 완료되기 전에 다른 URE가 발생할 것입니다. 그런 일이 발생하면 배열과 배열의 모든 데이터가 손실됩니다.
그러나 소비자 드라이브에서 RAID 5 문제로 인한 URE / 데이터 손실 / 배열 오류는 대부분의 하드 디스크 제조업체가 최신 드라이브의 URE 등급을 10 15 비트 에서 1로 늘렸다는 사실로 인해 다소 완화되었습니다 . 항상 그렇듯이 구매하기 전에 사양 시트를 확인하십시오!
또한 RAID 5를 안정적인 (배터리 지원) 쓰기 캐시 뒤에 두어야합니다. 이렇게하면 작은 쓰기에 대한 오버 헤드와 쓰기 중간에 실패 할 때 발생할 수있는 비정상적인 동작을 피할 수 있습니다.
RAID 5는 1 개의 디스크 만 손실되므로 (예 : 12x 146GB 디스크 = 1606GB의 사용 가능한 공간) 어레이에 중복 스토리지를 추가하는 가장 비용 효율적인 솔루션입니다. 최소 3 개의 디스크가 필요합니다.
RAID 6은 RAID 5와 유사하지만 하나의 디스크 대신 두 개의 디스크에 해당하는 패리티를 사용합니다 (첫 번째는 XOR, 두 번째는 LSFR). 따라서 데이터 손실없이 어레이에서 두 개의 디스크를 잃을 수 있습니다. 쓰기 패널티는 RAID 5보다 높으며 디스크 공간이 하나 더 적습니다.
결국 RAID 6 어레이는 RAID 5와 유사한 문제를 겪게 될 것입니다. 큰 드라이브 일수록 재구성 시간이 길어지고 잠재적 오류가 발생하여 전체 어레이의 고장 및 재구성이 완료되기 전에 모든 데이터가 손실됩니다.
RAID 50은 RAID 10과 매우 유사한 중첩 수준입니다. RAID 0에서 두 개 이상의 RAID 5 어레이와 데이터를 스트라이핑합니다. 이는 여러 디스크가 다른 RAID 5 에서 손실되는 한 성능과 여러 디스크 중복성을 제공합니다. 배열.
RAID 50에서 디스크 용량은 nx이며, 여기서 x는 스트라이핑 된 RAID 5의 수입니다. 예를 들어, 간단한 6 디스크 RAID 50 인 경우 가능한 가장 작은 두 개의 RAID 5에 6x1TB 디스크가 있고 그 다음에 RAID 50이되도록 스트라이프 된 경우 4TB의 사용 가능한 스토리지가 있습니다.
RAID 5는 RAID 50과 같이 RAID 6은 RAID 60입니다. 기본적으로 RAID 0에서 데이터가 스트라이핑되는 RAID 6이 두 개 이상 있습니다.이 설정을 사용하면 세트에있는 개별 RAID 6의 최대 두 구성원을 사용할 수 있습니다 데이터 손실없이 실패합니다. RAID 60 어레이의 재 구축 시간은 상당 할 수 있으므로 일반적으로 어레이의 각 RAID 6 구성원에 대해 하나의 핫 스페어를 갖는 것이 좋습니다.
RAID 60에서 디스크 용량은 n-2x이며, 여기서 x는 스트라이핑 된 RAID 6의 수입니다. 예를 들어, 간단한 8 디스크 RAID 60 인 경우 가장 작은 경우, 두 개의 RAID 6에 8x1TB 디스크가 있고 그 다음에 RAID 60이되도록 스트라이프 된 경우 4TB의 사용 가능한 스토리지가 있습니다. 보시다시피, 이것은 RAID 10이 8 멤버 어레이에서 제공하는 것과 동일한 양의 사용 가능한 스토리지를 제공합니다. RAID 60은 약간 더 중복되지만 재 구축 시간은 실질적으로 더 큽니다. 일반적으로 디스크 수가 많은 경우에만 RAID 60을 고려하려고합니다.
ZFS는 스토리지와 파일 시스템의 상호 작용 방식을 근본적으로 변경하므로 RAID-Z는 설명하기가 약간 복잡합니다. ZFS는 볼륨 관리 (RAID는 볼륨 관리자의 기능) 및 파일 시스템의 전통적인 역할을 포함합니다. 이로 인해 ZFS는 볼륨의 스트립 레벨이 아닌 파일의 스토리지 블록 레벨에서 RAID를 수행 할 수 있습니다. 이것은 정확히 RAID-Z가하는 일입니다. 각 스트라이프 세트에 대한 패리티 블록을 포함하여 여러 물리적 드라이브에 파일의 스토리지 블록을 씁니다.
예를 들어 이것을 훨씬 더 명확하게 만들 수 있습니다. ZFS RAID-Z 풀에 디스크가 3 개 있다고 가정하면 블록 크기는 4KB입니다. 이제 정확히 16KB 인 파일을 시스템에 씁니다. ZFS는이를 일반 운영 체제와 같이 4 개의 4KB 블록으로 분할합니다. 그런 다음 두 블록의 패리티를 계산합니다. 이 6 개의 블록은 RAID-5가 데이터와 패리티를 분배하는 방법과 유사한 방식으로 드라이브에 배치됩니다. 이는 패리티를 계산하기 위해 기존 데이터 스트라이프를 읽지 않았기 때문에 RAID5보다 개선 된 것입니다.
다른 예제는 이전 예제를 기반으로합니다. 파일이 4KB에 불과하다고 가정하십시오. ZFS는 여전히 하나의 패리티 블록을 작성해야하지만 쓰기로드는 2 개의 블록으로 줄어 듭니다. 세 번째 드라이브는 다른 동시 요청을 자유롭게 처리 할 수 있습니다. 기록중인 파일에 풀의 블록 크기에 드라이브 수에 1을 곱한 값 (예 : [파일 크기] <> [블록 크기] * [드라이브-1])을 곱하지 않은 경우에도 비슷한 효과가 나타납니다.
볼륨 관리 및 파일 시스템을 모두 처리하는 ZFS는 파티션 또는 스트라이프 블록 크기를 정렬 할 필요가 없습니다. ZFS는 권장 구성으로 모든 것을 자동으로 처리합니다.
ZFS의 특성은 일부 고전적인 RAID-5 / 6 경고에 대응합니다. ZFS의 모든 쓰기는 COW (Copy-On-Write) 방식으로 수행됩니다. 쓰기 작업에서 변경된 모든 블록은 기존 블록을 덮어 쓰지 않고 디스크의 새 위치에 기록됩니다. 어떤 이유로 든 쓰기에 실패하거나 시스템이 쓰기 도중에 실패하면 쓰기 트랜잭션은 시스템 복구 후 (ZFS 의도 로그의 도움으로) 완전히 발생하거나 전혀 발생하지 않아 잠재적 인 데이터 손상을 피할 수 있습니다. RAID-5 / 6의 또 다른 문제는 재 구축 중 잠재적 인 데이터 손실 또는 자동 데이터 손상입니다. 정기적 인 zpool scrub
작업은 데이터 손실을 유발하거나 데이터 손실을 유발하기 전에 문제를 일으키는 데 도움이 될 수 있으며 모든 데이터 블록의 체크섬은 재 구축 중 모든 손상이 포착되도록합니다.
RAID-Z의 가장 큰 단점은 여전히 소프트웨어를 습격한다는 점입니다 (하드웨어 HBA가 오프로드 하는 대신 쓰기로드를 계산하는 CPU에서 발생하는 것과 동일한 약간의 대기 시간이 발생 함 ). 이것은 ZFS 하드웨어 가속을 지원하는 HBA에 의해 향후에 해결 될 수 있습니다.
모든 종류의 표준 기능을 시행하는 중앙 권한이 없기 때문에 다양한 RAID 레벨이 널리 사용되어 발전하고 표준화되었습니다. 많은 공급 업체가 위의 설명과 다른 제품을 생산했습니다. 또한 위의 개념 중 하나를 설명하기 위해 멋진 새 마케팅 용어를 발명하는 것도 일반적입니다 (SOHO 시장에서 가장 자주 발생 함). 가능하면 공급 업체가 중복 메커니즘의 기능을 실제로 설명하도록하십시오 (실제로 더 이상 비밀 소스가 없기 때문에이 정보를 자발적으로 제공합니다).
언급 할 가치가있는 것은 RAID 5와 같은 구현으로, 두 개의 디스크로 어레이를 시작할 수 있습니다. 위의 RAID 5와 유사하게 한 스트라이프에 데이터를 저장하고 다른 스트라이프에 패리티를 저장합니다. 이것은 패리티 계산의 추가 오버 헤드로 RAID 1처럼 수행됩니다. 장점은 패리티를 다시 계산하여 디스크를 어레이에 추가 할 수 있다는 것입니다.
또한 RAID 1 백만 !!!!
128 개의 디스크는 읽기가 빠르며 끔찍한 쓰기이지만 매우 신뢰할 수있을 것입니다. 플래시 드라이브로 이것을하지 마십시오. 나는 대기에 불을 피우려고 시도했습니다 ...