RAID (Redundant Array of Inexpensive / Independent Disks)
RAID는 여러 개의 하드디스크를 하나의 하드디스크처럼 사용하는 방식으로, 비용을 절감하면서도 신뢰성을 높여 성능까지 향상시킬 수 있습니다. RAID는 일반적으로 하드웨어 RAID와 소프트웨어 RAID로 나뉩니다.
유형
1.하드웨어 RAID
하드웨어 RAID는 하드웨어 제조업체에서 여러 개의 하드디스크를 연결한 장비를 만들어 그 자체를 공급하는 것이기 때문에 보다 안정적이고, 각 제조업체에서 기술 지원을 받을 수 있기 때문에 많이 선호되는 방법입니다.
고가의 경우 SA_SCSI 하드디스크를, 중저가의 경우 SATA 하드디스크를 사용해 만들어집니다.
※ SATA와 SCSI는 하드웨어 인터페이스의 일종입니다.
- SATA (Serial ATA) : 하드디스크와의 데이터 전송을 주목적으로 만든 컴퓨터 버스
- SCSI (Small Computer System Interface) : 컴퓨터에 주변 기기를 연결할 때 직렬 방식으로 연결하기 위한 표준
2. 소프트웨어 RAID
고가 하드웨어 RAID의 대안으로, 하드디스크만 여러 개 있으면 운영체제에서 지원하는 방식으로 RAID를 구성하는 방법을 의미합니다. 하드웨어 RAID와 비교하면 신뢰성과 속도 등이 떨어질 수 있지만, 보다 저렴한 비용으로 좀 더 안전하게 데이터를 저장할 수 있습니다.
RAID 레벨
RAID는 구성하는 방식에 따라 Linear RAID, RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5의 7가지로 분류할 수 있습니다.
Linear RAID 와 RAID 0
두 방식 모두 최소 2개의 하드디스크로 1개의 볼륨을 구성한다는 점은 비슷하지만 저장되는 방식에 차이가 있습니다.
Linear RAID의 경우 첫 번째 하드디스크부터 사용하기 시작하여 용량이 완전히 사용되야 다음 하드디스크를 사용할 수 있습니다.
RAID 0 방식은 모든 하드디스크를 동시에 사용합니다. 입력되는 데이터를 연결된 하드디스크의 개수(N)로 나누어 각각 하드디스크에 저장하기 때문에 Linear RAID에 비해 속도는 N 배 향상됩니다.이렇듯 여러 하드디스크에 동시에 저장되는 방식을 스트라이핑 Stripping 방식이라고 부릅니다.
다만 RAID 0 방식은 구성된 여러 하드디스크 중 하나라도 고장날 경우 모든 데이터가 소실되기 때문에 주로 '빠른 성능을 요구하되, 혹시 전부 잃어버려도 큰 문제가 되지 않는 자료'를 저장하는 데 적절합니다.
반면 Linear RAID는 각 하드디스크의 용량이 달라도 전체 용량을 문제 없이 사용할 수 있어 공간 효율성이 100% 입니다. 일례로, 100 TB와 1TB의 하드디스크를 RAID로 구성할 때, RAID 0 방식은 1TB 하드디스크의 한계로 총 2 TB 밖에 사용할 수 없지만, Linear RAID 방식을 사용하면 총 101 TB의 용량을 온전히 사용할 수 있습니다.
※ Linear RAID를 제외한 나머지 RAID 0, 1, 5, 6, 10을 구성할 때는 동일한 용량의 하드디스크를 사용하는 것이 일반적입니다.
RAID 1
RAID 1 방식의 핵심은 '미러링 Mirroring'으로, 연결된 모든 하드디스크에 동일한 데이터를 복제해놓는 것으로, 데이터를 저장하는 데 2배의 용량이 사용됩니다. 즉, 총 하드디스크 용량의 절반 밖에 사용되지 못합니다.
RAID 1의 장점은 2개의 하드디스크 중 하나가 고장나도 데이터가 손상되지 않는다는 것으로, 이를 '결함 허용 Fault-tolerance 을 제공한다'라고 표현합니다.
RAID 1 방식은 주로 '하드디스크가 고장나도 없어져서는 안될 중요한 데이터가 있을 때' 고려되는 것으로, 비용이 많이 들더라도 중요도가 높은 데이터들을 저장할 때 사용합니다.
저장 속도의 경우 똑같은 데이터를 2번 저장하는 것이지만 2배의 시간이 걸리진 않고, Linear RAID와 동일하게 하나의 디스크에 저장하는 시간만큼 시간이 소요됩니다.
RAID 0 | RAID 1 | |
성능 (속도) | 뛰어남 | 변화 없음 |
데이터 안정성 (결함 허용) | 보장 못함 | 보장함 |
공간 효율성 | 좋음 | 나쁨 |
RAID 5
RAID 5는 RAID 0과 1의 장점만 합쳐 'RAID 1처럼 안정성이 어느 정도 보장되면서 RAID 0처럼 공간 효율성도 좋은 방식'입니다. RAID 5는 최소한 3개 이상의 하드디스크가 있어야 구성할 수 있으며, 대부분 5개 이상의 하드디스크로 구성합니다.
하드디스크에 오류가 발생하면 패리티 Parity를 통해 데이터를 복구합니다. 짝수 패리티는 패리티의 일종으로, 각 행이 짝수가 되도록 만들기 위해 숫자를 채워 넣는 것입니다.
N 개의 하드디스크 중 각 행마다 하드디스크를 번갈아가며 비우고, 그 빈 칸을 나머지 N-1개의 하드디스크에 저장된 값들의 총합이 짝수가 되는 값을 저장합니다.
패리티를 사용할 경우 특정 단일 하드 디스크가 고장나더라도 나머지 N-1개의 하드디스크에 저장된 값들을 통해 소실된 내용을 유추할 수 있게 되어 원래 데이터를 그대로 사용할 수 있습니다.
RAID 5의 장점은 '어느 정도 결함을 허용하며 저장 공간의 효율도 좋다'는 것으로, 구성된 하드디스크의 개수가 늘 수록 가용 용량이 늘어나 저장 공간의 효율이 높아집니다.
RAID 6
RAID 6 방식은 RAID 5 방식을 개선한 것으로 2개의 패리티를 사용하며, 그로 인해 최소 4개의 하드디스크로 구성되야 합니다.
공간 효율은 RAID 5보다 낮지만 2개의 하드 디스크가 고장나도 데이터에는 이상이 없기 때문에 데이터의 신뢰도는 더욱 높아집니다. 또한 패리티를 2개 생성해야 하므로 내부적인 쓰기 알고리즘이 복잡해져 RAID 5에 비해 성능은 약간 떨어집니다.
RAID 10
RAID 10은 RAID 0과 RAID 1을 조합한 것으로, 성능과 안전성을 모두 고려한 방식입니다.
최소 4개의 디스크가 필요하며, 데이터는 먼저 미러링되고 그 후 스트라이핑 되어 성능과 안전성을 동시에 확보합니다. 안전성과 성능 모두 뛰어나지만, 디스크 사용량이 높아집니다.
Q. RAID란 무엇이며, RAID를 각 레벨별로 설명해주세요.
RAID는 Redundant Array of Independent Disks의 약자로, 여러 개의 하드 디스크 드라이브를 하나의 논리적인 저장장치로 묶어 데이터를 분산하거나 중복 저장함으로써 성능 향상과 데이터의 안전성을 동시에 확보하는 기술입니다. RAID는 여러 레벨로 구분되며, 각 레벨은 다양한 데이터 보호 및 성능 향상 방식을 제공합니다.
RAID 0은 Striping 방식으로 데이터를 여러 디스크에 나눠 저장하여 성능을 향상시키는 데 주력합니다. 데이터가 여러 디스크에 분산되기 때문에 동시에 여러 디스크에서 읽고 쓰기가 가능하므로 높은 성능을 제공합니다. 하지만, 어느 하나의 디스크라도 손상되면 전체 데이터가 손실되는 취약점이 존재합니다.
RAID 1은 Mirroring 방식으로 모든 데이터를 동시에 두 개 이상의 디스크에 복사하여 저장하는 방식으로, 데이터의 안전성을 강조합니다. 모든 데이터가 최소한 두 개의 디스크에 저장되기 때문에 한 디스크가 손상되어도 나머지 복제된 데이터를 통해 복구가 가능합니다. 읽기 성능은 향상되지만, 쓰기 성능은 RAID 0 보다 낮을 수 있습니다.
RAID 5은 Strip with Parity 방식으로 데이터와 패리티 정보를 번갈아가며 디스크에 저장하는 방식으로, 성능 향상과 데이터의 안전성을 동시에 제공합니다. 각 디스크에는 데이터와 패리티 정보가 번갈아가며 저장되므로 한 디스크가 손상되어도 패리티 정보를 통해 데이터를 복구할 수 있습니다. 최소 3개의 디스크가 필요하며, 쓰기 성능은 RAID 0에 비해 낮지만, 안전성이 향상됩니다.
RAID 6는 Strip with Double Parity 방식으로 RAID 5와 유사하지만, 두 개의 패리티 정보를 사용하여 더 높은 데이터 안전성을 제공합니다. 최소 4개의 디스크가 필요하며, 두 디스크의 동시 손상까지도 복구할 수 있는 높은 안전성을 제공합니다. 쓰게 성능은 RAID 5에 비해 더욱 떨어지지만, 안전성은 높아집니다.
RAID 10은 Striping과 Mirroring 방식으로 RAID 0과 RAID1을 조합한 방식으로, 성능과 안전성을 모두 고려한 방식입니다. 최소 4개의 디스크가 필요하며, 데이터는 먼저 mirroring되고 그 후 스트라이핑되어 성능과 안전성을 동시에 확보합니다. 안전성과 성능 모두 뛰어나지만, 디스크 사용량이 높아집니다.
'CS > 운영체제' 카테고리의 다른 글
[Linux] 파일 시스템 관련 명령어 (0) | 2023.12.20 |
---|---|
[Linux] LVM이란? (0) | 2023.11.22 |
[OS] 프로세스와 쓰레드에 대하여 (0) | 2023.10.19 |
[Linux] Linux 파일시스템 inode 정리 (0) | 2023.10.16 |
[Linux] 리눅스 파티션과 포트 (0) | 2023.10.16 |