본문 바로가기
工夫/Linux

RAID

by 치세 2009. 6. 28.

RAID는 사용 목적에 따라서 여러가지 레벨을 선택할 수 있습니다.
다음과 같은 RAID 레벨이 있습니다.

RAID 레벨 0 : 스트라이핑이라고 부릅니다.
하드디스크를 두개 이상 연결하여 하나의 디스크처럼 사용합니다.
데이터를 분산 저장하게 됨으로 읽고 쓰기 속도가 향상됩니다.
다만 하드디스크에 문제가 발생했을 경우, 복구 할 수 없는 단점이 있습니다.
분산된 데이터에 대한 패리티를 보관하지 않기 때문입니다.
그대신 불필요한 작업을 하지 않으므로 가장 빠릅니다.

RAID 레벨 1 : 미러링이라고 부릅니다.
하나의 하드디스크를 다른 하드디스크가 백업합니다.
따라서 하드디스크를 개별적으로 백업하게 됨으로 가장 안전합니다.

RAID 레벨 5 : 패리티있는 스트라이핑이라고 부릅니다.
데이터를 분산하여 저장하는 것은 레벨 0와 같습니다.
그러나 데이터의 안정성 확보를 위해 패리티를 함께 저장하게 되며, 3개이상의 하드디스크가
필요합니다.
레벨 5를 설정하게 되면, 실제 사용할 수 있는 하드디스크 용량은 하나가 빠진 용량만 가능합니다.
하드디스크 하나분의 용량은 패리티 데이터가 저장되게 됩니다.
레벨 5에서는 문제가 발생한 하나의 하드디스크를 복구할 수 있습니다.
그러나 동시에 다수의 하드디스크가 문제가 발생한 경우, 이를 복구하지 못합니다.
(동시에 다수의 하드디스크가 문제가 발생할 확률은 매우 적기 때문에 대부분 RAID 레벨 5를 사용합니다.)

RAID 레벨 0/1 : 속도와 안정성 모두를 지원하는 방식입니다.
다만 하드디스크의 소요량은 두배가 됩니다.
레벨 0의 스트라이핑을 지원하면서, 이에 해당하는 만큼의 미러링을 하게됩니다.
최소 4개의 하드디스크가 필요합니다.
이 경우 2개의 하드디스크는 스트라이핑을 하고 남은 2개는 스트라이프된 데이터를 미러링합니다.

JBOD : RAID 레벨이 적용되지 않으며, 단순한 하드디스크의 연결입니다.
다수의 하드디스크를 단순히 묶어서 하나의 하드디스크로 보이게 합니다.
속도, 안정성에 대한 어떤 이점도 없으며, 다만 하드디스크의 용량 확장에 사용합니다.

*RAID 시스템에 따라서 모든 레벨을 지원하지 않을 수 있도 있습니다.
대부분 저가형 제품이 이에 해당됩니다.

=========================================================================

RAID 레벨은 무엇이 있는가?
Saturday, December 30, 2000

A . RAID는 Redundant Array of Inexpensive Disks 또는 Redundant Array of Independent Drives의 약자로 1988년에 David Patterson, Randy Katz, Garth Gibson 이상 3인이 공동 집필한 “A Case for Redundant Arrays of Inexpensive Disks”에서 처음 사용되었다.

RAID는 하드 디스크의 장애 발생시 실시간으로 데이터를 복구함으로써 데이터 손실을 방지함과 동시에 시스템 가동 및 네트워크 가용 시간을 증가시켜 준다. 그리고 여러 대의 디스크가 함께 작동함으로써 시스템의 성능을 몇 배로 향상시켜 준다.

기본 RAID레벨에는 0부터 5까지 총 6가지가 있다. 각 레벨은 성능과 안정성 및 비용 측면에서 특징적인 성격을 가지고 있으며 장애 대응 기능(fault tolerance)을 구현하기 위해서 서로 다른 알고리즘을 채택하고 있다. 그러면 기본 RAID 레벨에 대해서 하나씩 간략하게 알아보도록 하자.

