IT보안 학습

RAID 총정리

김구티2 2023. 12. 27. 18:11

1. RAID(Redundant Array of Independent Disks)의 개념

RAID는 성능 향상과 데이터 중복성 중 하나 혹은 둘 모두를 위해 단일 디스크 대신 여러 디스크의 조합을 사용하는 기술이다. 데이터 중복은 추가 공간을 차지하지만, 디스크 안정성을 높여준다. 즉, 디스크 장애가 발생한 경우 동일한 데이터가 다른 디스크에도 백업되어 있으면 데이터를 검색하고, 작업을 계속할 수 있을 것이다. RAID 기술을 사용하지 않고 데이터가 여러 디스크에 분산되어 있다면? 단일 디스크의 손실이 전체 데이터에 영향을 미칠 수 있을 것이다.

 

RAID 기법은 저용량, 저성능, 저가용성인 디스크를 배열 구조로 중복 구성함으로써 고용량, 고성능, 고가용성 디스크를 대체하는 것이다. 데이터 분산 저장에 의한 동시 엑세스가 가능하며, 병렬 데이터 채널에 의한 데이터 전송 시간이 단축되는 장점이 생긴다.

 

1.1 RAID 시스템의 주요 평가 포인트

RAID는 레벨이 다양한데, 그렇다면 또 어떤 RAID를 선택해야 하는지 하나하나 따져봐야 할 것이다.

- 신뢰성: 시스템이 얼마나 많은 디스크 오류를 허용할 수 있는가?

- 가용성: 전체 세션 시간 중 가동 시간은 얼마나 되는가? 즉, 실제 사용을 위해 시스템의 가용성은 얼마나 되는가?

- 성능: 응답 시간은 얼마나 우수한가? 처리량은 몇인가? 등 성능은 사실 여러 변수가 포함되기 때문에 사용자가 어떠한 성능을 원하는 지가 중요할 것이다.

- 용량: 각각 A 블록이 포함된 N개의 디스크 세트가 주어지면, 사용자가 사용할 수 있는 용량은 어느 정도 되는가?

 

이런 기준에 따라 우리는 각자에게 적합한 RAID 레벨을 선택할 수 있을 것이다.

 

2. RAID 레벨

ㄱ. RAID 0 (Stripe, Concatenate)

블록은 전체에 걸쳐 Stripe 된다. 위 그림에서 블록 0, 1, 2, 3은 Stripe를 형성한다.

한 번에 하나의 블록만 디스크에 배치하는 대신, 다음 블록으로 이동하기 전에 디스크에 배치된 두 개 이상의 블록을 작업할 수 있다.

작은 디스크를 모아 하나의 큰 디스크를 만드는 기술로, 장애 대응이나 복구 기능은 별도로 구성된다.

이 Stripe는 데이터를 나누어 저장하기는 해도, 중복 저장은 하지 않기 때문에 사실상의 복구 기능은 없는 것으로 간주한다.

신뢰성은 0이라고 해도 무방하지만, 대신 전체 공간을 중복없이 데이터 저장에 사용하고 있으므로 디스크를 최대로 활용하고 있다고 볼 수 있다. 용량은 A*N이 된다.

 

장점으로는 아무래도 가장 단순한 구조다 보니 구현이 쉽고, 저장 용량 측면에서 우수하다.

단점으로는 단일 드라이브 손실로 인해 시스템이 완전히 Fail 할 수 있다. 그렇기에 중요한 시스템에는 결코 적합하지 않은 방식이다.

 

ㄴ. RAID 1 (Mirroring)

이름의 미러링에서 알 수 있듯, 각 블록의 복사본이 2개 이상의 별도 디스크에 저장된다. 따라서 모든 블록에는 서로 다른 디스크에 있는 2개 이상의 복사본이 존재한다. 완전 이중화가 이뤄지는 것이다.

사실, 위 그림은 엄밀히 말하면, 미러링 레벨 2라고 할 수 있다. 사용자가 원한다면 미러링 레벨을 따로 변경할 수 있다. 여기서 미러링 레벨을 몇으로 설정하냐에 따라 신뢰성과 저장 용량이 달라지는 것이다. 미러링 레벨을 높일수록 신뢰성은 비례해서 증가하고, 저장 용량은 반비례하여 감소할 것이다. 미러링 레벨이 2인 경우, 신뢰성은 1~N/2이 되고, 용량은 A*N/2가 된다.

 

