RAID의 목적과 종류
RAID의 목적은 크게 세 가지로 볼 수 있다. 첫째는 여러 개의 디스크 모듈을 하나의 대용량 디스크처럼 사용할 수 있도록 한다는 것이다. 두 번째는 여러 개의 디스크 모듈에 데이터를 나누어서 한꺼번에 쓰고 한꺼번에 읽는 식으로 IO속도를 높인다는 것이다. 마지막으로 여러 개의 디스크를 모아서 하나의 디스크로 만들었으니 그 중 하나 혹은 그 이상의 디스크에 장애가 나더라도 최소한 데이터가 사라지는 것은 방지하자는 것이 그 목적이라고 할 수 있다. 이러한 RAID에는 몇 가지 종류가 있다. RAID 레벨이라고 하는 것이 그것인데 RAID-0, RAID-1 이런 식으로 뒤에 번호가 붙는다. RAID 레벨에는 0부터 7까지가 있고 이들을 조합한 것이 몇 가지가 있다.
RAID의 목적은 크게 세 가지로 볼 수 있다. 첫째는 여러 개의 디스크 모듈을 하나의 대용량 디스크처럼 사용할 수 있도록 한다는 것이다. 두 번째는 여러 개의 디스크 모듈에 데이터를 나누어서 한꺼번에 쓰고 한꺼번에 읽는 식으로 IO속도를 높인다는 것이다. 마지막으로 여러 개의 디스크를 모아서 하나의 디스크로 만들었으니 그 중 하나 혹은 그 이상의 디스크에 장애가 나더라도 최소한 데이터가 사라지는 것은 방지하자는 것이 그 목적이라고 할 수 있다. 이러한 RAID에는 몇 가지 종류가 있다. RAID 레벨이라고 하는 것이 그것인데 RAID-0, RAID-1 이런 식으로 뒤에 번호가 붙는다. RAID 레벨에는 0부터 7까지가 있고 이들을 조합한 것이 몇 가지가 있다.
■ RAID-0
여러 개의 디스크 모듈에 데이터를 분산 저장하는 기술을 스트라이핑(striping)이라고 한다. RAID-0은 단순한 스트라이핑이다. 10개의 100GB 용량 디스크를 하나의 1TB 디스크로 묶어서 RAID-0를 적용할 수 있다. 10GB짜리 파일 하나를 1개의 디스크에 저장하는 것보다는 10개의 디스크에 동시에 나누어 저장하고 한꺼번에 읽어들이는 것이 빠르다. 언듯보면 10배 빠를 것 같기도 하다. 만일 다섯번째 디스크에 장애가 난다면 10개 디스크에 저장된 모든 데이터는 사라진다. 이것이 RAID-0다. 실제로 RAID-0만으로 구성된 스토리지는 주변에서 찾기 쉽지 않다. RAID-0만으로는 사용하지 않는다고 보면 된다. 단, 이후에 설명하는 모든 RAID레벨은 기본적으로 RAID-0를 포함한다고 보면 된다. 데이터를 분산 저장한다는 개념은 누가 보아도 명백히 훌륭하기 때문이다.
■ RAID-1
그렇다면 어떻게 해야 디스크 모듈의 장애로 인해 데이터가 사라지는 경우를 막을 수 있을까. 이것을 연구한 것이 RAID-0를 제외한 모든 종류의 RAID가 고민하는 부분이고 각각 다른 접근방식을 택하고 있다. 가장 단순하면서도 가장 강력한 방법이 RAID-1이다. RAID-1은 미러링(mirroring)이라고도 하는데, 말 그대로 완전히 동일한 내용의 디스크 모듈을 두 개씩 가져가는 것이다. 100GB 디스크 모듈 10갸로 500GB의 대용량 디스크를 만들 수 있다. 각 모듈이 두개씩 한쌍이 되기 때문에 실제 가용량은 반밖에 되지 않는다. 이것이 RAID-1의 단점이다. 원하는 만큼의 용량을 구성하고자 할 때 가장 돈이 많이 든다는 것이다. 어떤 디스크에 장애가 나도 데이터는 멀쩡히 살아 있게 된다. 단, 하나의 쌍으로 이루어진 디스크 두 개가 도잇에 장애가 난다면 역시 속수 무책이다.
■ RAID-4
RAID-1은 너무 비싸다. 디스크를 반밖에 사용하지 못하기 때문에 가격대 성능비가 떨어진다고 할 수 있다. 그래서 연구해낸 것이 패리티(Parity)라는 것이다. 각 디스크에 데이터를 분산 저장할 때 저장되는 데이터들을 특정 연산을 한 결과 값이 패리티 데이터이다. 이러한 패리티 데이터를 별도의 패리티 디스크에 저장하는 것이 RAID-4이다. 데이터 디스크와 패리티 디스크가 독립적이기 때문에 불륨을 확장할 때 별도의 데이터 백업과 복구 과정을 없앨 수 있는 유연성을 가지고 있는데 이것이 RAID-4의 최대 장점이다. 하지만 문제는 한 개의 디스크 장애에 대해서는 완벽하게 대처할 수 있지만 동시에 두개의 디스크에 장애가 나면 데이터가 손실된다. 또 하나의 문제는 래피티 디스크에 병목 현상의 발생할 소지가 매우 많고 이로써 전체 스토리지의 성능 저하를 가져온다는 것이 가장 큰 단점이다. 이 병목현상을 근본적으로 해결하는 원천 기술을 보유하지 못한 스토리지 업체들이 RAID-4를 채택하지 못하는 이유가 여기에 있다. 이 병목현상만 없앨 수 있다면 RAID-4는 가장 장점이 많은 RAID방식이라고 할 수 있다.
■ RAID-5
RAID-4의 병목현상을 해결하기 위해 나온 것이 RAID-5다. 별도의 패리티 디스크를 가지고 있지 않고 모든 패리티 데이터를 데이터 디스크에 분산 저장하는 것이다. 이렇게 하면 패리티 디스크 자체가 없기 때문에 병목 현상 자체도 없어지는 것은 당연하다. 하지만 동시에 두 개의 디스크에 장애가 나면 데이터를 손실하는 문제는 여전히 가지고 있고 더군가나 rAID-4가 가지고 있는 볼륨 확장의 유연성은 사라진다. 디스크를 추가할 때 모든 데이터에 대한 패리티 데이터를 다시 연산해 재기록 해야 하기 때문이다. 하지만 현재까지는 세계적으로 가장 많이 사용되는 RAID레벨이기도 하다.
■ RAID-DP
RAID-DP(Dual Parity)는 기본적으로 RAID-4가 가지는 모든 장점을 그대로 가져간다. RAID-DP가 RAID-4를 기반으로 만들어졌기 때문이다. 이중 패리티라는 말 자체가 알려주듯이 패리티를 이중으로 가져간다는 것이다. 좀 더 정확히 말하면 패리티 디스크가 하나의 RAID 그룹에 두 개가 들어간다. 그렇다면 두 개의 디스크에 장애가 발생해도 데이터는 말쩡히 살아 있을 수 있다. 한 개의 디스크에 장애가 생기면 RAID-4나 RAID-5에는 보통 여유분의 디스크인 스페어 디스크(Spare Disk)가 있기 때문에 자동으로 이 스페어 디스크에 기존의 데이터 정보를 기초로 한 패리티 연산을 통해 그대로 원래의 데이터를 100% 살려 낼 수 있다. 문제는 이 데이터를 살려내는 시간 동안 또 다른 디스크가 장애가 나는 최악의 사태가 흔하지는 않지만 발생은 한다는 것이다. 더군다나 요즘처럼 해가 갈수록 단위 디스크 모듈의 크기가 날로 증가하는 추세에 있어서 이러한 데이터 재생 시간도 비례해서 증가하게 된다. 단순한 확률적인 계산으로 따지면 RAID-DP는 RAID-5에 비해 70만 배 정도 안정성이 향상된다. 물론 어디까지나 확률적인 문제이다. 그럼 여기서 한가지 의문이 생긴다. 일반적으로 대용량의 볼륨은 몇 개의 RAID그룹으로 나뉘게 된다. RAID-4의 예를 들면, 파이버 채널 기반의 스토리지를 기준으로 데이터 디스크 7개에 패리티디스크 1개의 8개 디스크를 하나의 RAID그룹으로 묶는 것이 일반적이다. 여기에 RAID-DP를 적용하면 데이터 디스크 6개에 패리티 디스크 2개가 돼 결국 디스크 한 개의 용량만큼 가용량이 줄어들게 된다. 하지만 실제적으로는 그렇지 않다. RAID-DP를 적용할 때에는 데이터 디스크 12개에 패리티 디스크 2개를 하나의 RAID그룹으로 묶는 것이 권장사항이다. 그렇다면 결국 가용할 수 있는 데이터 공간은 동일하고 안정성은 훨씬 향상되는 두 마리 토끼를 동시에 잡을 수 있게 된다.
■ RAID-DP 적용의 당위성
그렇다면 지금 사용하고 있는 스토리지에 RAID-DP를 바로 적용해야 할까. 지금까지도 잘 쓰고 있었는데 갑자기 RAID레벨을 바꾸는게 좀처럼 쉽지 않을 것이다. RAID-1을 사용하다가 RAID05로 바꾼다면 볼륨 전체의 데이터를 백업한 후에 해당 볼륨을 파괴하고 RAID-5로 다시 재고성 한 후에 데이터를 복원시키는 '엄청난' 작업이 필요하다. 물론 반대의 경우도 마찬가지다. 그동안에 서비스가 중지돼야 함은 물론이거니와 이러한 작업을 좋아하는 운영자는 아무도 없을 것이다. RAID-DP를 사용하고자 한다면 OS가 DataONTAP 6.5인지 확인해야 한다. 만약 그렇다면 데이터의 백업과 복구, 볼륨의 파괴와 재생성, 서비스의 중단과 같은 만나고 싶지 않은 일들은 결코 일어나지 않는다. 볼륨의 RAID만 RAID-DP로 바꿔주는 명령 한 줄이면 바로 RAID-DP로 바뀌게 된다. 어떤 이유에서건 RAID-DP에서 RAID-4로 돌아가는 일 또한 같은 과정을 밟는다. 물론 이중 패리티가 저장될 디스크 여유분이 있어야 함은 물론이다.
■ RAID-DP와 2차 스토리지
2차 스토리지라는 것은 테이프 라이브러리나 주크박스와 같은 용량 대비 저렴한 저장매체의 단점, 즉 속도의 문제를 해결하기 위해 대안으로 나온 디스크 기반의 백업 솔루션이다. 보통 우리가 스토리지라고 부르는 것을 1차 스토리지라고 한다면 2차 스토리지와 1차 스토리지의 가장 큰 차이점은 가격을 낮추기 위해 파이버채널 디스크나 SCSI 디스크 대신에 ATA 디스크를 사용한다는 것이다. 파이버채널 디스크가 144GB모듈까지 나온데 비해 ATA 디스크는 320GB모듈까지도 사용하고 있다. 이렇게 단위 디스크 모듈이 커지는게 문제다. 용량 면에서는 대단히 이익인건 틀림없는 사실이지만 앞에서도 언급했듯이 디스크 모듈에 장애가 발생했을 때 데이터 재생 시간이 오래 걸린다는 것이다. 데이터 재생이 다 마치기 전에 또 하나의 디스크에 장애가 난다면 데이터가 모두 사라진다는데 문제가 있다. 대부분이 ATA 디스크를 사용하는 2차 스토리지는 성능보다는 안정성을 최우선으로 생각한다. 그렇다면 RAID-1을 사용하면 되지 않을까. 이것은 2차 스토리지를 사용하는 이유에 근본적으로 위배된다. 가격이 비싸지기 때문이다. RAID-5를 사용하면 어떨까. 지금까지는 선택의 여지가 없었다. RAID-DP를 적용한다면 가격과 안정성 모두를 만족시킬 수 있게 될 것이다.
여러 개의 디스크 모듈에 데이터를 분산 저장하는 기술을 스트라이핑(striping)이라고 한다. RAID-0은 단순한 스트라이핑이다. 10개의 100GB 용량 디스크를 하나의 1TB 디스크로 묶어서 RAID-0를 적용할 수 있다. 10GB짜리 파일 하나를 1개의 디스크에 저장하는 것보다는 10개의 디스크에 동시에 나누어 저장하고 한꺼번에 읽어들이는 것이 빠르다. 언듯보면 10배 빠를 것 같기도 하다. 만일 다섯번째 디스크에 장애가 난다면 10개 디스크에 저장된 모든 데이터는 사라진다. 이것이 RAID-0다. 실제로 RAID-0만으로 구성된 스토리지는 주변에서 찾기 쉽지 않다. RAID-0만으로는 사용하지 않는다고 보면 된다. 단, 이후에 설명하는 모든 RAID레벨은 기본적으로 RAID-0를 포함한다고 보면 된다. 데이터를 분산 저장한다는 개념은 누가 보아도 명백히 훌륭하기 때문이다.
■ RAID-1
그렇다면 어떻게 해야 디스크 모듈의 장애로 인해 데이터가 사라지는 경우를 막을 수 있을까. 이것을 연구한 것이 RAID-0를 제외한 모든 종류의 RAID가 고민하는 부분이고 각각 다른 접근방식을 택하고 있다. 가장 단순하면서도 가장 강력한 방법이 RAID-1이다. RAID-1은 미러링(mirroring)이라고도 하는데, 말 그대로 완전히 동일한 내용의 디스크 모듈을 두 개씩 가져가는 것이다. 100GB 디스크 모듈 10갸로 500GB의 대용량 디스크를 만들 수 있다. 각 모듈이 두개씩 한쌍이 되기 때문에 실제 가용량은 반밖에 되지 않는다. 이것이 RAID-1의 단점이다. 원하는 만큼의 용량을 구성하고자 할 때 가장 돈이 많이 든다는 것이다. 어떤 디스크에 장애가 나도 데이터는 멀쩡히 살아 있게 된다. 단, 하나의 쌍으로 이루어진 디스크 두 개가 도잇에 장애가 난다면 역시 속수 무책이다.
■ RAID-4
RAID-1은 너무 비싸다. 디스크를 반밖에 사용하지 못하기 때문에 가격대 성능비가 떨어진다고 할 수 있다. 그래서 연구해낸 것이 패리티(Parity)라는 것이다. 각 디스크에 데이터를 분산 저장할 때 저장되는 데이터들을 특정 연산을 한 결과 값이 패리티 데이터이다. 이러한 패리티 데이터를 별도의 패리티 디스크에 저장하는 것이 RAID-4이다. 데이터 디스크와 패리티 디스크가 독립적이기 때문에 불륨을 확장할 때 별도의 데이터 백업과 복구 과정을 없앨 수 있는 유연성을 가지고 있는데 이것이 RAID-4의 최대 장점이다. 하지만 문제는 한 개의 디스크 장애에 대해서는 완벽하게 대처할 수 있지만 동시에 두개의 디스크에 장애가 나면 데이터가 손실된다. 또 하나의 문제는 래피티 디스크에 병목 현상의 발생할 소지가 매우 많고 이로써 전체 스토리지의 성능 저하를 가져온다는 것이 가장 큰 단점이다. 이 병목현상을 근본적으로 해결하는 원천 기술을 보유하지 못한 스토리지 업체들이 RAID-4를 채택하지 못하는 이유가 여기에 있다. 이 병목현상만 없앨 수 있다면 RAID-4는 가장 장점이 많은 RAID방식이라고 할 수 있다.
■ RAID-5
RAID-4의 병목현상을 해결하기 위해 나온 것이 RAID-5다. 별도의 패리티 디스크를 가지고 있지 않고 모든 패리티 데이터를 데이터 디스크에 분산 저장하는 것이다. 이렇게 하면 패리티 디스크 자체가 없기 때문에 병목 현상 자체도 없어지는 것은 당연하다. 하지만 동시에 두 개의 디스크에 장애가 나면 데이터를 손실하는 문제는 여전히 가지고 있고 더군가나 rAID-4가 가지고 있는 볼륨 확장의 유연성은 사라진다. 디스크를 추가할 때 모든 데이터에 대한 패리티 데이터를 다시 연산해 재기록 해야 하기 때문이다. 하지만 현재까지는 세계적으로 가장 많이 사용되는 RAID레벨이기도 하다.
■ RAID-DP
RAID-DP(Dual Parity)는 기본적으로 RAID-4가 가지는 모든 장점을 그대로 가져간다. RAID-DP가 RAID-4를 기반으로 만들어졌기 때문이다. 이중 패리티라는 말 자체가 알려주듯이 패리티를 이중으로 가져간다는 것이다. 좀 더 정확히 말하면 패리티 디스크가 하나의 RAID 그룹에 두 개가 들어간다. 그렇다면 두 개의 디스크에 장애가 발생해도 데이터는 말쩡히 살아 있을 수 있다. 한 개의 디스크에 장애가 생기면 RAID-4나 RAID-5에는 보통 여유분의 디스크인 스페어 디스크(Spare Disk)가 있기 때문에 자동으로 이 스페어 디스크에 기존의 데이터 정보를 기초로 한 패리티 연산을 통해 그대로 원래의 데이터를 100% 살려 낼 수 있다. 문제는 이 데이터를 살려내는 시간 동안 또 다른 디스크가 장애가 나는 최악의 사태가 흔하지는 않지만 발생은 한다는 것이다. 더군다나 요즘처럼 해가 갈수록 단위 디스크 모듈의 크기가 날로 증가하는 추세에 있어서 이러한 데이터 재생 시간도 비례해서 증가하게 된다. 단순한 확률적인 계산으로 따지면 RAID-DP는 RAID-5에 비해 70만 배 정도 안정성이 향상된다. 물론 어디까지나 확률적인 문제이다. 그럼 여기서 한가지 의문이 생긴다. 일반적으로 대용량의 볼륨은 몇 개의 RAID그룹으로 나뉘게 된다. RAID-4의 예를 들면, 파이버 채널 기반의 스토리지를 기준으로 데이터 디스크 7개에 패리티디스크 1개의 8개 디스크를 하나의 RAID그룹으로 묶는 것이 일반적이다. 여기에 RAID-DP를 적용하면 데이터 디스크 6개에 패리티 디스크 2개가 돼 결국 디스크 한 개의 용량만큼 가용량이 줄어들게 된다. 하지만 실제적으로는 그렇지 않다. RAID-DP를 적용할 때에는 데이터 디스크 12개에 패리티 디스크 2개를 하나의 RAID그룹으로 묶는 것이 권장사항이다. 그렇다면 결국 가용할 수 있는 데이터 공간은 동일하고 안정성은 훨씬 향상되는 두 마리 토끼를 동시에 잡을 수 있게 된다.
■ RAID-DP 적용의 당위성
그렇다면 지금 사용하고 있는 스토리지에 RAID-DP를 바로 적용해야 할까. 지금까지도 잘 쓰고 있었는데 갑자기 RAID레벨을 바꾸는게 좀처럼 쉽지 않을 것이다. RAID-1을 사용하다가 RAID05로 바꾼다면 볼륨 전체의 데이터를 백업한 후에 해당 볼륨을 파괴하고 RAID-5로 다시 재고성 한 후에 데이터를 복원시키는 '엄청난' 작업이 필요하다. 물론 반대의 경우도 마찬가지다. 그동안에 서비스가 중지돼야 함은 물론이거니와 이러한 작업을 좋아하는 운영자는 아무도 없을 것이다. RAID-DP를 사용하고자 한다면 OS가 DataONTAP 6.5인지 확인해야 한다. 만약 그렇다면 데이터의 백업과 복구, 볼륨의 파괴와 재생성, 서비스의 중단과 같은 만나고 싶지 않은 일들은 결코 일어나지 않는다. 볼륨의 RAID만 RAID-DP로 바꿔주는 명령 한 줄이면 바로 RAID-DP로 바뀌게 된다. 어떤 이유에서건 RAID-DP에서 RAID-4로 돌아가는 일 또한 같은 과정을 밟는다. 물론 이중 패리티가 저장될 디스크 여유분이 있어야 함은 물론이다.
■ RAID-DP와 2차 스토리지
2차 스토리지라는 것은 테이프 라이브러리나 주크박스와 같은 용량 대비 저렴한 저장매체의 단점, 즉 속도의 문제를 해결하기 위해 대안으로 나온 디스크 기반의 백업 솔루션이다. 보통 우리가 스토리지라고 부르는 것을 1차 스토리지라고 한다면 2차 스토리지와 1차 스토리지의 가장 큰 차이점은 가격을 낮추기 위해 파이버채널 디스크나 SCSI 디스크 대신에 ATA 디스크를 사용한다는 것이다. 파이버채널 디스크가 144GB모듈까지 나온데 비해 ATA 디스크는 320GB모듈까지도 사용하고 있다. 이렇게 단위 디스크 모듈이 커지는게 문제다. 용량 면에서는 대단히 이익인건 틀림없는 사실이지만 앞에서도 언급했듯이 디스크 모듈에 장애가 발생했을 때 데이터 재생 시간이 오래 걸린다는 것이다. 데이터 재생이 다 마치기 전에 또 하나의 디스크에 장애가 난다면 데이터가 모두 사라진다는데 문제가 있다. 대부분이 ATA 디스크를 사용하는 2차 스토리지는 성능보다는 안정성을 최우선으로 생각한다. 그렇다면 RAID-1을 사용하면 되지 않을까. 이것은 2차 스토리지를 사용하는 이유에 근본적으로 위배된다. 가격이 비싸지기 때문이다. RAID-5를 사용하면 어떨까. 지금까지는 선택의 여지가 없었다. RAID-DP를 적용한다면 가격과 안정성 모두를 만족시킬 수 있게 될 것이다.