레벨 0 - RAID 레벨 0은 장애 대응 기능을 제공하지 않는다. 이 레벨은 스트라이프 세트라고 하는 파일 시스템을 사용하기 때문에 디스크 스트라이핑이라고 불리기도 한다. 데이터가 여러 개의 블럭으로 나누어진 다음에 디스크 어레이에 존재하는 모든 디스크에 걸쳐서 지정된 순서대로 분산된다.

RAID 레벨 0은 여러 개의 디스크에 작업을 분산시켜서 독립적으로 동작하므로 읽기/쓰기 성능을 향상시킨다.

레벨 1 - RAID 레벨 1은 장애 대응 기능을 제공한다. 이 레벨에서는 미러 세트라고 하는 파일 시스템을 사용하므로 디스크 미러링이라고 불리기도 한다. 디스크 미러링 기능은 지정한 디스크와 동일한 내용을 가진 디스크 복사본을 제공하는데 기본 디스크에 쓰여지는 모든 데이터는 미러 디스크에도 그대로 쓰여지게 된다. 일반적으로 읽기 성능이 향상되는 장점이 있다(그러나 쓰기 성능은 저하될 가능성이 높음).

레벨 2 - RAID 레벨 2는 파일을 쪼개서 여러 개의 디스크로 분산시키는 디스크 스트라이핑 기법을 채택한 에러 수정 알고리즘을 사용한다. 이 에러 수정 방법은 여러 개의 디스크를 필요로 한다.
RAID 레벨 2는 장애 대응 기능을 제공한다는 점에서 레벨 0보다 한 단계 진보한 것이지만 다른 RAID 레벨과 비교했을 때 그다지 효율적이지 않은 관계로 많이 사용되지는 않는다.

레벨 3 - RAID 레벨 3은 동일한 스트라이핑 방법을 사용한다는 점에서 RAID 레벨 2와 유사하지만 패리티 데이터를 저장하기 위해서 한 개의 디스크만을 필요로 한다는 점이 다르다. RAID 3은 모든 패리티 데이터가 하나의 드라이브에 집중되어 기록되므로 쓰기 병목현상을 일으킬 소지도 있지만 어느 정도는 읽기 및 쓰기 성능을 향상시켜 준다.

레벨 4 - RAID 레벨 4는 비슷한 스트라이핑 방법을 사용하고 패리티 데이터를 저장하기 위해서 하나의 디스크만을 필요로 한다는 점에서 RAID 레벨 3과 유사하지만 스트라이핑 된 데이터를 훨씬 큰 블럭이나 세그먼트에 저장한다는 차이점이 있다. RAID 레벨 4는 모든 패리티 데이터가 하나의 드라이브에 기록되기 때문에 RAID 레벨 5에 비해서는 비효율적이며 쓰기 작업 시 병목 현상이 발생하는 문제가 있기 때문에 많이 사용되지 않는다.

레벨 5 - RAID 레벨 5는 패리티가 있는 스트라이핑으로 알려져 있으며 가장 인기 있는 RAID 레벨이기도 하다. 어레이에 있는 모든 디스크에 데이터를 큰 블럭에 담아서 스트라이핑 한다는 점에서 레벨 4와 비슷하다. 그러나 패리티를 모든 디스크에 걸쳐서 기록한다는 차이점이 있다.
데이터의 중복은 패리티 정보를 통해서 제공되며 데이터와 패리티 정보는 항상 서로 다른 디스크에 위치하도록 배분된다.

RAID 레벨 5는 RAID 레벨 1보다 성능이 우수할 뿐 아니라 장애 대응 기능도 제공한다는 장점이 있다

RAID 4에 관한 내용을 읽어보다 부가적인 설명이 필요할까 해서 설명을 드립니다.
사실 예전엔 RAID4 기술이 우리나라에 인식이 없는건 사실입니다만, 미국 모 업체(현재 전세계 NAS(Network Attached Storage)의 60%이상 차지)에서 RAID 4에관한 단점을 극복했는데, RAID 5와의 차이점은 다음과 같습니다.