장점은 완전한 중복성을 보장하는 것이다. 또한, 데이터 보안과 속도를 높일 수 있다. 속도가 높은 이유는 디스크 Read와 Write가 병렬적으로 실행되기 때문이다.

단점은 매우 비싸고, 저장 용량이 적다.

 

ㄷ. RAID 2 (Hamming Code ECC)

ECC 기능이 없는 디스크의 오류 복구를 위해 개발된 것이다. 해밍 코드를 이용하여 오류를 복구한다.

RAID 2는 별도의 디스크에 복구를 위한 ECC를 저장하는 것을 말한다. 디스크 하나가 장애로 접근이 불가능한 경우가 발생하여도, 각 디스크의 정보로 생성된 ECC 값을 통해 그 디스크의 값을 재생성할 수 있게 된다.

또한, RAID 2에서는 두 집단의 디스크를 사용하므로 매우 복잡하다. 하나는 비트를 저장하는 용도이고, 다른 하나는 오류 코드 수정을 저장하는 데 사용된다. 복잡하기에 일반적으로 사용되지는 않는다. 그렇기에 그냥 이런 게 있구나 하는 정도로 이해하면 될 것이다.

 

장점은 오류 정정을 해밍 코드를 이용해서 사용하고, 하나의 지정된 드라이브를 사용해서 패리티를 저장한다는 것이다.

단점은 추가 구동으로 인해 구조가 상당히 복잡하고 비용도 많이 들어간다. 오류 감지를 위해서 추가 드라이브도 필요할 것이다.

 

ㄹ. RAID 3 (Parity ECC)

데이터를 복제하는 대신, 패리티 기반 접근 방식을 선택한 것이다. 패리티 정보를 별도 디스크에 저장한다. 그래서 1개의 디스크 장애 시에 패리티를 통해 복구가 가능하다.

위 그림에서 패리티 전용 디스크가 있는 것을 확인할 수 있을 것이다. 패리티는 간단한 XOR 함수를 사용하여 계산한다. 데이터 비트가 0, 0, 0, 1일 경우, 패리티 비트는 XOR(0,0,0,1)=1이 되고, 데이터 비트가 0, 1, 1, 0이면 패리티 비트는 XOR(0,1,1,0)=0이 된다. 간단하게 1이 짝수개면 패리티는 0이 되고, 홀수개면 패리티는 1이 되는 것이다.

RAID 0으로 구성된 데이터 디스크의 입출력 성능은 향상되나, 패리티 계산 및 별도 디스크 저장으로 인해 Write 성능은 저하된다.

RAID 4를 사용하면 최대 1개의 디스크 오류를 복구할 수 있고, 2개 이상은 불가능하다. 신뢰성은 1이 될 것이다. 용량의 경우 디스크 하나가 패리티 저장용으로 되어있기 때문에 N-1개의 디스크를 데이터 저장용으로 사용하게 된다. 따라서 용량은 (N-1)*A가 된다.

 

장점은 최대 하나의 데이터가 손실된 경우 데이터 재구성에 아무런 문제가 없다는 것이다.

단점은 둘 이상의 데이터가 손실되면 재구성에 문제가 생긴다는 것이다.

 

ㅁ. RAID 4 (Parity ECC, Block 단위 I/O)

패리티 정보를 별도 디스크에 저장한다. 이때 데이터는 Block 단위로 데이터 디스크에 분산 저장하는 것이다. 마찬가지로, 1개의 디스크 장애 시 패리티를 통해 복구 가능하다. RAID 0으로 구성된 데이터 디스크의 입출력 성능은 향상되나, 패리티 계산 및 별도 디스크 저장으로 Write 성능이 저하된다.

설명을 보면 알 수 있듯, 기본적으로 RAID 3과 동일하나, 패리티를 Block 단위로 관리하는 것에서 차이가 발생한다.

위 그림에서도 패리티 전용 디스크를 하나 볼 수 있을 것이다. 똑같이 XOR을 계산하는 방식이고, 따라서 신뢰성도 1로 그대로이고, 용량도 (N-1)*A로 똑같다.

 

장단점도 RAID 3과 동일하다. 그저 블록 단위 관리의 차이일 뿐이다.

 

ㅂ. RAID 5 (Parity ECC, Parity 분산 저장)

