RAID 란 무엇입니까?

RAID는 저렴한 비용으로 대용량 스토리지를 생성하는 수단으로서 원래 네트워크 서버 시장을 위해 개발 된 솔루션입니다. 본질적으로 여러 개의 저비용 하드 드라이브를 사용하여 단일 대용량 드라이브를 제공하기 위해 컨트롤러를 통해 통합 할 수 있습니다. 이것은 RAID의 약자입니다. 저렴한 드라이브 나 디스크의 중복 어레이. 이를 위해 다양한 드라이브간에 분할되는 데이터를 관리하는 데 특수화 된 소프트웨어와 컨트롤러가 필요했습니다.

결국 표준 컴퓨터 시스템처리 능력으로 인해이 기능이 개인용 컴퓨터 시장 으로 유입되는 것을 막을 수있었습니다.

이제 RAID 스토리지는 소프트웨어 또는 하드웨어 기반 일 수 있으며 세 가지 목적으로 사용될 수 있습니다. 여기에는 용량, 보안 및 성능이 포함됩니다. 용량은 일반적으로 거의 모든 유형의 RAID 설정에 사용되는 단순한 용량입니다. 예를 들어 두 개의 하드 드라이브를 하나의 드라이브로 연결하여 운영 체제에 연결하면 가상 드라이브의 용량이 두 배가됩니다. 성능은 개인용 컴퓨터에서 RAID 설정을 사용하는 또 다른 주요 이유입니다. 두 개의 드라이브가 단일 드라이브로 사용되는 동일한 예에서 컨트롤러는 데이터 청크를 두 부분으로 분리 한 다음 각 부분을 별도의 드라이브에 넣을 수 있습니다. 이로 인해 스토리지 시스템 에서 데이터쓰거나 읽는 성능이 실제로 두 배가됩니다. 마지막으로, RAID는 데이터 보안을 위해 사용될 수 있습니다.

이 작업은 드라이브의 일부 공간을 사용하여 두 드라이브에 기록 된 데이터를 복제하는 방식으로 수행됩니다. 다시 한 번, 두 개의 드라이브를 사용하여 데이터를 두 드라이브에 모두 기록 할 수 있습니다. 따라서 하나의 드라이브가 실패하면 다른 드라이브는 여전히 데이터를 보유합니다.

컴퓨터 시스템에서 함께 사용하려는 스토리지 배열의 목표에 따라 다양한 레벨의 RAID 중 하나를 사용하여이 세 가지 목표를 달성하게됩니다.

컴퓨터에 하드 드라이브를 사용하는 사람들은 성능보다는 용량이 더 중요한 문제가 될 것입니다. 반면에 솔리드 스테이트 드라이브 를 사용하는 드라이브 는 소형 드라이브를 연결하여 하나의 큰 드라이브를 만드는 방법을 원할 것입니다. 이제는 개인용 컴퓨터에서 사용할 수있는 다양한 RAID 레벨을 살펴 보겠습니다.

RAID 0

이것은 RAID의 가장 낮은 레벨이며 실제로는 레벨 0이라고하는 중복성을 제공하지 않습니다. 본질적으로 RAID 0 은 두 개 이상의 드라이브를 결합하여 더 큰 용량의 드라이브를 구성합니다. 이는 스트라이핑이라고하는 프로세서를 통해 이루어집니다. 데이터 블록은 데이터 청크로 분리 된 다음 드라이브 전체에 순서대로 기록됩니다. 이는 드라이브의 속도를 효과적으로 증가시키는 컨트롤러에 의해 드라이브에 동시에 데이터를 쓸 수 있기 때문에 성능이 향상됩니다. 다음은 이것이 3 개의 디스크에서 어떻게 작동하는지 예를 보여줍니다.

드라이브 1 드라이브 2 드라이브 3
블록 1 1 2
블록 2 4 5 6
블록 3 7 8 9


RAID 0이 시스템 성능을 향상시키는 데 효과적으로 작동하려면 일치하는 드라이브를 시도해야합니다. 각 드라이브는 똑같은 저장 용량과 성능 특성을 가져야합니다.

그렇지 않은 경우 용량은 드라이브의 가장 작은 배수와 드라이브 중 가장 느린 속도의 배수로 제한됩니다. 다음 줄로 이동하기 전에 모든 줄무늬가 기록 될 때까지 기다려야합니다. 일치하지 않는 드라이브를 사용할 수도 있지만이 경우 JBOD 설정이 더 효과적 일 수 있습니다.

JBOD는 단지 수많은 드라이브를 의미하며 실제로는 서로 독립적으로 액세스 할 수 있지만 운영 체제에 단일 스토리지 드라이브로 나타나는 드라이브 모음입니다. 이는 일반적으로 드라이브간에 데이터를 스팬함으로써 달성됩니다. 종종 이것을 SPAN 또는 BIG라고합니다.

