-
RAID란 무엇인가CS지식/운영체제 2021. 7. 15. 22:59
RAID는 자동으로 백업을 하고 장애가 발생하면 복구하는 시스템으로 동일한 규격의 디스크를 여러 개 모아 구성하며 장애가 발생했을 때 데이터를 복구하는 데 사용된다.
RAID는 왜 나오게 된 것일까?
요즘 시대에 아마도 휴대폰은 하나씩 소유하고 있을 것이다.
휴대폰 뿐만 아니라 PC, 카메라 등 다양한 개인 디지털 기기가 늘어나면서 개인 데이터의 크기도 급격히 증가하게 되었다.
이러한 데이터를 저장장치에 보관할 때는 백업을 해야한다.
그 이유는 하드디스크에 저장된 데이터가 영구적일 것 같지만 하드디스크도 수명이 존재하고 기타 저장매체에는 최대 사용 횟수가 정해져 있기 때문이다.
따라서 저장장치에 있는 중요한 데이터는 수시로 백업을 해주어야하는데 이를 수동으로 하면 매우 귀찮을 것이다.
또한 얼마나 자주해야하는지 어떠한 데이터를 백업해야할지 정하는 것도 어려운 일이다.
이러한 일을 해주기 위한 시스템으로 RAID가 나오게 된 것이다.
RAID의 원리는 하나의 원본 디스크와 같은 크기의 백업 디스크에 같은 내용을 동시에 저장하고 하나의 디스크가 고장 났을 때 다른 디스크를 사용하여 데이터를 복구하는 것이다.
이러한 방식을 미러링이라고 한다.
또한, RAID는 스트라이핑(striping)이라는 방식을 사용한다.
스트라이핑은 여러 디스크에 데이터를 동시에 저장하여 데이터의 입출력 속도를 높이는 방식이다.
즉, 데이터1, 2, 3, 4가 있다면 기존 방식은 한 개의 디스크에 데이터 한 개씩 네 번 반복하여 저장하는 것이지만
스트라이핑은 디스크 4개에 각각 데이터 하나씩 보내어 동시에 저장하는 방식이다.
RAID에는 여러 방식이 있는데 지금부터 대표적인 방식들을 알아보자.
1) RAID 0(스트라이핑)
RAID 0은 스트라이핑 방식을 지원하는 것으로 병렬로 연결된 같은 규격의 여러 개의 디스크에 데이터를 동시에 입출력할 수 있도록 구성된다.
RAID 0은 1개의 디스크로 구성된 일반 시스템보다 이론적으로는 입출력 속도가 n배 빠르다.
RAID 0의 단점은 장애 발생 시 복구하는 기능이 없기 때문에 장애가 발생하면 데이터를 잃는다는 것이다.
2) RAID 1(미러링)
RAID 1은 미러링 방식을 지원하는 것으로 하나의 데이터를 2개의 디스크에 나누어 저장하여 장애 시 백업 디스크로 활용한다.
RAID 1은 같은 크기의 디스크를 최소 2개 이상 필요로 하며 짝수 개의 디스크로 구성된다.
같은 데이터를 여러 디스크에 저장하기 때문에 장애 발생 시 미러링된 디스크를 활용하여 데이터를 복수할 수 있는 장점을 가지고 있다.
하지만 저장하는 데이터와 같은 크기의 디스크가 더 필요하기 때문에 비용이 증가하는 단점이 있다.
3) RAID 2
RAID 2는 오류를 검출하는 기능이 없는 디스크에 대해 오류 교정 코드(ECC)를 따로 관리하고 오류가 발생하면 ECC를 이용하여 디스크를 복구하는 기능을 한다.
오류 교정 코드는 오류가 발생했는지 확인하는 동시에 오류를 교정할 수 있는 코드로 대표적인 예로는 허밍코드가 있다.
오류 교정 코드를 별도의 디스크에 따로 보관하고 있다가 장애가 발생하면 오류 교정 코드를 이용하여 데이터를 복구하는 것이다.
기본적인 하드디스크의 데이터 저장 단위는 블록이지만 RAID 2에서는 데이터가 비트 단위로 저장된다.
비트 단위로 저장하는 이유는 각 비트의 오류 교정 코드를 구성하여 나중에 비트 단위로 복구하기 위해서이다.
RAID 2의 단점은 오류 교정 코드를 계산하는 데 많은 시간을 소비한다는 것이다.
4) RAID 3
RAID 3는 오류 검출 코드인 패리티 비트를 사용하여 데이터를 복구하는 시스템이다.
오류 검출 코드는 오류가 발생했는지 확인할 수 있는 코드로 대표적인 예로는 패리티 비트가 있다.
일반적인 하드디스크에는 오류 검출 코드가 없고 메모리의 경우에 오류 검출 코드인 패리티 비트를 가지고 있어 오류를 검출할 수 있지만 오류를 교정할 수는 없다.
그러면 어떻게 RAID 3는 오류 검출 코드인 패리티 비트를 가지고 오류를 복구할 수 있다는 것일까?
패리티 비트에는 짝수 패리티 비트와 홀수 패리티 비트가 있다.
짝수 패리티 비트는 1의 총 개수를 짝수로 만드는 것이고 홀수 패리티 비트는 1의 총 개수를 홀수로 만드는 것이다.
상황을 가정하여 어떻게 복구할 수 있는지 알아보자.
아래의 그림과 같이 4개의 디스크가 있고 별도의 디스크에 짝수 패리티 비트를 보관했다고 생각해보자.
이때 두 번째 디스크에 장애가 생긴 것을 감지했다면 우리는 짝수 패리티 비트와 나머지 디스크의 1의 개수를 파악하여 두 번째 디스크 값을 알 수 있다.
즉, 위의 그림에서는 두 번째 디스크 값이 1이 된다.
RAID 3는 섹터 단위로 데이터를 나누어 저장한다.
오류 검출에 사용하는 패리티 비트를 여러 섹터끼리 묶어서 구성하면 오류가 없는 섹터를 이용하여 오류가 있는 섹터의 데이터를 복원할 수 있는데 이를 N-way 패리티 비트 방식이라고 부른다.
일반적으로 오류 검출 코드의 크기가 오류 정정 코드보다 작기 때문에 추가되는 디스크의 양이 적다는 장점이 있다.
하지만 단점으로 N-way 패리티 비트를 구성하는 데 필요한 계산량이 많다는 것이다.
또한, 데이터를 읽거나 쓸 때 패리티 비트를 구성하기 위해 모든 디스크가 동시에 동작해야 하는 단점이 있다.
5) RAID 4
RAID 4는 RAID 3와 같은 방식이지만 처리하는 데이터가 블록 단위로 되어 있는 시스템이다.
RAID 4에서는 데이터를 하나의 디스크에 블록 단위로 저장하고 패리티 비트를 블록과 연결하여 구성한다.
이렇게 하나의 디스크에 저장되므로 데이터가 저장되는 디스크와 패리티 비트가 저장되는 디스크만 동작하는 것이 장점이다.
단점은 RAID 3와 마찬가지로 패리티 비트를 구성하는 데 필요한 계산량이 많다는 것이다.
6) RAID 5
RAID 5는 RAID 4와 같은 방법을 사용하지만 RAID 4의 치명적인 단점을 보완한 시스템이다.
RAID 4에서는 모든 패리티 비트가 하나의 디스크에 저장되기 때문에 입출력이 일어날 때마다 패리티 비트 디스크에 데이터가 저장되어 병목현상이 발생하는 단점이 존재한다.
이러한 병목현상을 해결하기 위해 RAID 5는 패리티 비트를 여러 디스크에 분산하여 구성한다.
이렇게 패리티 비트를 분산하여 저장함에 따라 병목현상이 해결되는 동시에 패리티 비트가 있는 디스크가 고장 나면 복구가 어렵다는 문제도 해결한다.
RAID 5의 단점은 한 디스크에 장애가 발생했을 때는 복구가 가능하지만 디스크 2개에 동시에 장애가 발생했을 대에는 복구가 불가능 하다는 것이다.
7) RAID 6
RAID 6는 RAID 5와 같은 방식이지만 패리티 비트가 2개 있는 시스템이다.
RAID 5의 단점을 보완하기 위해 패리티 비트를 2개사용하여 디스크 2개에 동시에 장애가 발생한 경우에 복구할 수 있다.
RAID 6의 단점은 패리티 비트를 2개씩 운영하기 때문에 계산량이 많다는 것과 추가적인 디스크가 필요하다는 것이다.
8) RAID 10
RAID 10은 빠른 입출력이 장점인 RAID 0과 복구 기능을 가진 RAID 1을 결합한 시스템이다.
RAID 10은 4개의 디스크를 2개로 묶어 RAID 1으로 구성하고 RAID 1으로 묶인 디스크를 RAID 0으로 묶는다.
RAID 10의 장점은 병렬로 데이터를 처리하여 입출력 속도를 높일 수 있고 장애 발생 시 미러링된 디스크로 복구가 가능하다는 것이다.
또한, 장애가 발생했을 경우에 일부 디스크만 중단하여 복구할 수 있다.
'CS지식 > 운영체제' 카테고리의 다른 글
쉽게 배우는 운영체제(저자 조성호) 후기 (0) 2021.07.18 디렉토리(directory)란 무엇인가 (0) 2021.07.17 스레싱(thrashing)이란 무엇인가 (0) 2021.07.13 세그멘테이션 기법이란 무엇인가 (0) 2021.06.24 페이징 기법이란 무엇인가 (0) 2021.06.21