Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Contents

RAID

원래 RAID는 저렴한 여러 개의 디스크의 배열을 서로 결합해서 논리적인 저장공간을 만들기 위해서 개발된 스토리지 기술이다. 데이터의 중복, 성능 수준에 따라 여러단계의 RAID 구성을 만들 수 있다. 이 구성을 RAID Level 이라고 한다. 스토리지 설계자는 저장하려는 데이터의 특성에 따라서 적절한 RAID level을 선택해서 구성할 수 있다.

표준 RAID levels

RAID 0

RAID 0stripe set 혹은 striped volume라고 부른다. RAID 0은 2개 이상의 디스크에 데이터를 쪼개서 저장(striped)한다. 데이터를 분산저장하는 셈이다. 데이터를 읽을 때는 여러 개의 디스크에서 동시에 읽을 수 있기 때문에 읽기/쓰기 속도를 높일 수 있다.

데이터를 stripe 할 뿐, parity를 저장하지 않기 때문에 디스크 하나가 깨질 경우 데이터를 복구할 방법이 없다.

 RAID-0 구성

빠르긴 하다. 디스크 배열을 늘릴 수록 더 빠른 속도를 기대할 수 있다. 하지만 데이터를 복구할 수 없기 때문에 사용에 제약이 있다. 빠른 접근이 필요하고, 데이터가 그리 중요하지 않은 영역에 사용할 수는 있겠지만. 서비스를 위해서 사용하기에는 부담 스럽다. RAID 0으로 구성하는 경우는 거의 없을 것이다.

RAID 1

그냥 mirror, 그러니까 데이터를 두 개의 디스크에 복사한다. 디스크 공간을 많이 쓴다는 단점이 있다. 대신 읽기 성능과 안정성을 보장한다. 디스크가 깨지더라도 곧바로 복제 디스크로 대체할 수 있어서, 장애 시간을 최소화 할 수 있다.

 RAID-1 구성

모든 데이터는 두 개 이상의 복사본을 가진다. 데이터를 읽을 때는 복사본을 읽어도 되기 때문에, 복사본을 늘리는 만큼 읽기 성능도 (대략 선형적으로)증가한다.

RAID 2

RAID 2는 데이터를 stripe 한다. 여기에 Hamming code를 이용해서 에러를 바로잡는다. 오류정정부호를 기록하는 전용의 하드디스크를 배치한다. 모든 I/O에 대해서 ECC 계산이 필요해서 입출력시 병목이 발생한다. 게다가 ECC 기록용으로 사용하는 디스크의 수명이 다른 디스크에 비해 짧아지는 문제도 있다. 지금은 거의 사용하지 않는다.

 RAID-2 구성

RAID 3, RAID 4

RAID 3,4는 데이터를 stripe해서 저장하고 에러를 바로잡기 위한 기능을 가진다는 점에서 RAID 2와 비슷하다. 때때로 RAID 2,3,4를 통으로 묶어서 설명하기도 한다. RAID 2와 RAID 3, 4의 다른 점은 에러를 복구하는 방식의 차이다. RAID 3,4는 parity를 이용해서 데이터를 복원한다. RAID 3은 byte-level striping, RAID 4는 block-level striping을 한다는 차이점을 가지고 있다.

Parity 정보를 저장하기 위한 독립된 디스크를 가진다. RAID2와 마찬가지로 Parity를 기록하는데 병목이 생기며, 다른 디스크에 비해 수명이 짧아질 수 있다는 문제가 있다. 이런 문제들 때문에 지금은 RAID 2, 3, 4를 사용하지 않는다. 이들 기술은 RAID 5로 빠르게 대체된다.

RAID 5

RAID 5는 block-level stiping 방식을 사용하며, parity를 이용해서 데이터를 복구할 수 있다. Parity가 분산(distributed) 저장된다는게 RAID 3,4 와의 결정적인(그리고 유일한)차이다.

Parity I/O가 분산되기 때문에, RAID 3, 4보다 좀 더 안정적으로 사용할 수 있다.

 RAID-5 구성

RAID 5는 저렴한 비용으로 데이터 안정성과 성능을 올릴 수 있어서 시스템 엔지니어의 사랑을 받고 있다. 예를들어 4개의 1T 크기의 디스크로 RAID를 구성해보자. RAID 1과 RAID 1+0은 2T만 사용할 수 있지만 RAID 5는 3T의 공간을 사용할 수 있다.

RAID 5는 하드웨어(디스크 컨트롤러)에서 지원하는 "하드웨어 RAID"와 소프트웨어 에서 지원하는 "소프트웨어 RAID"가 있다. 당연히 하드웨어 RAID가 안정적인 하지만 (매우)비싼게 흠이다. 소프트웨어 RAID는 하드웨어 RAID에 비해서 신뢰성과 속도가 약간 떨어지지만 추가적인 비용 없이 RAID 구성이 가능하다는 장점이 있다.

대부분의 운영체제들이 소프트웨어 RAID 구성을 위한 소프트웨어를 가지고 있다. 윈도우의 Dynamic Disks, 리눅스의 mdadm, RAID-Z이 그것이다.

RAID 6

RAID 5의 확장으로 parity 블록이 하나 추가된다.

 RAID-6 구성

RAID 6의 읽기 성능은 RAID 5와 동일하다. 하지만 parity 연선과 관련된 오버헤드로 쓰기 작업에 대한 성능저하가 있다.

비표준 RAID level

  • RAID 1.5
  • RAID 7
  • Linux MD RAID 10
  • IBM ServeRAID 1E
  • ZFS RAID-Z
  • IBM ServeRAID 1E
  • unRAID
  • Drobo BeyondRAID
  • Synology Hybrid RAID
  • Microsoft Storage Spaces

Parity

parity 문서 참고

참고

  • http://en.wikipedia.org/wiki/Standard_RAID_levels