EMC 의 Highend Storage 인 Symmetrix DMX3/4 에서 사용되는 Drive Sparing 에 대해 알아보도록 하겠습니다. 요새는 DMX 가 새로 들어가는 경우가 거의 없습니다만… 그냥 @.@
DMX3/4 에서 사용되는 Sparing 방식에는 두가지가 있습니다. Dynamic Sparing 과 Permanent Sparing 입니다. 이 Sparing 방식들은 기존의 RAID 프로텍션과 병행되어 사용됩니다. (당연한 이야기겠지만)
Sparing 의 장점은 다음과 같습니다.
- RAID Group 에서 다수의 디스크가 fault 되는 것을 방지
- 자동으로 Fault 될것으로 예상되는 디스크에 존재하는 데이터를 보호함.
- Spare 에 복사되는 데이터는 원본과 동일함을 보장
- 사용가능한 데이터 용량의 손실없이 데이터의 가용성을 높여줌.
- 사용자가 관여할 일이 없음.
EMC Symmetrix 시스템은 스스로 진단하고 실제 Fault 가 발생하기 전에 사전에 파트를 교체할수 있도록 지원합니다. Symmetrix 시스템의 OS 인 Enginuity 에서 물리 디스크를 진단하여 Fault 가 될 것으로 예상이 되면 Sparing 이 동작하도록 합니다. 이렇게 사전에 미리 Fault 시키는 과정에 대한 결정은 디렉터에서 관리하는 에러 통계와, 디스크에서 사용하는 마이크로프로세서의 자가진단 정보, 그리고 Active error 점검 시스템에 의하여 이루어집니다. 일단 용어부터 정리하고 가도록 하죠.
- 용어
BCV(Business Continuance Volume) : Symmetrix 시스템에서 사용하는 로컬 복제 솔루션인 TimeFinder/Mirror 에 의해 사용되는 특정 볼륨입니다. 즉 복제의 타켓볼륨입니다. 이 볼륨의 데이터는 백업이나 복구, 그리고 어플리케이션의 테스팅 용도로 사용합니다.
Data Drive : Hypervolume 들이 할당되어 있는 실제 물리 디스크입니다. 실제로 호스트에서 접근하는 볼륨이라고 할 수 있습니다. 보통 두개 내지는 그 이상의 물리 디스크에 할당되어 있는 Hypervolume 들로 Logical 볼륨을 만듭니다.
Dynamic Sparing : 물리 디스크에서 Fault 가 발생했을때 임시적인 데이터 프로텍션을 제공하는 기능입니다.
Hypervolume : Symmetrix 시스템에서 하나의 물리 디스크는 두개 내지는 그 이상의 Hypervolume 으로 쪼개집니다. 각각의 Hypervolume 은 로지컬 볼륨으로 묶입니다. 각각의 로지컬 볼륨들은 RAID 1, 5, 6 등 다양한 프로텍션 방식에 의해 보호됩니다. 물론 보호하지 않을수도 있지만 절대 권장하지 않죠. 구성하는 예를 들면 300GB 디스크는 6개의 50GB 크기의 Hypervolume 으로 쪼개지고, 그 6개의 Hypervolume 들로 100GB 크기의 로지컬 볼륨 3개를 생성할 수 있는거죠. 물론 실제로는 다수의 물리 디스크를 사용하기 때문에 다른 물리 드라이브에 위치한 Hypervolume 들로 로지컬 볼륨을 구성합니다.)
Mirror Positions : Symmetrix 시스템에서는 각각의 로지컬 볼륨에 대하여 최대 4개의 로지컬 mirror position 을 사용할 수 있습니다. 이 것들은 M1,M2,M3,M4 로 불립니다. RAID 1 과 5 에서는 두개의 Mirror position 을 사용하여, RAID 6에서는 한개를 사용합니다. EMC 에서 제공하는 다른 복제 솔루션(TimeFinder/Mirror 나 SRDF, 참고로 SRDF 는 원격 복제 솔루션입니다.) 등에서는 추가적인 mirror position 을 사용합니다. DMX 가 아닌 VMAX 에서는 Mirror Position 의 숫자가 다릅니다. 다른 글에서 설명하도록 하겠습니다. Dynamic Spare 이 로지컬 볼륨으로 invoked 되었 을 때에 하나의 Mirror Position 을 점유합니다. 다르게 말하면, 로지컬 볼륨은 반드시 여유분의 Mirror position 이 있어야 Dynamic spare 이 수행될 수 있다는 것입니다. 예를 들면, SRDF 로 복제되고 있는 RAID 1 볼륨은 3개의 Mirror Position 을 점유합니다. 하기에서 Dynamic spare 가 이 볼륨에 invoked 하게 되면 마지막 한개의 Mirror position 을 점유하는 것입니다.
Not Ready Spare : 원래는 데이터 디스크였으나 Permanent sparing 에 의해 교체가 되어 Spare 가 된 디스크. not ready flag 가 설정되며, 새로운 드라이브로 교체되기 전까지는 사용이 불가능함.
Permanent Sparing : 물리 디스크에서 Fault 가 발생하였을때 Spare 디스크로 영구적으로 교체가 되는 기능. 즉 Spare 디스크가 데이터 디스크가 되며 Fault 된 데이터 디스크가 not ready spare 가 됩니다.
Spare Drive : 유저가 액세스 할 수 없는 물리디스크이며 Dynamic 와 Permanent Sparing 에 의해 사용되도록 설정된 디스크.
Standard Volume : Symmetrix 에서 일반적으로 사용되는 디바이스이며, TimeFinder 에서 복구를 하지 않는 이상 BCV 볼륨의 소스볼륨입니다.
- Dynamic Sparing
Dynamic Sparing 은 RAID 1, 5 볼륨에서 사용할 수 있으며, RAID 6 와 VP(Virtual Provisioning) 볼륨에서는 지원되지 않습니다.
RAID 1 볼륨에서 dynamic spare 가 invoked 되었을 때, Fault 될 볼륨의 모든 데이터가 Dynamic spare 로 복제가 되며, spare 로 복제가 끝나기 전에 디스크가 fault 될 경우 복제가 아직 끝나지 않은 남은 데이터는 다른 Mirror 볼륨에서 복제가 됩니다.
RAID 5 볼륨에서 dunamic spare 가 invoked 되었을 때에는, Fault 될 RAID group 의 디스크의 데이터만 Spare 로 복제가 됩니다. spare 로 복제가 끝나기 전에 디스크가 fault 될 경우 남은 데이터는 RAID group 내의 다른 멤버들로부터 Spare 디스크로 rebuild 됩니다. 복제가 끝나면, spare 는 RAID 5 그룹의 멤버가 되며 XOR 연산을 수행할 수 있습니다. 하나의 Dynamic spare 만 요구됩니다.
과정
Symmetrix 시스템에서 Sparing 을 할지 말지는 디렉터의 에러통계와, 디스크의 마이크로프로세서의 자가테스트 정보, 그리고 Active error 체킹 시스템에 의해 결정됩니다. 디스크내에 에러가 지나치게 많이 발생하거나 하면 Symmetrix dynamic sparing 알고리즘이 Global 메모리에 사용가능한 spare 를 요청합니다. spare 는 Fault 된 디스크와 반드시 같은 block size 를 가지고 있어야 합니다.(512 or 520) 시스템은 Fault 된 디스크의 모든 데이터를 spare 로 복제하며, 복제가 진행되더라도 성능에 영향을 주지 않기 위해 Host 의 I/O 요청을 최우선으로 처리합니다. 그리고 복제와 동시에 EMC 고객지원센터로 Call 을 보냅니다.
Fault 된 디스크가 새로운 디스크로 교체되면, 데이터가 복제되었던 Spare 로부터 새로운 디스크로 데이터가 다시 복제됩니다. 복제가 끝날때까지 Spare 는 계속 사용되며, 복제가 종료되면 다시 사용가능한 Spare 가 됩니다. 그림으로 표현하면 다음과 같습니다.
장점
Dynamic sparing 의 장점은 Dynamic Sparing 을 사용하는 목적과 같습니다. 바로 데이터 프로텍션입니다. 로지컬 볼륨이 보호되는 동안 물리디스크의 교체가 이루어지며, Fault 된 디스크가 교체되면 사용중인 Spare 와 교체된 디스크가 다시 resync 를 합니다. 만약 Fault 된 디스크의 Rebuild 가 종료되기 전에 2번째 Mirror 나 RAID Group 내의 다른 멤버가 Fault 되더라도 Dynamic spare 가 RAID Group을 보호할 것입니다.
또한 위에서도 언급했지만, 복제가 이루어지는 동안에도 Host 의 I/O 요청을 최우선으로 처리합니다. Spare 의 크기, 속도, 위치는 문제가 되지 않으며 큰 크기의 디스크가 Fault 되더라도 다수의 작은 크기의 Spare 로 보호할 수 있습니다. 물론 느린 속도의 spare 가 사용된다면 성능에 영향은 있습니다.
Dynamic sparing 은 로지컬 레벨에서 동작하는데, 어떤 의미냐 하면 Dynamic spare 가 Fault 된 디스크의 하나의 로지컬 볼륨에 대해서 어떠한 이유로 인하여 invoke 할 수 없다 하더라도, Fault 된 디스크의 다른 로지컬 볼륨들에 대해서 동작할 수 있다는 것입니다. 예를 들면 만약 Fault 된 디스크의 하나의 로지컬 볼륨이 남아있는 Mirror Position 이 없다면 해당 볼륨에 대해서는 dynamic spare 가 invoke 될 수 없을 것입니다.
Dynamic spare 는 Fibre loop 에 Fault 가 발생하면 동작하지 않을 것입니다. 그러나 특정 디스크가 Fault 된 것으로 발견되면 dynamic spare 가 수동으로 invoked 될 것입니다.
고려사항
Dynamic sparing 은 두번의 복제 과정을 가지게 됩니다. 하나는 dynamic spare 로의 복제, 나머지 하나는 Fault 된 디스크의 교체 후 Dynamic spare 로부터 새로운 디스크로의 복제 과정입니다. Dynamic spare 가 invoked 된 상태에서는 시스템의 백엔드에 대한 설정 변경이 가능하지 않습니다. 예를 들면 디스크의 추가나 제거 등이 불가능합니다. invoked 된 dynamic spare 는 일시적으로 하나의 Mirror position 을 점유합니다. 이 경우 Mirror position 의 필요로 하는 Symmetrix 의 SRDF 나 TimeFinder 의 동작에 영향을 줄 수 있습니다. 어떤 경우가 발생할 수 있냐면, SRDF 로 복제가 되고 있는 RAID 1 볼륨은 3개의 Mirror Position 을 사용하는데, Dynamic spare 가 invoked 됐을 경우 남아있는 하나의 Mirror Position 을 점유하게 됩니다. 이 경우 TimeFinder/Mirror 에서 BCV 볼륨으로의 백업은 동작할 수 없습니다.
그러나 TimeFinder/Mirror 의 에뮬레이션 모드나, TimeFinder/Clone 처럼 Mirror Position 을 점유하지 않는 기능들은 사용할 수 있습니다.
- Permanent Sparing
Permanent Sparing 은 Fault 된 디스크를 Spare 디스크로 영구적으로 대체합니다. 이 경우 설정 변경이 발생합니다.(Bin 파일이 변경됨) 왜냐하면 Spare 가 데이터가 디스크가 되고 Fault 된 디스크가 Not ready spare 가 되기 때문입니다. Dynamic spare 는 Permanent spare 의 일부 과정으로써 사용되기도 합니다. 예를 들면 RAID 로 보호되지 않는 볼륨이 위치한 디스크가 Fault 되었을 경우(실제 Fault 된것이 아니고 Fault 될 것으로 예상되는), 데이터의 복제를 위해 dynamic spare 를 필요로 합니다.
과정
Permanent Sparing 은 설정을 통해 enable/disable 할 수 있습니다. 시스템이 Permanent sparing 을 사용중이고, 보호되지 않은 볼륨이 위치한 디스크가 Fault 될 것으로 감지할 경우 Dynamic spare 가 즉시 invoke 됩니다. RAID 로 보호되고 있는 다른 볼륨의 경우는 10분 후에 Dynamic spare 가 invoke 됩니다.
이 10분의 시간은 시스템에서 다른 프로세스가 동작하고 있을 때 Permenent sparing 이 시작될 수 있도록 하여줍니다. Permanent sparing 이 시작되면 dynamic spare 요청은 취소되며, 10분동안 permanent sparing 이 시작되지 않으면 모든 볼륨에 대해서 dynamic spare 가 invoke 됩니다. 일단 Permanent sparing 프로세스가 시작되면, 프로세스는 디스크를 영구적으로 교체하기 위하여 적절한 위치에 있는 같은 Block 크기와 용량, 그리고 속도를 가진 spare 를 찾습니다.
적절한 위치는 다음의 룰에 의해 결정됩니다.
- 같은 루프내에 RAID 1 Mirror 나 RAID 5 group 멤버가 없을 것.
- 같은 루프내에 2개 이상의 RAID 6 그룹 멤버가 없을 것.
- Vault 볼륨이 들어있는 디스크도 Permanent sparing 에 의해 사용됩니다. 다만 DMX3 에서는 vault 볼륨이 다른 루프로 이동할 수 없습니다. 즉 같은 루프내에 있어야 spare 로 사용될 수 있습니다. DMX4 에서는 같은 디렉터에서 제어하는 루프라면 vault 볼륨이 다른 루프로 이동할 수 있습니다.
만약 적절한 위치를 찾지 못한다면 Dynamic spare 가 동작하게 됩니다.
적절한 spare 가 선택되면, Permanent spare 프로세서는 변경된 Bin 파일을 로딩하게 됩니다.(Spare 가 데이터 디스크가 되고, Fault 된 디스크가 spare 로 지정된 Bin 파일) 이 과정은 보통 몇 초이내에 끝나며, 이 동안에는 설정 변경이 허용되지 않습니다. 설정 변경은 Fault 된 디스크의 모든 볼륨이 복제본을 가지고 있거나, Rebuild 되고 나서야 가능합니다. 만약 dynamic spare 가 invoked 되었으면 dynamic spare 로의 복제가 끝나야 설정 변경이 가능합니다.
데이터는 새로운 디스크로 복제되거나 Rebuild 되며, 복제가 끝나고 나면 Fault 된 디스크는 not ready spare 가 되며, 교체 될 수 있습니다. not ready spare 가 되는 이유는 다른 permanent sparing 이나 dynamic sparing 에 의해 사용되는 것을 방지하기 위해서 입니다. 또한 not ready 상태는 시스템의 IML, 디스크 디렉터의 IML 또는 전원 on/off 시에 사용되지 않습니다. not ready 상태는 디스크가 교체되면 제거되며, 그때부터는 spare 로 동작합니다.
그림으로 표면하면 다음과 같습니다.
장점
한번의 복제과정만 필요로 하기 때문에 , 복제에 필요한 시간을 줄일 수 있으며, 마찬가지로 Rebuild 되는 경우의 시간도 많이 줄어듭니다. 그리고 Mirror Position 을 점유하지 않습니다.
Replenishment 프로세스
Enginuity 5772.97.88 또는 5773.130.90 이후의 버전에서 새로 추가된 기능인데, Permanent sparing 이후에 Call 을 내보내지 않는 기능입니다. Call 을 내보내지 않을 경우의 장점은 디스크를 즉각 교체하지 않고 추후 시간을 정해서 교체할 수 있다는 것입니다. 이 경우 단순히 spare 디스크만 교체되기 떄문에 어떠한 복제나 rebuild 과정이 필요로 하지 않습니다. (교체 시간이 짧음) Replenishment 프로세스가 enable 되어 있으면 Permanent sparing 이 자동으로 SR 을 생성하지만, 시스템내의 다른 디스크들이 여전히 Permanent sparing 의 보호아래 있다면 EMC CE 에게 전달되지 않고 SR 이 자동으로 Close 됩니다.
만약 시스템내의 다른 디스크들이 Permanent sparing 에 의해 보호되지 않는다면 시스템은 이전에 permanent sparing 에 의해 사용된 spare 들의 정보가 담긴 DDS.log 라는 파일을 생성하며 EMC CE에게 전달되면 SR 을 생성합니다. 이 경우 CE 는 스케쥴된 시간에 다수의 디스크를 한번에 교체할 수 있습니다.
만약 어떤 이유로 인하여 Permanent sparing 이 동작하지 않는다면 dynamic spare 가 대신 invoked 되며, 시스템은 즉시 EMC CE 에게 전달되는 SR 을 생성합니다.
고려사항
모든 디스크의 Fault 에 대하여 Permanent Sparing 이 동작하지는 않습니다. 다른 속도, 다른 블록 크기, 용량을 가진 spare 는 permanent sparing 으로 동작할 수 없으며, 설정이 lock 되어 있는 경우에도 동작하지 않습니다. 이 두가지 경우에는 dynamic spraing 이 동작합니다.
또한 같은 DA 프로세서내에 다수의 디스크들이 not ready 상태인 경우에도 동작하지 않습니다. 보통 이런 경우는 디스크 자체의 Fault 가 아닌 다른 경우에 발생합니다. (루프의 문제라던지..)
Spare 설정
새로운 설정 파일을 만들 때, 필요한 만큼의 갯수의 물리 디스크가 자동으로 spare 로 마킹 됩니다. 이 spare 디스크들은 디스크 디렉터별로 균등하게 분산됩니다. EMC CE 가 이러한 알고리즘믈 패스하고 spare 디스크의 위치를 결정할 수 있습니다. (실제로 그런 경우는 별로 없습니다.)
Spare Rule
DMX4 or DMX4-950 with 4 directors – 각각의 디스크 100개당 최소 2개의 spare와 전체시스템에서 최소 8개의 spare
DMX4-950 with 2 directors – 각각의 디스크 100개당 최소 2개의 spare와 전체시스템에서 최소 4개의 spare
DMX 3 – 오더 시스템에서 디스크 타입별로 최소 2개의 spare 가 자동으로 선택되고 나머지 spare 들은 가장 크고, 가장 느린 디스크들로 선택됩니다. 모든 타입의 disk fault 에 대응하기 위해 이러한 구성을 가져가는 것 같습니다. 그러나 Enguinity 5772 에서 dynamic sparing 이 개선되면서 이러한 룰은 불필요하게 되었습니다. (작은 크기의 spare 들로 큰 크기의 fault 디스크들을 보호할 수 있게 됨), 꼭 큰 크기의 디스크들을 spare 로 둘 필요가 없게 된거죠. 그래서 정리하자면…
- 각각의 디스크별로 2개의 spare
- 100개의 디스크당 추가 1개의 spare
Flash drive 와 Sparing
Flash 디스크는 DMX-4 에서 사용가능합니다. dynamic 과 permanent sparing 을 지원하며, 시스템에서 flash spare 가 다른 타입의 디스크를 spare 하지 않도록 막습니다. (성능 이슈로 인하여) 32개의 플래시 디스크당 1개의 spare 가 구성되어야 하며, 플래시 Spare 디스크는 용량이 다른 플래시 디스크들이 사용될 경우 그중에 가장 큰 크기의 플래시 디스크어야만 합니다. 물론 다른 크기의 디스크로 sparing 될 경우 dynamic sparing 이 사용되며, 같은 크기의 플래시로만 permanent sparing 이 될 것입니다.
이상입니다. 정리가 잘 안되네요 ㅋ
다음은 VMAX 에서의 sparing 을 알아보도록 하겠습니다.
이 글은 “Drive Sparing in EMC Symmetrix DMX-3 and DMX-4 Systems” 라는 whitepaper 문서의 내용을 다룬 것입니다.
와~ 정말 대단하시내요 ㄷㄷㄷ;;; 다음 VMAX 자료도 기대하겠습니다 ^^ 수고하세요~!!