RAID (redundant array of independent disks)

RAID[레이드]는 중요한 데이터를 가지고 있는 서버에 주로 사용되며, 여러 대의 하드디스크가 있을 때 동일한 데이터를 다른 위치에 중복해서 저장하는 방법이다. 데이터를 여러 대의 디스크에 저장함에 따라 입출력 작업이 균형을 이루며 겹치게 되어 전체적인 성능이 개선된다. 여러 대의 디스크는 MTBF를 증가시키기 때문에 데이터를 중복해서 저장하면 고장에 대비하는 능력도 향상된다.

하나의 RAID는 운영체계에게 논리적으로는 하나의 하드디스크로 인식된다. RAID는 스트라이핑 기술을 채용하여 각 드라이브의 저장공간을 1 섹터(512 바이트)의 크기에서부터 수 MB에 이르는 공간까지 다양한 범위로 파티션할 수 있다. 모든 디스크의 스트라이프는 인터리브되어 있으며, 차례대로 어드레싱된다.

의료 및 기타 과학분야의 사진 등 대형 레코드가 저장된 단일 사용자용 시스템에서, 스트라이프는 512 바이트 정도의 적은 량으로 설정되는데, 이를 통하여 하나의 레코드가 모든 디스크들에 걸쳐있게 되고, 또 모든 디스크를 동시에 읽음으로써 빠르게 접근할 수 있게된다.

다중 사용자시스템에서는 최대크기의 레코드를 넣을 수 있을 정도로 충분히 넓은 스트라이프를 확보함으로써 더 나은 성능을 발휘하게 되는데, 이는 드라이브간의 디스크 입출력을 중첩시켜준다.

RAID에는 중복되지 않는 어레이인 RAID-0를 제외하더라도, 9가지 형태가 더 있다.

레이드 용량계산기

구현방식

소프트웨어 RAID 는 위의 RAID-0, RAID-1, RAID-4, RAID-5를 지원함.

하드웨어 RAID 대 소프트웨어 RAID의 차이점은 다음과 같다.

하드웨어 RAID

하드웨어-기반 시스템은 호스트에서 RAID 하부 시스템을 독립적으로 관리하며, 호스트에는 RAID 어레이를 하나의 디스크로 나타냅니다. 하드웨어 RAID 장치의 한 예로서 SCSI 제어 장치에 연결되어 RAID 어레이를 단독 SCSI 드라이브처럼 나타내는 장치가 있다. 외부 RAID 시스템은 데이터를 저장하는 모든 RAID를 외부 디스크 하부 시스템에 위치한 한개의 컨트롤러로 이동시킵니다. 따라서 일반 SCSI 컨트롤러를 통해 호스트로 연결된 전체 하부 시스템은 호스트에서 하나의 디스크로 보여진다. RAID 컨트롤러는 카드 형식으로도 판매되며, 이 카드는 운영 체제에서는 SCSI 컨트롤러처럼 작동하지만 실제로는 스스로 모든 드라이브 통신을 처리함. 이러한 카드를 구입한 경우, 여러분은 SCSI 컨트롤러와 마찬가지로 드라이브를 RAID 컨트롤러에 꽂으신 후 드라이브를 RAID 컨트롤러의 설정에 추가시키면, 운영 체제는 그 차이를 절대로 인식하지 못함.

RAID-0

이 방식은 스트라이프를 가지고는 있지만 데이터를 중복해서 기록하지 않는다. 따라서, 가장 높은 성능을 기대할 수 있지만, 고장대비 능력이 전혀 없다.

  • 장점 : 매우 빠르다. 데이터는 여러 개의 "모터(spindles)"로 스토리지에서 읽고 쓴다. 즉, I/O 로드가 분산되는 것을 의미하기 때문에 매우 빠르다. 이론적으로 디스크를 추가하는 족족 성능은 향상된다.
  • 단점 : 드라이브 하나가 고장 나면 이 RAID 레벨은 어떤 안전장치도 없기 때문에 천체 어레이가 고장 날 수 있고 디스크를 추가할 수록 위험이 증가한다.

RAID-1