분산 패리티를 구현하여 안정성을 더욱 향상한 것이다. 최소 3개의 디스크가 필요한데, 일반적으로는 4개의 디스크로 구성한다. 그럼 이것은 RAID 4에서 어떻게 달라진 것인가 하면, 패리티가 드라이브 안에서 로테이션을 돈다는 것이다. 이는 Random Write 성능을 향상하기 위해 도입한 것이다.

기본적인 틀 자체는 RAID 4에서 달라진 것이 없기 때문에 신뢰성 1, 용량 (N-1)*A는 유지된다.

 

장점으로는 패리티 비트를 사용하여 데이터를 재구성할 수 있다는 점이다. 또한, 목적에서 알 수 있듯, 성능이 향상된다.

단점으로는 기술이 복잡하고, 위 그림에서 알 수 있듯, 추가 공간이 필요하다. 두 디스크가 만일 모두 손상되면, 데이터는 영원히 손실될 것이다.

 

ㅅ. RAID 6 (Parity ECC, Parity 분산 복수 저장)

분산 패리티가 적용된 RAID 5의 안정성 향상 위해 패리티를 다중화하여 저장한다. 대용량 시스템에서 장애 디스크가 복구되기 이전에 추가적인 장애가 발생되면 복구가 불가능한 문제를 해결하기 위해 개발된 것이다. 그러므로 장애가 발생된 상황에서 RAID 6은 추가적인 디스크 장애가 있더라도 정상 작동한다.

RAID 6은 디스크 오류가 2개 이상 있을 때 특히 빛을 발하는 것으로 이해하면 되는 것이다. 이 수준에서는 한 쌍의 독립 패리티가 생성되어 여러 디스크에 저장된다.

 

장점으로는 매우 높은 데이터 접근성과 빠르게 데이터를 읽을 수 있다는 점이다.

단점으로는 이중 패리티로 인해 데이터를 쓰는 속도는 느려진다. 그리고 추가 공간이 요구된다.

 

3. RAID의 장단점과 결론

장점

- 데이터 중복성: RAID는 많은 디스크에 많은 데이터 사본을 보관함으로써 디스크 오류로부터 데이터를 보호할 수 있다.

- 성능 향상: RAID는 데이터를 여러 드라이브에 분산하여 여러 읽기/쓰기 작업을 동시에 실행할 수 있도록하여 성능을 향상시킬 수 있다.

- 확장성: RAID는 확장 가능하므로, 어레이에 더 많은 디스크를 추가하여 저장 용량을 확장할 수 있다.

- 다양성: RAID는 서버, 개인 PC, 워크스테이션 등 다양한 장치에 적용 가능하다.

 

단점

- 비용: RAID 구현은 비용이 들어가며, 특히 대용량의 경우 많은 비용이 요구된다.

- 복잡성: RAID의 설정 및 관리가 마냥 쉽지는 않다.

- 성능 저하: 성능 향상과 저하가 공존한다는 게 모순적일 수도 있는데, RAID 5나 RAID 6 등에서는 패리티 계산을 통해 일부 성능이 저하될 수 있다.

- 단일 실패 지점: RAID는 데이터 중복성을 제공하지만, 포괄적인 백업 솔루션은 아니다. 이것을 백업 솔루션으로 이해해서는 안된다. RAID 컨트롤러가 오작동하는 경우, 어레이의 전체 내용이 손실될 수 있다.

 

결론적으로 데이터베이스 관리 시스템의 RAID 기술은 데이터 성능과 신뢰성을 향상시키기 위해 여러 드라이브 데이터를 분산 및 복제 저장한다. 시스템의 가용성을 유지하고 민감한 데이터를 보호하는 데에 필수적이라고 할 수 있을 정도로 현대 데이터베이스 설정에 있어 유용한 도구이다. 각 RAID 별로, RAID 안에서의 선택도 따져가며 적합한 레벨을 선택해야 할 것이다.

 

728x90

'IT보안 학습' 카테고리의 다른 글

리눅스 부팅 총정리  (0) 2023.12.28
리눅스 총정리  (0) 2023.12.28
FAT, NTFS, EXT 총정리  (1) 2023.12.27
유닉스 파일 시스템 구조 총정리  (1) 2023.12.26
디스크 스케줄링 총정리  (1) 2023.12.26