김성태 | 넷앱코리아 기술영업부 차장
대부분의 IT 전문가들은 RAID의 기본 기능에 대해 잘 알고 있다. 최근에는 향상된 디스크 I/O 성능과 데이터 보호를 위해 일부 운영체제에서는 RAID 0(단순 스트라이핑), RAID 1(미러링)과 같은 RAID의 기능들을 기본적으로 제공하고 있다. 심지어 패리티를 통한 데이터 복구 기능을 제공하는 RAID 4 혹은 RAID 5도 사용자들에게 익숙한 방식이 되고 있다.
그러나 아직까지도 '온라인 용량 확장'이나 '온라인 RAID 레벨 변경'과 같은 엔터프라이즈 급의 RAID 기능은 사용자에게 잘 알려지지 않았다. 하지만 최근들어 몇몇 하이엔드 RAID만으로 제한됐던 기능들이 SATA 스토리지 기술을 기반으로 점점 더 폭넓게 적용되고 있다. 이들 기능들에 대해 하나씩 살펴보도록 하겠다.
중단없는 확장을 위한 시스템 운영 중 교체, OCE, ORLM
다수의 향상된 RAID 기능들은 일반적으로 다른 기능들과 함께 사용되곤 한다. 예를 들어 시스템 운영 중 교체, 온라인 용량 확장(Online Capacity Expansion, OCE), 온라인 RAID 레벨 변경(Online RAID Level Migration, ORLM) 등의 기능과 함께 사용될 경우 서비스를 중지하지 않고도 스토리지 시스템의 주요 변경 사항을 적용할 수 있다.
시스템 운영 중 교체 기능은 물리적으로 디스크가 추가되거나 혹은 제거되도록 지원하며, 온라인 용량 확장 기능은 새롭게 추가된 디스크를 이용해 데이터 어레이가 확장되도록 지원한다. 온라인 RAID 레벨 변경 기능은 시스템 운영 중 새로운 RAID 형태로 RAID 어레이를 변경해준다.
시스템 운영 중에 중단없이 스토리지 시스템을 변경할 수 있는 이런 기능들은 변경 작업이 빈번한 조직에 매우 유용하다. 예를 들어 트랜잭션 처리(Transaction Processing)를 주 업무로 하는 작은 규모의 빠르게 성장하는 조직을 예를 들어보자. 이 경우, 일반적으로 중요한 데이터를 단순하게 2개의 디스크에 걸쳐 데이터를 미러링하는 RAID 1으로 데이터를 보호할 수 있다. 예산이 빠듯한 상황에서 비즈니스 규모는 더욱 커지고 트랜잭션의 수준이 증가함에 따라 디스크의 용량을 증설할 필요가 발생한다. 이때 패리티를 이용한 데이터 복구 방식인 RAID 4 혹은 RAID 5는 단지 3번째 디스크 하나만을 추가함으로써 기존 용량의 두 배를 제공할 수 있기 때문에 좋은 선택이 될 수 있다. 그러나 TP 서버는 어느 시점에서라도 절대로 오프라인이 되면 안되는 서비스다. 따라서 반드시 시스템 운영 중 교체, 온라인 용량 확장, 온라인 RAID 레벨 변경 등의 기능이 필요하다.
앞의 설명이 마음에 와 닿지 않는 독자들을 위해 일화 하나를 소개해 보고자 한다. 몇 년 전 추석 연휴 즈음, 한 고객이 중요한 데이터 보관을 위해 엔터프라이즈급의 스토리지 시스템을 RAID 1으로 구매했다. 구매 당시에는 데이터 보호 측면에서 RAID 1의 구성을 고려한 듯 했다. 논리적으로 사용할 수 있는 스토리지 공간은 구매한 스토리지 용량의 절반 수준이었지만 예상과 달리 데이터 증가가 빨라 곧 저장 공간이 부족한 상태에 도달했다. 그 고객이 내린 결정은 RAID 1을 공간 사용율이 높은 패리티 기반의 RAID로 변경하는 것이었다. 하지만 스토리지 시스템의 모든 데이터를 테이프를 이용해 백업받고(약 15시간 소요), 스토리지 시스템의 RAID를 변경해 다시 포맷하고(약 7시간 소요), 그리고 다시 데이터를 복구하고(약 10시간 이상 소요), 마지막으로 데이터를 확인하기까지 (약 2시간 소요) 작업 시간만 거의 이틀 정도가 필요했다. 결국 추석날 아침 간단하게 차례 지내는 시간만 제외하고는 모든 연휴 기간을 차가운 바람이 나오는 전산실에서 보내야만 했다.
만일 그 당시에 온라인 용량 증설이 가능했다면, RAID 레벨 변경 대신에 온라인 용량 확장을 선택했을 것이고, 그것이 불가능했다면 차선책으로 RAID 레벨 변경을 통한 저장 공간을 확보해 효율적으로 일을 진행했을 것이다.
RAID 기법 중에서는 RAID 4가 온라인 용량 확장을 지원하고 있다. (그림 1)에서 보는 것처럼 기존 데이터와 패리티로 구성돼 있는 RAID 그룹에 단순하게 모든 비트를 '0'으로 지정해, 기존 RAID 그룹에 온라인 중 추가하더라도 기존 데이터에는 전혀 영향을 미치지 않는다. 이는 하나 뿐만이 아니라 다수의 디스크를 추가하더라도 마찬가지다. 하나의 디스크의 온라인 용량 확장은 물론, 지금도 RAID 레벨을 온라인 중에 변경하는 것을 지원하는 스토리지는 현재 업계에 그리 많지 않다.
지난 기고에서도 언급했지만, 최근에는 대용량의 SATA 디스크 드라이브의 출시가 줄을 잇고 있다. 현재 단일 디스크로 500GB까지 출시됐다. 이런 대용량의 SATA 디스크로 RAID를 구성해 데이터를 저장할 때, 디스크의 손상이 발생할 수 있다. 이럴 경우 패리티에 의한 데이터 복구가 진행되는데, 소요 시간은 기존 작은 크기의 디스크를 구성할 경우보다 더 많은 시간이 소요된다. 또한 데이터 복구가 진행되는 동안 같은 RAID 그룹 내에 있는 또 다른 디스크의 장애가 발생하면 모든 데이터는 손실된다. 이 경우를 대비해 최근에는 패리티를 이중으로 구성하는 RAID DP 혹은 RAID 6가 출시됐다. 그래서 두 개의 디스크가 동시에 장애가 발생하더라도 데이터를 안전하게 보호할 수 있도록 지원한다.
하지만 이런 경우를 고려해보자. 초기에는 데이터의 중요도나 디스크의 손실률을 고려해 패리티를 이용한 방식의 RAID를 구성했으나, 그 데이터의 성격이 기업의 비즈니스 변화에 의해 더욱 중요한 데이터가 되고, 그 데이터를 보다 강하게 보호할 수 있는 RAID를 고려한다면 이중 패리티를 생각하게 될 것이다. 이 경우 온라인 중에 사용하던 RAID 그룹에 단순하게 하나의 디스크만을 추가해 RAID DP로 이중의 패리티를 구성할 수 있다면, 서비스의 지속성을 보장하면서 데이터를 더욱 신뢰성 있게 구성할 수 있을 것이다. 그러나 만일 단순 패리티로 구성됐던 RAID를 RAID 6로 변경하기 위해서는 앞서 언급한 대로 몇 시간의 데이터 백업, 하드 디스크 포맷, 데이터 리스토어 같은 시간을 소비하는 작업을 진행해야 할 것이다. 다시 한번 민족 최대의 명절을 차가운 전산실에서 보내야 하는 신세가 됨으로, ORLM의 중요성이 절로 생각날 것이다.
데이터 보호를 위한 N-웨이 미러링, 스플리팅, 하이딩 기능
다른 기능들과 함께 사용될 때 더욱 큰 힘을 발휘하는 기능들이 있다. 이 기능들은 악의적인 사용자, 우연한 사고에 의한 데이터 삭제 혹은 바이러스로부터 유발되는 시스템에 대한 위협으로부터 데이터를 보호할 수 있다. 이런 데이터 보호 기능들에는 N-웨이 미러링, 어레이 스플리팅(array splitting), 어레리 하이딩(array hiding) 등이 있다.
N-웨이 미러링은 단순한 2-웨이 미러링을 넘어 추가적인 데이터 세트의 생성을 지원한다. 어레이 스플리팅은 미러 중의 하나를 사용 중인 어레이에서 제거할 수 있도록 한다. 그리고 어레리 하이딩은 권한을 가진 관리자에게만 접근이 가능하도록 하고 사용자에게는 접근이 불가능하도록 지정해 데이터를 보호할 수 있다.
이런 기능들이 동시에 사용될 경우 시스템 관리자는 사용 중인 데이터 어레이의 안전한 백업을 생성할 수 있다. 일단 시스템 관리자는 N-웨이 미러링을 이용해 3-웨이 미러를 생성한다. 다음 어레이 스플리팅을 이용해 사용 중인 어레이로부터 미러 중에 하나를 제거한다(사용 중인 어레이는 미러 중에 하나가 제거된 이후에도 2-웨이 미러를 통해 데이터의 정합성을 유지할 수 있다). 마지막으로 스플릿(split) 미러를 숨김으로써, 다른 사용자나 운영 시스템이 그 데이터를 볼 수 없도록 한다. 데이터를 직접 볼 수 없기 때문에 데이터에 대한 삭제 위협으로부터 보호할 수 있다.
만일 사용 중인 어레이에 재해가 발생한다면 복구 방안은 매우 단순하다. 관리자는 손상된 어레이에 있는 손상된 데이터를 삭제하고, 감춰진 어레이를 드러나게 해 ORLM을 이용, 상태가 양호한 미러에 포함시키면 된다. 새롭게 투입된 데이터는 감춰지기 전까지만 데이터가 일치하기 때문에 그 시점 이후에 변경된 데이터는 반영되지 않았다는 것을 알아야 한다.
그외 유용한 기능들
·드라이브 로밍 기능
시스템 운영 중 교체 기능과 더불어 드라이브 로밍 기능은 RAID 컨트롤러에 연결돼 있던 드라이브들을 지속적으로 확인할 필요가 없기 때문에 시스템 간에 디스크 이동을 더욱 수월하게 한다. 드라이브 로밍 기능을 이용하면 시스템은 사용자를 위해 지속적으로 그 정보를 유지한다. 이것은 애플리케이션의 관점에서는 시스템 간에 대용량의 데이터를 빠르게 이동시켜야 할 경우에 매우 유용하다. 이런 애플리케이션에서는 네트워크를 통한 데이터 복제에 비해 매우 빠르게 드라이브를 이동시킬 수 있다.
·컨트롤러 스패닝 기능
컨트롤러 스패닝은 디스크들이 다수의 RAID 컨트롤러에 연결되도록 해주는 기능이다. 그렇게 함으로써 대용량의 어레이를 구성할 수 있도록 하며 높은 처리량을 제공할 수 있다. 예를 들어, 4개의 RAID 컨트롤러를 보유하고 있고 각각의 컨트롤러는 8개의 디스크 드라이브가 연결돼 있다고 가정할 때, 컨트롤러 스패닝은 모두 32개의 디스크 드라이브까지 확장 가능한 어레이를 생성할 수 있다. 또한 성능이 선형적으로 증가하기 때문에 단일 어레이에서 32개의 디스크를 동시에 운영할 수 있는 매우 높은 수준의 I/O 전송 성능을 지원한다.
·분산 스패어링 기능
분산 스패어링은 별도의 디스크 드라이브를 사용하지 않고 스패어 페일오버 드라이브를 생성하는 기법이다. 본질적으로 분산 스패어링은 충분한 디스크 공간을 선점하기 때문에 선점된 공간의 합은 어레이에서 대용량의 드라이브와 동일하다. 글로벌 혹은 전용 스패어링과 비교해 이 기능의 중요한 장점은 모든 드라이브가 사용 가능하며, 결과적으로 뛰어난 성능을 제공하게 된다는 것이다.
지금까지 3회에 걸쳐 RAID에 대한 전반적인 설명을 진행했다. RAID의 역사, 정의, 각각의 특징, 장단점, 애플리케이션별로 알맞은 RAID 타입 그리고 이번에 정리한 새로운 기능들까지 알아봤다. IT 업계 종사자라면 한번쯤은 다루는 내용인데도 그냥 쉽게 넘겼던 개념에 대한 정리였다. 이번 기회를 통해 이미 알고 있던 내용이지만 새로 소개된 기능들과 함께 다시 한번 잘 정리하기를 바란다.
출처 : on the NET