2009년 4월 29일 수요일

RAID에 대한 소개 및 RAID를 이용한 시스템의 복구

RAID는 Redundant Array of Independent Disks의 줄임말이다. 스토리지 시스템에 RAID가 활성화되어 있으면 시스템에 두 개 이상의 드라이브를 연결하여 하나의 큰 드라이브처럼 사용할 수 있고 또는 시스템의 드라이브를 사용하여 사용자 데이터를 자동으로, 지속적으로 복제하여 실시간으로 백업하도록 설정할 수도 있다.

RAID의 장점

RAID 드라이브 시스템을 찾는 이유 세 가지:

   1. 아주 큰 스토리지 공간이 필요한 동시에 속도 또한 빨라야 한다. (RAID 0)
   2. 데이터를 지속적으로, 자동으로 백업하고 싶다. (RAID 1)
   3. 두 가지 다 원한다. (RAID 5)

어떤 RAID 모드를 사용해야 할까?

1. 속도 (RAID 0)

고성능 모드(일명 스트리핑 모드 또는 RAID 0)로 설정하면 다음의 경우 스토리지 시스템에서 사용자가 필요로 하는 파워를 제공 받을 수 있다.

    * 대용량 그래픽 디자인 및 매우 빠른 Photoshop 스크래치 공간이 필요.
    * 깨끗한 오디오 성능을 유지하면서 대용량 DV 파일을 녹화하려 할 때
    * DV 또는 HD 비디오 편집 및 프레임 드롭없는 부드러운 워크플로우 요구.
    * 복잡한 3D 오브젝트 또는 특수 효과를 렌더링할 때
    * 디스크 집약적인 데이터베이스 작업을 수행할 때
    * 놀라울 정도로 정말 빠른 컴퓨터에 처음으로 매료된 때

RAID 0의 속도가 빠른 이유가 무엇을가? 설명하기 약간 복잡하긴 하지만, 헤드는 두 개 또는 그 이상, 이 경우, 드라이브는 하나 이상인 것이 좋다고 말할 수 있다. 여러 개의 호스로 동시에 하나의 양동이에 물을 채우고 있는 사진과 여러 사람이 하나의 보트를 노젓고 있는 사진을 보면, 스트리핑한 두 개 드라이브가 왜 하나보다 더 빠른지 이해할 수 있다. 데이터는 양쪽 드라이브에 저장되고 액세스는 모든 드라이브에서 병렬로 가능하기 때문에 사용자는 대용량 데이터 액세스시 데이터 전송률을 높일 수 있고 작은 데이터에 액세스할 때는 입출력 속도를 높일 수 있다.

2. 데이터 보호 (RAID 1)

시스템을 데이터 보호 모드로 설정하면(일명, 미러링 모드 또는 RAID 1) 용량이 절반으로 나누어진다. 용량의 절반은 데이터 보관에 이용되고 나머지 반은 사본 복제에 이용된다. (서버운영시 많이 사용하는 RAID방식~)

그 런 중복성이 왜 필요한가요? 당신의 데이터, 가족 사진, 사랑스런 아기의 첫 걸음마에 관한 영상, 당신이 쓴 첫 소설. 다시 얻을 수 없는 중요한 자료이다. 또한 서버 운영시 한 HDD에 문제생김으로 인한 데이타의 유실 및 지속적인 서비스 등이 필요하기 때문에 RAID방식으로 시스템을 구성하면 더욱 안전하게 서버를 운영할 수 있다.

3. 데이터 보호 및 속도(RAID 5)

세 개 또는 그 이상의 드라이브를 갖춘 시스템(WD의 N8 TB WD ShareSpace™ 네트워크 스토리지 시스템처럼)의 경우 시스템을 RAID 5로 설정할 것을 권장한다. 이것이 최적의 구성이다. 모든 드라이브에 걸쳐 데이터를 스트리핑함으로써 성능을 높이고 각 드라이브의 1/4를 내고장성에 할애하고 나머지 부분은 데이터 저장 공간으로 남겨둠으로써 데이터 보호 성능을 최대화한다.

문제점 발생시 해결책

직접 /proc/mdstat를 읽는 방식으로 현재 구성된 RAID의 상태에 대하여 알아볼 수 있다. 하지만 이런 방식으로 상태를 알아보는건 그다지 효율적이지 못하다.

mdadm --detail를 이용하여 다중 하드 디스크 상태를 알아보는것이 더욱 편하고 효율적이다.

# mdadm --detail /dev/md2 | tail -n 3
   Number   Major   Minor   RaidDevice State
       0       8        3        0      active sync   /dev/sda3
       1       8       19        1      active sync   /dev/sdb3

위 예제는 md2 다중 하드 디스크 상태를 보여주는것이다.
상태를 보면 모두 active sync로 되었음을 알수 있다. 즉 RAID가 정상적으로 작동하고 있다.^^
만약 그중 한 하드디스크에 문제가 발생했다면 active sync대신 faulty spare라는 메세지가 뜰 것이다.

만약 이런 상황에 맞띄웠다면 당황해할 필요가 없다. 우리가 설치한 보조 하드디스크가 나머지 데이타를 고스란히 가지고 있기 때문이다. 우리가 해야 할 작업은 망가진 하드디스크만 빼내면 그뿐이다.

① mdadm MD_DEVICE --remove DEVICE를 이용하여 문제가 발생한 하드 디스크를 제거한다.
② 서버를 잠시 중지시키고 물리적으로 문제가 생긴 하드 디스크를 제거한다.
③ 정상적인 하드 디스크를 설치한후 새로운 파티션을 생성한다.
④ mdadm MD_DEVICE --add DEVICE를 이용하여 새롭게 만든 파티션을 md에 물린다.

실제 문제가 발생할 였을 때 해결하는 과정을 보여주면 다음과 같다.

# mdadm --detail /dev/md2 | tail -n 3
    Number   Major   Minor   RaidDevice State
       0       8        3        0      faulty spare   /dev/sda3
       1       8       19        1      active sync   /dev/sdb3
# mdadm /dev/md2 --remove /dev/sdb3
mdadm: hot removed /dev/sda3

reboot...

// 새로 파티션을 만들어 주는 과정이 필요함...

# mdadm --detail /dev/md2 | tail -n 3
    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       19        1      active sync   /dev/sdb3

# mdadm /dev/md2 --add /dev/sdc3
mdadm: added /dev/sdc3

# mdadm --detail /dev/md2 | tail -n 3
    Number   Major   Minor   RaidDevice State
       2       8       20        0      spare rebuilding    /dev/sdc3
       1       8       19        1      active sync   /dev/sdb3

# mdadm --detail /dev/md2 | tail -n 3
    Number   Major   Minor   RaidDevice State
       0       8       20        0      spare sync    /dev/sdc3
       1       8       19        1      active sync   /dev/sdb3

댓글 없음:

댓글 쓰기