RAID (레이드) 레벨과 구성방식
- IT이야기
- 2021. 7. 7.
RAID ( Redundant Array of Inexpensive Disks / Redundant Array of Independent Disks )
1988년 버클리 대학의 3명의 과학자가 제안한 이론으로 그 당시에는 하드디스크의 용량이 제한적이었고, 함부로 사용하는 이도 드물 정도로 값도 비쌌기 때문에 보다 저렴하며 용량이 적고, 성능이 낮은 하드디스크를 묶어 중복 구성함으로써, 성능이 좋은 고가의 대용량 하드디스크 장비와 겨뤄 손색이 없도록 하는 것이 주목적이었습니다.
그러나 그들이 열심히 RAID를 연구하는 동안 Storage 기술의 발전으로 용량대비 가격이 지속적으로 하락하였으므로 애초 주목적이었던 가격적인 면보다는 데이터의 안정성과 에러 보정, 그리고 하드디스크의 장애에 의한 데이터의 손실을 막기 위한 측면이 강조되었고, RAID의 의미는 'Inexpensive'에서 'Independent'로 의미가 바뀌게 되었습니다. 단순히 구성으로만 보자면 지금 많이들 사용하는 partition의 반대 비슷한 개념정도 됩니다. 파티션이 하나의 물리적인 드라이브를 여러개의 논리적 드라이브로 분할한것 이라면 레이드는 여러개의 물리적 드라이브를 하나의 논리적 드라이브로 묶는 방식 입니다. RAID 시스템은 동일한 데이터를 여러 개의 디스크에 중복 저장하면서도, 운영체계에는 하나의 단일 디스크로 인식시킴으로써, 내고장성의 증가와 데이터 접근 효율성을 높여주는 장점이 있습니다.
RAID Level 0 : 필요 드라이브 최소 2개이상, 빠른 입출력 목적
레이드 0은 같은 모델의 하드디스크와 같은 용량이어야 한다는 전제 조건이 있습니다. 레이드 0 구성시 중요데이터는 반드시 Back-up 하셔야 합니다. 레벨 0은 RAID의 가장 기본적인 구현방식으로 Striping(스트라이핑)이라고 합니다. 이것은 하나의 데이터를 여러 드라이브에 분산 저장을 함으로써 빠른 입출력을 가능하게 합니다. 1부터 100까지의 숫자로 이루어진 데이터가 있다면 이것을 1부터 100까지 순서대로 읽게 되는 상황이 일반적인 하드디스크의 구성이고 2개의 하드 디스크로 레벨0 을 구성하면 하나는 1~50 까지만 읽고 다른 하나는 51부터 100까지만 읽고 저장하기 때문에 그 속도는 2배가 됩니다. 즉 3개로 구성되면 속도는 3배가 되고 10개로 구성되면 그 속도는 1/10 로 줄어 들게 됩니다. 다시말하면 하나의 데이터는 Stripe(스트라이프) 기술을 이용해서 여러 개의 같은, 일정한 크기로 쪼개집니다. 그리고 이 쪼개진 하나하나의 조각을 Stripe Unit(스트라이프 유닛)이라고 합니다. 레벨 0은 분산 저장에만 초점이 맞춰져 있어 하드디스크의 속도 향상에는 무척 도움이 되지만, Striping(스트라이핑) 되어 있는 하드디스크 중 1개만 장애를 일으키더라도 데이터를 모두 유실할 위험성이 있습니다. 예를들어, "어린이" 라는 단어를 2개의 드라이브(하드 디스크)로 구성된 Raid 0 에 저장한다면 한개의 드라이브는 "ㅇ , ㄹ, ㄴ, ㅇ" 라는 자음만 저장하고 다른 하나는 " ㅓ, ㅣ, ㅣ " 이런 모음만 저장합니다. 따라서 저장하거나 불러오는 속도는 빠르지만 하나의 디스크에서 에러가 발생하면 완전한 데이터를 불러오지 못하게 되는 것입니다. 300GB 두개로 레이드0 을 구성하면 600GB의 단일 드라이브로 나타나고 성능 또한 2배이지만 하나의 디스크에서 손실이 발생하면 둘다 사용하지 못하게 되는 안전성이 낮은 구성입니다.
RAID Level 1 : 필요 드라이브 최소 2개이상, 안정성의 목적
레벨 1은 2개의 하드디스크가 사용되며, 하나의 하드디스크에 기록되는 모든 데이터가 나머지 하나의 하드디스크에 고스란히 복사되는 방법으로 저장하게 됩니다. 두 개의 하드디스크에는 한치의 오차도 없이 똑같은 데이터가 저장이 되기 때문에 Mirroring(미러링)이라고 합니다. 이 경우 2개의 하드디스크 중 1개가 장애를 일으키더라도 남은 1개의 데이터는 장애를 일으킨 하드디스크의 데이터와 똑같기 때문에 안정성 측면에서 상당히 우수한 구성입니다.
읽기에서는 성능의 향상이 있으나, 쓰기에서의 속도 향상은 별반 차이가 없고, 전체 공간의 50%만 이용할 수 있다는 문제점이 있습니다. 때문에 매우 중요한 파일을 백업 받을 일이 없는 개인 사용자의 경우 하드디스크 두 개로 한 개 용량만 사용해야 한다는 단점이 있습니다.
RAID Level 2 : 기록용 드라이브와 테이터 복구용 드라이브가 별도로 필요4개 하드 디스크에 기록하기 위해서는 3개의 부가 데이터를 기록해야 되기 때문에 효율성 측면에서 거의 사용하지는 않습니다. RAID 2는 RAID 0처럼 스트라이핑 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming Code를 사용하고 있는 것이 특징입니다. 레벨 4가 나오면서 거의 사용하지 않는 기술입니다.
Raid Level 0 인 Striping(스트라이핑)은 데이터를 쪼개서 저장하는 즉, 분산 저장 해서 속도향상을 위한 레벨이고.
Raid Level 1 의 Mirroring ( 미러링 )은 안전성을 좋지만 드라이브 용량 이용의 비효율성이 있습니다.
Raid Level 3,4 는 Parity ( 패리티 : 데이터 오류 체크 기술)로 레벨0의 불안전성을 보완한 것입니다.
RAID Level 5 ( 레이드 5 ) : 필요 드라이브 최소 3개이상
레벨 5는 레벨 3과 레벨 4의 단점을 보완한 방식으로, 패리티 정보의 저장을 전담하는 하드디스크 대신 모든 하드디스크에 패리티 정보를 분산 저장합니다. 이 방식은 쓰기(Write)에는 패리티 정보가 분산되어 저장되기 때문에 Level 3, 4의 단점이었던 병목을 줄여주지만, 읽기(Read)에서는 사방에 흩어져 있는 패리티 정보를 갱신하며 읽게 되기 때문에 성능 저하가 생길 수밖에 없습니다. 이러한 단점 역시 컨트롤러에 지능형 캐쉬를 내장하여 속도저하를 최소화시키는 역할을 하고 있습니다. 성능면에서 Raid 0 보다 떨어지지만 성능, 안정성, 용량 3 부분을 고려한 형태입니다.하나의 드라이브가 고장날 경우 다른 드라이브에 별도로 저장된 패리티( Parity ) 정보를 정보를 통해서 복구하고 손상된 드라이브의 패리티 ( Parity ) 정보는 나머지 하드에 있는덷 테이터를 토대로 다시 작성할 수 있습니다.그러나 별도의 패리티 정보를 저장하는 작업을 해야 하기 때문에 RAID Level 1 보다는 쓰기 성능이 떨어집니다.
RAID 3, 4와 달리 패리티 정보가 저장된 디스크가 따로 없어 패리티 디스크 고장과 같은 문제에서 자유롭고 실제 서버/워크스테이션에서 가장 많이 사용되는 방식입니다.
RAID Level 6 ( 레이드 6 ) : 필요 드라이브 최소 4개이상
레벨 6은 RAID 5와 같은 개념이지만 다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 데이터를 복구할 수 있습니다. RAID 5보다 더욱 데이터 안정성을 고려하는 시스템에서 사용합니다.
하드를 스트라이핑으로 묶었기 때문에 RAID 0+1이나 RAID 10(1+0)보다 성능은 더 높고 신뢰성도 우수합니다. 패리티 정보를 2중으로 저장하며 읽기 성능은 RAID 5와 비슷하지만 쓰기 작업 구현이 아주 복잡해서 일반적으로 잘 사용하지 않습니다.
RAID Level 0+1 / 1+0 (레이드 01 / 10 ) : 필요 드라이브 최소 4개
간단히 말하자면 레이드 레벨 0과 레벨 1의 복합 구성입니다. 레벨 0의 Striping과 레벨 1의 Mirroring의 기능이 합쳐진 것으로, 분산 저장을 통한 성능 향상을 꾀할 수 있으면서 데이터의 안정성 또한 보장받을 수 있습니다. 때문에 속도 및 안정성 두 마리의 토끼를 다 잡은 듯 보이지만, 여전히 전체 용량의 50%만 사용할 수 있는 것은 변함이 없으며, 비용이 많이 든다는 문제점이 있습니다.
01과 10의 차이는 어느 쪽을 먼저 구성하느냐의 차이입니다. 4개의 드라이브로 구성한다면 위의 이미지 처럼 그 차이는 없습니다.
그러나 6개의 드라이브로 구성한다면 01의 구성은 3:3 으로 구성되지만 10의 구성은 2:2:2 로 구성되게 됩니다. RAID 0+1은 RAID 0으로 구성된 드라이브들을 최종적으로 RAID 1로 묶는 것이라 각각 3개씩 하드 가 나눠지며, RAID 1+0은 2개씩 RAID 1으로 묶여있는 하드들이 RAID 0으로 구성됩니다.
RAID 0+1의 경우 1개의 하드만 고장나서 복구해도 다른 RAID 0 구성에서 나머지 하드까지 데이터 전체를 복구해야 하지만, RAID 1+0으로 만든 시스템은 고장난 하드가 하드 1개라고 하면 미러링으로 묶인 하드를 통해 데이터만 복구하면 되므로 실제로 운용하는데는 RAID 1+0 이 훨씬 유리합니다.
Raid 51 / 15 , Raid 05 / 50 , Raid 60, Raid100
기존의 레벨의 복합적 구성입니다.
레벨 0 이 들어가면 성능의 향상을 기대할수 있으나 안정성은 불안하게 됩니다.
레벨 1 이 들어 가면 안전성을 확복할수 있으나 용량의 감소 또한 감수 해야 됩니다.
레벨 5나 6의 구성에 최소 3~4개의 드라이이브가 소모되기 때문에 이들의 복합적인 구성은 최소 6개 이상의 드라이브가 있어야 가능한 구성입니다. 랜덤 읽기/ 쓰기의 성능의 향상은 체감속도의 향상과 같습니다. 프로그램을 런칭하는 속도가 랜덤 엑세스의 성능과 비례한다고 보시면 됩니다. 그리고 순차 읽기 / 쓰기는 영화파일과 같은 대용량의 파일을 이동할때의 성능 이라고 생각하시면 됩니다.
'IT이야기' 카테고리의 다른 글
Redis Data Type (0) | 2024.10.30 |
---|---|
Spring JPA란? 무엇 일까요? (0) | 2023.09.26 |
리눅스 환경변수 영구적 적용 및 화면 끊어짐 현상 없애기 (0) | 2023.09.21 |
데이터 파이프라인 소개 (0) | 2022.05.16 |
안드로이드 레이아웃 (0) | 2021.07.07 |