RAID 4: 한 드라이브에 패리티 정보를 저장하고 나머지 드라이브들 사이에 데이터를 블럭 단위로 분산합니다. 패리티 정보는 어느 한 드라이브에 장애가 발생 했을 때 데이터를 복구할 수 있게 해줍니다. RAID 4는 데이터를 읽어 들일 때 RAID 0에 필적하는 매우 우수한 성능을 보이나, 쓸 때는 매번 패리티 정보를 갱신하기 때문에 추가적인 시간을 필요로 합니다. 실제적으로는 작고 랜덤하게 기록할수록 느리고 크고 순차적인 기록을 행할 때는 그리 느리지 않습니다. 여러 드라이브들 중에서 한대의 드라이브만이 여분의 패리티 정보를 기록하는데 사용되기 때문에 level 4의 용량 당 비용은 그리 높지 않습니다.

RAID 5는 패리티 정보를 모든 드라이브에 나누어 기록합니다. 패리티를 담당하는 디스크가 병목현상을 일으키지 않기 때문에, RAID 5는 멀티프로세스 시스템에서와 같이 작고 잦은 데이터 기록이 있을 경우 더 빠릅니다. 하지만 읽어 들이기만 할 경우 각 드라이브에서 패리티 정보를 건너뛰어야 하기 때문에 level 4 보다 상당히 느립니다. 용량당 비용은 level 4와 같습니다

RAID 4의 단점인 Write시 느린 단점과 쓰기 작업시 병목현상을 미국 모 업체의 독자적인 OS인 ONTAP에 WAFL이라는 파일 시스템을 사용하여 단점을 해결하고 RAID 0, RAID1 보다 빠르게 하였습니다. 현재 국내에서 수차례 BMT을 치룬결과 성능이 입증됨.

 ====================================================================================

RAID

0부터 5까지는 0,1,5만 알면 됩니다.
나머지는 비슷한데 약간 기술적부문만 다른것이고  6이상은 기본개념에서 벗어난 팔아먹을려고 억지로 이름붙이는 스타일이라 실제 필드에서는 그런이름 거의 안씁니다.

0 : 스트라이핑
1 : 미러링
5 : 스트라이핑+패리티

위에 세개입니다. 10이런건 그냥 0+1 이거입니다.(스트라이핑+미러링)

먼저 간단히 RAID라는것은 두가지 목적 을 위해 사용합니다

디스크속도 개선, 재해대비, 고용량디스크구현 이 주된 목적입니다.

먼저 RAID0
스트라이핑은 디스크여러개를 묶어서 하나처럼 쓰는기술을 말합니다.
대용량의 디스크를 만들수 있고 사용할때 데이터를 분리해서 읽고 쓰기때문에 속도도 빨라집니다.

DISK1 DISK2 DISK3을 RAID0으로 구성을 한다면 데이터가 012345678을 넣는다면

DISK1에 0 3 6
DISK2에 1 4 7
DISK3에 2 5 8
이 들어가게되죠

근데 DISK1,2,3을 동시에 사용하기때문에 읽고 쓰는속도는 3배가 빨라지겠죠 (실제로는 이렇게는 안됩니다. 이것저것 데이타 쪼개주고 하는 계산시간이 들어가기 때문에)

단점은 디스크 하나가 뽀개지면 전부다 날라간다는겁니다.
DISK2가 날라가면 0x23x56x8의 데이터가 남아있게되는데
망가진 데이터는 쓸수가 없죠
이걸 조금이나마 방지하기 위해 RAID5를 사용하구요

그리고 RAID1은 철저하게..장애대비용입니다. 똑같은걸 두개이상의 디스크에 기록을 하는거죠
DISK1,DISK2를 RAID0으로 구성했다면 12345678의 데이터를 넣으면
DISK1 1 2 3 4 5 6 7 8
DISK2 1 2 3 4 5 6 7 8

똑같이 들어갑니다. 대신 DISK1이나 DISK2가 뽀개지면 다른 하나 쓰면되니까 그거쓰고있으면서 뽀개진 디스크를 교체해서 시간을 벌고 데이터도 살리고 그런 용도지요.

RAID10(1+0)은 1과 0을 합쳐서 속도도 빠르게 하고 대용량 디스크도 만들고..장애대비도하고(그냥 RAID0만 하면 디스크 자주 뽀개집니다 --;;) 이거죠  실제 필드에서는 RAID1+0을 많이 사용합니다.
추가적으로 이런걸 전용으로 구성해서 서버와 디스크를 분리해서 쓰는것장비들이 NAS, SAN 등의 스토리지 입니다.

댓글