이 형식은 흔히 디스크 미러링이라고도 하는데, 중복 저장된 데이터를 가진 적어도 두 개의 드라이브로 구성된다. 스트라이프는 없으며, 각 드라이브를 동시에 읽을 수 있으므로 읽기 성능은 향상된다. 쓰기 성능은 단일 디스크 드라이브의 경우와 정확히 같다. RAID-1은 다중 사용자 시스템에서 최고의 성능과 최고의 고장대비 능력을 발휘한다.

  • 장점 : 드라이브 하나가 고장 나면 똑같은 내용의 다른 드라이브가 하나 더 있기 때문에 매우 안전하다. RAID 1은 읽기 성능이 단일 드라이브에서의 성능과 같거나 훨씬 좋다.
  • 단점 : 각 드라이브는 미러링되기 때문에 전체 용량의 절반밖에 사용하지 못한다. 드라이브 두 개에 동일한 데이터를 써야 하기 때문에 쓰기 성능이 나빠질 수 있지만 아직 다른 RAID 레벨의 쓰기 성능보다는 훨씬 낫다.

RAID-2

이 형식은 디스크들간에 스트라이프를 사용하며, 몇몇 디스크들은 에러를 감지하고 수정하는데 사용되는 ECC 정보가 저장되어 있다. 이 방식은 RAID-3에 비해 장점이 없다.

이 레벨은 더 이상 사용되지 않는다

RAID-3

이 형식은 스트라이프를 사용하며, 패리티 정보를 저장하기 위해 별도의 드라이브 한 개를 쓴다. 내장된 ECC 정보가 에러를 감지하는데 사용된다. 데이터 복구는 다른 드라이브에 기록된 정보의 XOR를 계산하여 수행된다. 입출력 작업이 동시에 모든 드라이브에 대해 이루어지므로, RAID-3은 입출력을 겹치게 할 수 없다. 이런 이유로 RAID-3는 대형 레코드가 많이 사용되는 업무에서 단일 사용자시스템에 적합하다.

  • 최소 드라이브 개수 : 3
  • 최대 용량 : (디스크의 수 - 1) x 각 디스크의 용량
  • 설명 : 데이터는 바이트 단위로 쪼개져서 모든 디스크에 균등하게 나뉘어 저장되고 패리티 정보는 별도의 전용 디스크에 저장된다.
  • 장점 : 한 개의 드라이브가 고장 나는 것을 허용하며 순차적 쓰기(sequential write) 성능과 순차적 읽기(sequential read) 성능이 우수하다.
  • 단점 : 잘 사용되지 않고 문제를 해결하는 것이 어려울 수 있다. 하드웨어 RAID가 되어야 실제로 쓸만하다. RAID 3은 보통 매우 효율적이지만 임의 쓰기(random write) 성능이 나쁘고 임의 읽기(random read) 성능은 꽤 좋다.

RAID-4

이 형식은 대형 스트라이프를 사용하며, 이는 사용자가 어떤 단일 드라이브로부터라도 레코드를 읽을 수 있다는 것을 의미한다. 이것은 데이터를 읽을 때 중첩 입출력의 장점을 취할 수 있도록 한다. 모든 쓰기 작업은 패리티 드라이브를 갱신해야하므로, 입출력의 중첩은 불가능하다. RAID-4는 RAID-5에 비해 장점이 없다.

  • 최소 드라이브 개수 : 3
  • 최대 용량 : (디스크의 수 - 1) x 디스크의 용량
  • 설명 : 모든 파일은 블럭으로 쪼개지고 각 블럭은 여러 디스크에 저장되지만 균등하진 않다. RAID 3처럼 RAID 4도 패리티를 처리하기 위해 별도의 디스크를 사용한다. 동시 트랜잭션 사용량이 많은 시스템에서 읽기 속도는 매우 중요한데 이런 시스템에 적합하다.
  • 장점 : 드라이브 하나가 고장 나는 것을 허용하고 읽기 성능이 매우 좋다.
  • 단점 : 쓰기 성능이 나쁘지만 블럭 읽기(block read) 성능은 괜찮다.

RAID-5

RAID5 방식은 RAID0와 RAID1 방식의 장점들을 갖도록 하는 방식이다. 즉, RAID0는 속도가 높고 공간 효율성이 높으나 안정성을 보장하지 못한 반면, RAID1은 안정성을 보장하는 장점이 있다. 이들 두 방식의 장점들을 포용한 것이 RAID5 방식이다.

RAID5 방식은 최소 3개 이상의 하드디스크가 있어야 하며 일반적으로 5개 이상의 하드디스크로 구성된다. 하드디스크 오류가 발생할 경우에는 Parity를 이용하여 데이터를 복구할 수 있다.

