
RAID 개념
RAID(Redundant Array Of Independent Disks)는 여러개의 드라이브를 하나의 논리적 드라이브로 묶어서 성능을 향상시키거나 안정성을 높이는 기술이다.
RAID의 유형에는 여러가지가 있으며 유형마다 성능, 저장용량, 안정성 수준이 다르다.
이러한 구성 방식을 RAID Level 이라고 부른다.
RAID 구성 방식
이 글에서는 자주 쓰이는 RAID 0,1,5,6,1+0 에 대해 알아볼 것이다.
RAID 0 ( Striping )


RAID 0은 스트라이핑이라고도 부른다.
최소 2개의 디스크로 구성되는 RAID 0은 RAID를 구성하는 모든 디스크에 데이터를 나눠서 저장한다.
전체 디스크를 모두 동시에 활용하기에 성능은 단일 디스크를 사용하는 것보다 N배 더 좋다.
단, 하나의 디스크라도 문제가 발생하면 전체 RAID가 깨지며 데이터를 복구하기 어렵다.
즉 안정성은 1/N으로 줄어든다.
성능과 용량을 챙기고, 안정성을 포기하는 RAID 이다.
절대로 서버에서 쓰면 안된다. 무슨 일이 있어도 RAID 0은 쓰는 거 아니다.
RAID 1 ( Mirroring )


미러링으로도 불리는 RAID 1은 최소 2개의 디스크가 필요하다.
동일한 데이터를 N개의 디스크에 전부 복제하여 기록하는 방식으로 안정성이 매우 높다.
데이터를 쓰는 과정에서 다른 디스크에도 복제해야 하므로 성능은 줄어든다.
다만 읽기 과정에서는 전체 디스크에서 읽어오기에 단일 디스크 성능의 N배가 된다.
만약 N개의 디스크가 RAID 1로 묶여 있다면
N-1 개의 디스크가 고장나도 사용 가능하다.
안정성은 확실하지만, 디스크 구매 비용도 그만큼 증가한다.
물론 안정성을 중시한다면 충분히 고려할 수 있는 RAID 이다.
RAID 5 ( 패리티 기반 스트라이핑 )


RAID 5는 장애 허용과 향상된 읽기 성능을 제공한다.
최소로 필요한 디스크 개수는 3개 이상이다.
데이터를 여러 디스크에 분산 저장하면서, 패리티라는 오류 검사 코드를 추가한다.
블록 단위로 Striping 하고 패리티를 1개의 디스크에 저장하는데 매번 다른 디스크에 패리티를 저장한다.
패리티 연산으로 인해 RAID 0 보다는 성능이 약간 낮다.
하지만 하나의 디스크가 고장나도 데이터 복구가 가능하다.
RAID 0 에서 성능과 용량을 줄이는 대신 안정성을 높인 RAID라 생각하면 된다.
RAID 6 ( 이중 패리티 기반 스트라이핑 )


RAID 5에서 성능과 용량을 더 줄이고, 안정성을 높인 것이다.
RAID 5는 1개의 패리티를 디스크들에 저장했는데, RAID 6에서는 2개의 패리티를 디스크에 저장했다.
최소 4개의 디스크로 RAID 구성이 가능하며 용량과 성능이 단일 디스크에 비해 N-2 배 증가한다.
만약 디스크 2개가 고장나도 복구 가능하다. 그 이상은 복구할 수 없다.
RAID 1+0 ( 스트라이프 미러링 )


사진을 보면 직관적으로 이해된다.
RAID 1로 묶은 두 가상 디스크를 RAID 0으로 다시 한번 묶는다.
읽기 및 쓰기 성능은 향상된다.
최소 4개의 디스크가 필요하지만 성능과 동시에 안정성도 챙길 수 있다.
단점은 디스크를 절반만 사용할 수 있어 비용 부담이 매우 크다.
동일한 하위 RAID에서 전부 오류가 나지 않는 이상 문제가 없으며,
이런 RAID는 DB서버와 같이 I/O 가 많이 일어나는 서버에 적합한 RAID이다.
반대로 RAID 0+1도 있긴 한데, 위 내용과 비슷하게 생각하면 된다.
마무리
최근에 학교 서버를 세팅하는데, 아무리해도 리눅스 설치 과정에서 디스크를 잡지 못하는 일이 있었다.
알고보니 해당 서버는 설정에서 물리 디스크를 RAID 구성을 하거나, Non-RAID로 따로 지정해야 인식이 되는 구조였다.
해당 사실을 알고 RAID를 공부하게 되었다.
프로덕션 서비스가 돌아가는 서버에서는 안정성을 챙기자! 데이터 날려먹고 후회하기 전에..
References
- 시놀로지 - RAID 유형 선택
- 데보션 - RAID 정리 1. RAID 기본 설명 및 RAID Level (레이드 레벨)
- Wikipedia - Standard RAID Levels
'Infra > OS' 카테고리의 다른 글
[WSL] WSL(Windows Subsystem for Linux) 개념부터 설치까지 (0) | 2024.03.24 |
---|
소프트웨어학과 현주씌의 일상을 담는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!