RAID
= Redundant Array of Independent/Inexpensive
= 여러 개의 하드디스크를 하나의 디스크처럼 사용해 동일한 데이터를 다른 위치에 중복해서 저장하는 방법
= 디스크 어레이(Disk Array)
- 운영체제는 하나의 RAID (데이터가 저장된 디스크의 묶음이라고 생각)는 논리적으로 하나의 디스크로 인식해 처리한다.
- 초기 목적: 저용량 하드 디스크를 하나의 디스크로 확장해 사용
- 현재 목적: 백업 + 안정적인 데이터의 보존 및 유지, 속도 향상 등
- 하드웨어 RAID: 하드웨어 제조업체에서 여러 개의 하드디스크를 연결한 장비를 만들어 공급하는 RAID로, 안정적이고 성능이 좋은 편이다. ▶▶ "핫 스왑(Hot Swap) 베이(Bay)" 기능; 전원이 켜져있는 상태에서 하드 드라이브를 교체할 수 있는 기능
- 소프트웨어 RAID: 고가 하드웨어 RAID의 대안으로, 하드 디스크 여러개로 운영체제에서 지원하는 방식으로 RAID를 구성하는 방법이다. 하드웨어RAID에 비해 안정성, 속도 등이 떨어지지만 훨씬 저렴한 가격으로 제공된다.
RAID에서 사용하는 기술
- 스트라이핑(Striping)
연속된 데이터를 여러 개의 디스크에 라운드로빈 방식으로 기록하는 기술
→ 프로세서가 하나의 디스크에서 데이터의 전체를 읽어 들일 때보다 더 빠르게 데이터를 읽거나 쓸 수 있게된다.
아래 RAID-0에서 스트라이핑 기술을 이용하기 때문에 RAID-0를 살펴보면 어떤 기술인지 좀 더 이해할 수 있을 것이다.
* 라운드 로빈 스케줄링 (Round Robin Scheduling)
분할 시스템을 위해 설계된 선점형 스케줄링의 하나로서, 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위(Time Quantum)로 CPU를 할당하는 방식의 CPU 스케줄링 알고리즘
참고 / 출처
- 미러링(Mirroring)
디스크에 에러가 발생했을 때 데이터의 손실을 막기 위해 추가적으로 하나 이상의 장치에 중복 저장하는 기술
→ 하나의 디스크에 에러가 발생해도 다른 디스크의 데이터는 그대로 보존되기 때문에 "결함 허용(Fault-tolerance)"라고 한다.
아래 RAID-1에서 미럴링 기술을 이용하기 때문에 RAID-1을 살펴보면 어떤 기술인지 이해가 쉬울 것이다.
RAID의 종류(레벨)
데이터를 기록하는 방식과 에러를 체크하는 Parity/ECC(Error Check&Correction) 등의 구성방법에 따라 다양하다.
① Linear RAID / RAID-0
최소 2개의 하드디스크가 필요하고, 2개 이상의 하드디스크를 1개의 볼륨으로 사용한다.
Linear RAID와 RAID-0는 저장방식에서 차이점이 있다.
- Linear RAID
앞 하드디스크에 데이터가 완전히 저장된 후 다음 하드디스크에 데이터를 저장한다. 앞의 하드디스크에 데이터가 완전히 저장되지 않으면 다음 하드디스크는 전혀 사용되지 않는다.
각 하드디스크의 용량이 모두 같지 않더라도 전체 용량을 문제 없이 사용할 수 있기 떄문에 공간 효율성이 매우 좋다.
- RAID-0
스트라이핑 기술을 이용해 모든 하드디스크를 동시에 사용한다. 데이터를 중복이나 패리티 없이 분산하여 기록하기 때문 입출력 처리속도는 가장 빠르나, 구성된 디스크 중 하나라도 오류가 발생했을 경우 데이터 복구가 불가능하다.
RAID-0에는 스트라이핑 기술이 적용되기 때문에 전체 데이터를 "ABCDEF"라고 했을 때 디스크(1)과 디스크(2)를 동시에 사용하여 데이터를 저장한다. 따라서 하나의 디스크에 "ABCDEF"를 순차적으로 저장한다고 했을 때 6초가 걸린다고 가정하면 RAID-0로는 3초면 데이터가 모두 저장된다.
② RAID-1
미러링 기술을 이용해 두 개의 디스크에 데이터를 동일하게 기록한다. 스트라이핑 기술은 적용하지 않는다.
각 드라이브를 동시에 읽을 수 있어 읽기 성능은 향상되지만 데이터를 동시에 두 개(이상)의 디스크에 저장하기 때문에 쓰기 성능(저장 속도)은 단일 디스크를 사용할 때와 같다.
미러링 기술이 적용되기 때문에 데이터가 중복 저장되므로 2개의 하드디스크 중 하나가 고장 나도 데이터를 복구할 수 있지만, 중복 저장으로 인해 디스크의 50%를 낭비하게 된다. (= 공간 효율이 50%)
비용(공간)이 많이 들더라도 없어져서는 안되는 중요도가 높은 데이터를 저장할 때 사용하면 적절한 방식이다.
③ RAID-2
스트라이핑 기술을 사용하여 디스크를 구성하고, 디스크의 에러를 감지하고 수정하기 위한 ECC 정보를 사용한다.
스트라이핑 기술을 이용해 데이터 "A0/A1/A2/A3/B0/B1/B2/B3/C0/C1/C2/C3/D0/D1/D2/D3"를 4개의 하드 디스크에 동시에 분산하여 저장한다. 4개의 디스크에 동시에 저장되는 데이터를 4개씩 묶어 A,B,C,D라고 할 때 그 데이터에 대한 에러를 확인하기 위해 ECC를 사용한다.
④ RAID-3
스트라이핑 기술을 사용하여 디스크를 구성하고, 데이터의 에러를 확인하기 위해 패리티를 저장하기 위한 별도의 디스크를 사용한다.
입력/출력 작업이 동시에 모든 디스크에 대해 이루어지기 때문에 입력과 출력을 겹치게 할 수 없다.
주로 대형 레코드가 많은 시스템에서 사용한다.
⑤ RAID-4
블록 형태의 스트라이핑 기술을 사용하여 디스크를 구성한다. 블록 형태로 구성하는 것은 단일 디스크로부터 레코드를 읽을 수 있고 데이터를 읽을 때 중첩 입출력을 할 수 있다. 반면, 쓰기 작업(저장)을 할 때는 패리티 연산을 해야 하고 패리티 디스크에 패리티 값을 저장해야 하기 때문에, 입출력의 중첩이 불가능하다.
⑥ RAID-5
패리티 정보를 이용하여 하나의 디스크가 고장이 발생하더라도 사용이 가능한 구성방식이다. RAID-1의 결함 허용성과 RAID-0의 공간 효율성을 포용한 방식이라고 할 수 있다.
최소 3개의 하드 디스크가 필요하다. 대부분 5개 이상의 하드디스크로 구성한다. 패리티 정보를 별도의 디스크에 저장하지 않고 데이터가 저장되는 디스크에 분산하여 기록하지만 데이터를 중복 저장하지 않는다.
→ 디스크를 3개로 구성했을 때는 33.3% / 4개로 구성했을 때는 25% / 5개로 구성했을 때는 20%가 패리티 공간으로 사용된다.
디스크에 쓰기 제한 주소를 지정하기 때문에 모든 읽기 및 쓰기가 중첩될 수 있다.
전체데이터는 A0-B0-C0-D0-A1-B1-C1-E1-A2-B2-D2-E2-A3-C3-D3-E3-B4-C4-D4-E4 순으로 각 디스크에 하나씩 저장되고, 패리티 데이터를 위한 한 칸을 비워둠을 확인할 수 있다. 패리티를 한 칸씩 할당하기 때문에 1개의 디스크 오류에만 대처가 가능하다. (2개 이상의 디스크에 오류가 발생하면 데이터를 복구할 수 없게된다.)
가장 보편적으로 쓰이는 방식으로, 작고 랜덤한 입출력이 많은 경우에 좋은 성능을 발휘한다. 디스크의 개수를 늘릴수록 저장공간의 효율성이 높아진다.
⑦ RAID-6
RAID-5에서 2차 패리티 구성을 포함하면서 매우 높은 고장대비 능력을 발휘하게 된다. RAID-5에 비해 디스크의 공간 효율성이 떨어지고, 복잡한 알고리즘으로 인해 처리속도는 느려지지만 데이터에 대한 신뢰도가 상승하게 된다.
2개의 패리티를 사용하므로 최소 4개의 디스크로 구성해야 한다.
→ 디스크를 4개로 구성했을 때 50% / 5개로 구성했을 때 40% / 6개로 구성했을 때 33.3%가 패리티 공간으로 쓰인다.
parity를 2개 사용하기 때문에 2개의 하드디스크가 동시에 고장나더라도 데이터를 안전하게 복구할 수 있게한다.
⑧ RAID-7
하드웨어 컨트롤러에 내장되어 있는 실시간 운영체제(Real-Time Operating System)을 사용하여 구성하는 방식이다.
스트라이핑 기술과 parity가 적용되어 있다. 속도가 빠른 버스를 이용하고 독자적인 여러 특성들을 제공한다.
* 버스(bus)
컴퓨터 안의 부품들 사이 또는 컴퓨터들 사이에 정보와 데이터를 전송하는 통로(통신 시스템); 정보, 신호를 주고받기 위한 통로
출처
ko.wikipedia.org/wiki/%EB%B2%84%EC%8A%A4_(%EC%BB%B4%ED%93%A8%ED%8C%85)
⑨ RAID 0+1
디스크 2개를 RAID-0의 스트라이핑 기술로 구성하고, RAID-1의 미러링으로 다시 구성하는 방식이다.
최소 4개의 디스크가 필요하다. 6개의 디스크의 경우에는 보통 3개를 RAID-0으로 구성하고 난 후에 다시 RAID-1로 미러링해 구성한다.
데이터 "ABCDEFGH"를 우선 스트라이핑 하여 디스크(1)과 (2)에 A/B C/D E/F G/H로 저장하고, 이를 미러링하여 디스크(3)과 디스크(4)에 중복 저장하게 한다.
⑩ RAID 10 (1+0)
RAID 0+1의 반대 개념으로, 디스크 2개를 먼저 미러링으로 구성한 후에 다시 스트라이핑 하는 방식이다.
최소 4개의 디스크가 필요하다. 6개의 디스크가 주어지는 경우에는 보통 2개씩 미러링을 한 후, 스트라이핑해 구성한다.
RAID 01과 RAID 10에서 6개의 디스크인 경우에 대한 설명은 아래 블로그의 그림으로 그 차이점이 잘 나타난다.
www.thegeekstuff.com/2011/10/raid10-vs-raid01/
⑪ RAID-53
RAID-3 방식에 별도로 스트라이프 어레이를 구성하는 방식이다. RAID 03으로 부르기도 한다.
기록 방식 | parity/ECC | 기타 | |
RAID-0 | 스트라이핑 기술 | - | |
RAID-1 | 미러링 기술 | - | |
RAID-2 | 스트라이핑 기술 | ECC | |
RAID-3 | 스트라이핑 기술 | parity | |
RAID-4 | 스트라이핑 기술(블록 단위) | parity | - 블록 단위로 구성 |
RAID-5 | 스트라이핑 기술 | parity(분산) | - 최소 3개의 디스크 필요 - 디스크의 개수에 따른 공간 효율성 차이 |
RAID-6 | 스트라이핑 기술 | 2차 parity(분산) | - 최소 4개의 디스크 필요 (2개의 parity) - 디스크의 개수에 따른 공간 효율성 차이 |
RAID-7 | |||
RAID 0+1 | 스트라이핑 기술 미러링 기술 |
- 최소 4개의 디스크 필요 | |
RAID-10 | 미러링 기술 스트라이핑 기술 |
- 최소 4개의 디스크 필요 | |
RAID-53 | 스트라이핑 기술 | parity | - 최소 6개의 디스크 필요 - 스트라이핑 후 |
악
RAID 0+1과 RAID 1+0이 너무 헷갈린다...
혹시 RAID 0+1과 RAID 1+0의 정리가 잘못되었거나, 정확히 이해하신 분이 이 허접한 정리를 보신다면.. 가르쳐주세요.. ╯︿╰
::참고::
CentOS 7으로 리눅스 마스터 1급 정복하기 (정성재/북스홀릭)
이것이 리눅스다 with RedHat CentOS 8 (우재남/한빛미디어)
오라클 웹페이지(docs.oracle.com/cd/E19683-01/817-2530/6mi6gg86c/index.html)
위키피디아(ko.wikipedia.org/wiki/RAID) (en.wikipedia.org/wiki/Nested_RAID_levels)
'System > OS - Linux' 카테고리의 다른 글
부트 매니저 - LILO, GRUB (0) | 2021.01.22 |
---|---|
LVM (0) | 2021.01.21 |
[CentOS 8] APM 웹 서버 (0) | 2020.12.10 |
XRDP 서버 (0) | 2020.11.18 |
OpenSSH 서버 (0) | 2020.11.18 |