효과적으로, 운영자는 그것들을 모두 하나의 디스크로 간주하지만 블록은 가득 차기 전까지 첫 번째 디스크에 기록 된 다음 두 번째, 세 번째 등으로 진행됩니다. 이는 기존 컴퓨터 시스템에 추가 용량을 추가하는 데 유용하며 다양한 크기의 드라이브가 있지만 드라이브 배열의 성능은 향상되지 않습니다.

RAID 0 및 JBOD 설정의 가장 큰 문제점은 데이터 보안입니다. 여러 개의 드라이브가 있기 때문에 더 많은 장애 지점이 있기 때문에 데이터 손상 가능성이 높아졌습니다. RAID 0 어레이의 드라이브가 고장 나면 모든 데이터에 액세스 할 수 없게됩니다. JBOD에서 드라이브 오류가 발생하면 해당 드라이브에 발생한 모든 데이터가 손실됩니다. 따라서이 스토리지 방법을 사용하여 데이터를 백업하는 다른 방법을 사용하는 것이 가장 좋습니다.

RAID 1

어레이에 저장된 데이터에 대한 전체 수준의 중복성을 제공하기 때문에 이것이 진정한 수준의 RAID입니다. 이는 미러링이라고하는 프로세스를 통해 수행됩니다. 효과적으로 시스템에 기록 된 모든 데이터는 레벨 1 배열의 각 드라이브에 복사됩니다. 이 형태의 RAID는 대개 한 쌍의 드라이브로 수행됩니다. 추가 드라이브를 추가해도 용량이 추가되지 않고 중복성이 추가되기 때문입니다. 이 예제를 더 잘 설명하기 위해 두 드라이브에 어떻게 기록되는지 보여주는 차트가 있습니다.

드라이브 1 드라이브 2
블록 1 1 1
블록 2 2 2
블록 3


RAID 1 설정에서 가장 효과적인 사용을 위해 시스템은 동일한 용량 및 성능 등급을 가진 일치하는 드라이브를 다시 사용합니다.

일치하지 않는 드라이브를 사용하면 어레이 용량은 어레이의 최소 용량 드라이브와 같습니다. 예를 들어, 1 테라 바이트의 드라이브와 1 테라 바이트의 드라이브가 RAID 1 어레이에 사용 된 경우,이 어레이의 시스템 용량은 단지 1 테라 바이트가됩니다.

이 RAID 레벨은 두 개의 드라이브가 실질적으로 동일하기 때문에 데이터 보안에 매우 효과적입니다. 두 드라이브 중 하나가 실패하면 다른 드라이브는 다른 드라이브의 전체 데이터를가집니다. 이 유형의 설치 문제는 일반적으로 두 드라이브 중 하나가 실패하고 실패한 드라이브 대신에 새 드라이브를 넣고 복구 할 때까지 올바르게 복원되지 않기 때문에 스토리지에 액세스 할 수 없게되기 때문에 어느 드라이브가 실패했는지 확인하는 것입니다 프로세스가 실행됩니다. 앞서 언급했듯이, 이로부터 얻은 성과는 전혀 없습니다. 실제로 RAID에 대한 컨트롤러의 오버 헤드로 인해 약간의 성능 손실이 발생합니다.

RAID 1 + 0 또는 10

이것은 RAID 레벨 0과 레벨 1 의 다소 복잡한 조합입니다 . 효과적으로 컨트롤러는이 모드에서 작동하려면 최소 네 개의 드라이브가 필요합니다. 왜냐하면이 드라이브는 두 쌍의 드라이브를 만들기 때문입니다. 드라이브의 첫 번째 세트는 미러 어레이이며 두 드라이브 사이의 데이터를 복제합니다. 두 번째 드라이브 세트도 미러링되지만 첫 번째 스트립으로 설정됩니다. 이는 데이터 중복성과 성능 향상을 모두 제공합니다. 다음은이 유형의 설정을 사용하여 네 개의 드라이브에 데이터를 쓰는 방법의 예입니다.

드라이브 1 드라이브 2 드라이브 3 드라이브 4
블록 1 1 1 2 2
블록 2 4 4
블록 3 5 5 6 6


솔직히 말해서 이것은 컴퓨터 시스템에서 실행되는 RAID의 바람직한 모드가 아닙니다. 약간의 성능 향상을 제공하지만, 시스템에 엄청난 오버 헤드가 있기 때문에 실제로 그렇게 좋지는 않습니다. 또한 드라이브 배열은 모든 드라이브를 합친 용량의 절반 밖에되지 않으므로 공간 낭비입니다. 일치하지 않는 드라이브를 사용하면 성능이 가장 느린 드라이브로 제한되고 용량은 가장 작은 드라이브의 두 배가됩니다.

RAID 5

이것은 소비자 컴퓨터 시스템에서 볼 수있는 가장 높은 수준의 RAID이며 용량과 중복성을 높이는 훨씬 더 효과적인 방법입니다. 이것은 패리티가있는 데이터 스트라이핑 프로세스를 통해이를 달성합니다. 데이터가 여러 드라이브의 스트라이프로 분할되었지만 스트라이프의 한 블록은 패리티를 위해 따로 보관되므로 최소 3 개의 드라이브가 필요합니다. 이를 더 잘 설명하려면 먼저 세 가지 드라이브에 데이터를 기록하는 방법을 살펴보십시오.

