[전자계산기구조] RAID란?

[전자계산기구조] RAID란?

레이드란 Redundant Array of Independent Disk 의 약자로, 2개 이상의 디스크를 병렬로 처리하여 성능 및 안정성을 향상시키는 방식입니다.
과거에는 주로 용량이 작은 디스크들을 연결하여 디스크 용량을 높이기 위해 사용되었습니다.

여러개의 디스크를 한 개의 대용량 디스크처럼 사용하는 기법으로 신뢰성과 효율성이 향상된다.

요즘에는 디스크 성능 향상에서 나아가 디스크 오류나 데이터 손실 등 장애에 대비하기 위한 용도로 사용되고 있습니다.
한 번 손실되거나 삭제된 데이터를 복구하기에 시간과 노력이 많이 소요되는 만큼, 데이터 손실을 방지하기 위한 일종의 대비책이라고 보시면 됩니다.

종합하면 한 개의 디스크에 데이터를 저장하는 방식이 아닌, 데이터 저장의 성능 및 안정성 확보를 위해 복수의 디스크를 구성하는 방식을 레이드(RAID)라 합니다.
물론 이러한 레이드 방식을 적용하기 위해서는 1개 이상의 디스크가 필요합니다.


레이드의 종류

어떠한 방식으로 레이드를 구성하느냐에 따라 레이드 방식이 구분됩니다.
대표적인 레이드 방식을 간단히 소개합니다.


레이드 0


먼저, 레이드 0 방식입니다. 두 개 이상의 디스크에 데이터를 순차적으로 저장하는 방식입니다.

단순히 볼륨마다 디스크 스트립을 나열해 놓았기 때문에 스트라이핑(Striping)모드라고 하며, 높은 신뢰성을 요구하기 보다는 성능과 용량을 중요시하는 시스템에 사용한다.

한 개의 디스크에 데이터를 처리하는게 아니라 복수개의 디스크에 데이터를 분산해 처리하기 때문에, 처리 속도가 향상된다는 강점을 지니고 있습니다.
하지만 하나의 디스크가 문제가 발생하면 레드0으로 구성된 모든 데이터가 유실된다는 단점을 지니고 있는데요.
오직 성능향상을 위한 구성방식이라고 보면 됩니다.


레이드 1

다음으로, 레이드 1 방식입니다. 데이터 처리 시, 동일한 디스크에 똑같이 저장하는 방식입니다.(Disk mirroring)

데이터를 중복 기록하여 저장하기 때문에, 디스크가 장애 및 오류 발생 시, 다른 디스크를 통해 데이터를 쉽게 복구할 수 있습니다. 때문에 가용성 및 안정성이 높다는 강점을 지니고 있습니다.

하지만 똑같은 데이터를 디스크 2개로 중복 저장하기 때문에 실질적으로 사용할 수 있는 용량이 절반으로 줄어든다는 단점을 지니고 있습니다.
(ex : 100GB 디스크를 두 개 사용하더라도 실질적으로 저장할 수 있는 용량은 100GB밖에 되지 않습니다.)


레이드 0 + 1


앞서 언급한 레이드0은 데리터 처리 성능이 향상 되지만 안정성에 취약하다는 약점, 레이드1은 데이터 복제를 통해 안정성은 높지만 성능이 취약하다는 약점을 지니고 있습니다.
각각의 약점을 보안하기 위해 레이드0 방식과 레이드1 방식을 결합한 레이드 0+1 방식이 있습니다.

2개 이상의 디스크를 레이드0 방식으로 구성하고 데이터를 분산처리하고, 각각의 디스크에 레이드1방식으로 디스크를 추가하여 데이터를 복제하는 방식입니다.


레이드 2

RAID 0처럼 스트라이핑 방식이지만 레어 체크와 수정을 할 수 있도록 Hamming Code를 사용함
데이터를 여러개의 디스크에 분산하여 저장하며, 해밍코드를 사용하는 패리티를 여러 개의 패리티 디스크에 저장한다.


레이드 3,4

레이드 3,4는 레이드0과 같이 데이터 분산처리방식을 사용하며, 추가로 에러 체크 및 수정을 위한 패리티(parity) 정보를 별도의 디스크에 따로 저장하는 방식입니다.

레이드3과 레이드4방식은 데이터 저장 단위에 따라 구분됩니다.
레이드3은 Byte단위로 데이터를 저장하는 반면, 레이드4는 블록(Block)단위로 저장을 합니다.
패리티 정보를 별도의 디스크에 저장을 하기 때문에 디스크가 고장 나더라도 패리티 정보를 통해 복구가 가능합니다.

하지만 패리티 정보를 디스크엡 별도 보관하기 때문에 해당 디스크 곤실 시, 복구가 어렵다는 단점이 있습니다.



레이드 5

패리티 정보를 별도 디스크에 보관 함으로써 생기는 약점을 보완하기 위해 나온 방식이 레이드5입니다.
패리티 정보를 보관하는 디스크 구성 없이, 정한 로직에 의해 데이터분산처리 + 에러체크를 구성하는 방식입니다.

별도의 패리티 디스크를 사용하지 않고 데이터를 저장하는 디스크에 패리티를 라운드 로빈 방식으로 분산하여 저장한다.

성능, 안정성을 모두 고려한 형태로 서버 구축시 많이 사용하고 있는 레이드 방식입니다.


레이드 6

두 개의 패리티 디스크를 사용하므로 두 개의 디스크 장애 시에도 데이터의 복구가 가능하다.


출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?