이 형식은 회전식 패리티 어레이를 포함한다. 그러므로 RAID-4에서의 쓰기 제한을 주소 지정한다. 그러므로 모든 읽기/쓰기 동작은 중첩될 수 있다. RAID-5는 패리티 정보를 저장하지만 데이터를 중복저장하지는 않는다 (그러나 패리티 정보는 데이터를 재구성하는데 사용될 수 있다). RAID-5는 보통 3 ~ 5개의 디스크를 어레이로 요구한다. RAID-5는 성능이 그리 중요하지 않고 쓰기 작업이 많지 않은 다중 사용자시스템에 적합하다.

  • 최소 드라이브 개수 : 3
  • 최대 용량 : (디스크의 수 - 1) x 디스크의 용량
  • 설명 : RAID 4처럼 데이터의 블럭은 모든 디스크에 나뉘어 저장되지만 항상 균등하진 않고 패리티 정보도 모든 디스크에 나뉘어 저장된다.
  • 장점 : 지원하는 회사가 많고 한 개의 드라이브가 고장 나는 것을 허용한다.
  • 단점 : 디스크 재구성(rebuild)이 매우 느리고 쓰기 성능은 패리티 정보를 끊임없이 갱신해야 하기 때문에 우수하다고 할 수는 없다.

RAID-6

RAID5 방식은 하나의 디스크가 고장나도 복구가 가능하다. 하지만 두 개의 디스크가 동시에 고장난 경우에는 복구할 수가 없다. RAID6 방식은 RAID5를 개선한 방법으로 2개의 디스크가 동시에 고장나도 데이터에는 이상이 없도록 하는 방식이다. RAID6 방식은 2개의 Parity를 사용함으로써 RAID5의 단점을 보완하고 있다. 그러나 RAID5에 비해 공간 효율은 떨어진다.

이 형식은 RAID-5와 비슷하지만, 다른 드라이브들 간에 분포되어 있는 2차 패리티 구성을 포함함으로써 매우 높은 고장대비 능력을 제공한다. 현재로서는 RAID-6의 상용 모델은 거의 없다.

  • 최소 드라이브 개수 : 3
  • 최대 용량 : (디스크의 수 - 2) x 디스크의 용량
  • 설명 : RAID 4처럼 데이터의 블럭은 모든 디스크에 나뉘어 저장되지만 항상 균등하진 않고 패리티 정보도 모든 디스크에 나뉘어 저장된다.
  • 장점 : 두 개의 드라이브까지 고장 나는 것을 허용하고 읽기 성능이 우수하고 매우 중요한 경우에 적합하다.
  • 단점 : 쓰기 성능은 패리티를 여러 번 갱신해야 하기 때문에 RAID 5보다 매우 나쁘다. 디스크를 재구성하는 동안에 성능이 매우 나빠질 수 있다

RAID-7

이 형식은 컨트롤러로서 내장되어 있는 실시간 운영체계를 사용하며, 속도가 빠른 버스를 통한 캐시, 독자적인 컴퓨터의 여러 가지 특성들을 포함하고 있다. 현재 단 하나의 업체만이 이 시스템을 제공한다.

RAID-10

RAID10 방식은 RAID1 방식으로 데이터를 미러링을 하고 이를 다시 RAID0의 Stripping하는 방식이다. RAID0+1과 비슷하지만 성능은 더 뛰어나다.

이 형식은 각 스트라이프는 RAID-1 드라이브 어레이인 스트라이프 어레이를 제공한다. 이 방식은 RAID-1보다 높은 성능을 제공하지만, 값이 더 비싸다.

RAID-53

이 형식은 각 스트라이프는 RAID-3 디스크 에레이인 스트라이프 어레이를 제공한다. 이 방식은 RAID-3보다 높은 성능을 제공하지만, 값이 더 비싸다.

소프트웨어 RAID

소프트웨어 RAID는 커널 디스크 (블록 장치) 코드로 다양한 RAID 레벨을 실현함. 소프트웨어 RAID는 비싼 디스크 컨트롤러 카드나 핫-스왑 새시 (hot-swap chassis)를 사용하지 않기 때문에 가장 저렴한 솔루션을 제공함. 최신 CPU의 성능이 점점 빨라지면서, 소프트웨어 RAID의 성능이 하드웨어 RAID의 성능을 능가하게 되었다.

Linux 커널에 있는 MD 드라이버는 완전히 하드웨어 독립적인 RAID 솔루션의 한 예이다. 소프트웨어 기반 어레이의 성능은 서버 CPU의 성능과 로드에 의해 좌우된다.

소프트웨어 RAID의 기능 :

  • 스레드 재설정 프로세스
  • 커널 기반 설정
  • Linux 시스템 간에 어레이를 재설정할 필요가 없이 이동할 수 있는 기능
  • 유휴 시스템 자원을 사용한 백그라운드 어레이 재생
  • 즉시 백업 가능한 (Hot-swappable) 드라이브 지원
  • 특정 CPU 최적화를 위한 자동 CPU 감지 기능