드라이브 1 드라이브 2 드라이브 3
블록 1 1 2
블록 2 4
블록 3 5 6


본질적으로 드라이브 컨트롤러는 배열의 모든 드라이브에 기록 할 데이터 덩어리를 사용합니다. 데이터의 첫 번째 비트는 첫 번째 드라이브에 배치되고 두 번째 비트는 두 번째 드라이브에 배치됩니다. 세 번째 드라이브는 본질적으로 첫 번째와 두 번째의 이진 데이터를 비교하는 패리티 비트를 얻습니다. 이진 수학에서 당신은 단지 0과 1을가집니다. 부울 연산 과정은 비트를 비교하기 위해 수행됩니다. 두 값이 짝수 (0 + 0 또는 1 + 1)까지 더하면 패리티 비트는 0이됩니다. 2가 홀수 (1 + 0 또는 0 + 1)까지 더하면 패리티 비트는 1이됩니다. 그 이유는 드라이브 중 하나에 장애가 발생하면 컨트롤러는 누락 된 데이터가 무엇인지 파악할 수 있기 때문입니다. 예를 들어 드라이브 하나가 실패하고 드라이브 2와 3을 남기고 드라이브 2에 데이터 블록 하나가 있고 드라이브 3에 패리티 블록이 하나있는 경우 드라이브 1에 누락 된 데이터 블록이 0이어야합니다.

이는 드라이브 장애 발생시 모든 데이터를 복원 할 수있는 효과적인 데이터 중복성을 제공합니다. 이제 대부분의 소비자 설정에서 기능상의 상태가 아니기 때문에 시스템에 오류가 발생하지 않습니다. 시스템 기능을 사용하려면 실패한 드라이브를 새 드라이브로 교체해야합니다. 그런 다음 컨트롤러 레벨에서 데이터 재구성 프로세스를 수행해야합니다. 그런 다음 누락 된 드라이브의 데이터를 다시 작성하기 위해 역 부울 함수를 수행합니다. 특히 용량이 큰 드라이브의 경우 시간이 오래 걸릴 수 있지만 적어도 복구 할 수는 있습니다.

이제 RAID 5 어레이의 용량은 어레이의 드라이브 수와 용량에 따라 다릅니다. 다시 한번, 어레이는 어레이의 최소 용량 드라이브에 의해 제한되므로 일치하는 드라이브를 사용하는 것이 가장 좋습니다. 효과적인 저장 공간은 드라이브 수에서 가장 적은 용량을 뺀 수와 같습니다. 따라서 수학 용어로 (n-1) * Capacitymin 입니다. 따라서 RAID 5 어레이에 3 개의 2GB 드라이브가있는 경우 총 용량은 4GB가됩니다. 4 개의 2GB 드라이브를 사용하는 또 다른 RAID 5 어레이는 6GB의 용량을 갖습니다.

이제 RAID 5의 성능은 데이터가 드라이브에 기록 될 때 패리티 비트를 생성하기 위해 수행되어야하는 불리언 프로세스로 인해 다른 형태의 RAID보다 약간 복잡합니다. 즉, 쓰기 성능은 동일한 수의 드라이브가있는 RAID 0 어레이보다 작습니다. 반면에 읽기 성능은 드라이브에서 직선 데이터를 읽으므로 부울 프로세스가 완료되지 않았기 때문에 쓰기만큼 어려움을 겪지 않습니다.

모든 RAID 설정의 큰 문제

우리는 개인용 컴퓨터에서 사용할 수있는 RAID 레벨의 각 장의 장단점을 논의했지만 RAID 드라이브 설정을 만들 때 많은 사람들이 모르는 또 다른 문제가 있습니다. RAID 설정을 사용하려면 먼저 하드웨어 컨트롤러 소프트웨어 또는 운영 체제의 소프트웨어에서 구성해야합니다. 이것은 기본적으로 드라이브에서 데이터를 쓰고 읽는 방법을 올바르게 추적하는 데 필요한 특수 형식을 초기화합니다.

이것은 아마도 문제가 아닌 것처럼 들리지만, RAID 어레이를 어떻게 구성 할지를 변경해야 할 필요가있는 경우입니다. 예를 들어, 데이터가 부족하여 RAID 0 또는 RAID 5 어레이에 추가 드라이브를 추가하려고한다고 가정 해보십시오. 대부분의 경우, RAID 어레이를 다시 구성하지 않고는 해당 드라이브에 저장된 데이터를 제거하지 못합니다. 즉, 데이터를 완전히 백업하고, 새 드라이브를 추가하고, 드라이브 배열을 재구성하고, 해당 드라이브 배열을 포맷 한 다음 원본 데이터를 다시 드라이브에 복원해야합니다. 그것은 극도로 고통스러운 과정 일 수 있습니다. 결과적으로 어레이를 처음 설치했을 때와 같은 방식으로 설치해야합니다.