[파일] 리눅스 Soft RAID 구현하기

각각의 레이드 레벨은 특별한 목적에 적당하게 사용되어질 수 있으며, 여기서 각각의 레이드 레벨의 설정에 대하여 알아보고자 한다. 먼저 레이드 시스템을 구축하고자 할 때 참고할만한 약간의 팁을 언급하고자 한다.

– IDE 디스크를 이용할 때는, 하나의 IDE 컨트롤러에 하나의 드라이브만을 사용하길 권장한다. 그렇게 하므로해서 콘트롤러의 오류가 하나의 드라이브만 오류를 일으키기 위한 설계이다.

– 드라이브가 오류를 일으킬 때 빠른 드라이브의 정보를 스와핑(swapping)하기 위하여 Removable Drive Frames을 사용하기를 권장한다. 가장 선호하는 것으로는 GT’s Removable Drive Frames가 있다. (http://www.gtweb.net/mobile-rack.html)

– SCSI 드라이브는 평균적으로 보다 질적인 데이터 저장이 가능하고 안정성을 지니기 때문에 그러한 사용이 필요한 중요한 작업에 사용하는 것이 적당하다.

현재 기술하고 있는 내용은 Redhat 6.2와 7.0을 기준으로 설명하는 것이며, 이러한 배포판에 기초한 지역화된 배포판이나 개량화된 배포판들은 필요한 모든 레이드 툴(RAID tool)들을 포함하고 있다. 그러나 기본적인 방법에 관하여는 다른 배포판에서도 얼마든지 응용가능함을 알아두기 바란다. 아마도 다른 배포판들을 위해서는 커널 패치(kernel patch)가 필요로 할 수 있고, 보다 오래된 레드헷 기반의 배포판 역시 레이드 툴을 다운받아서 설치할 필요가 있다. (ftp://ftp.us.kernel.org/pub/linux/daemons/raid/)

그럼 구체적인 설정에 관하여 알아보자.

/etc/raidtab 파일

첫 번째로 소프트웨어 레이드를 리눅스에서 구축하고자 할 때 설정하여야할 내용은 /etc/raidtab 파일이다. 다음에 설명되어질 내용은 각각의 명령에 대한 내용을 설명한 것이고, 각각의 레이드 레벨에 대한 설정화일의 예제를 보이도록 하겠다.

– raiddev /dev/mdX : 이것은 레이드 어레이(raid array)로 사용되어질 주소를 정의한다.

– raid-level N : 레이드 레벨(raid level)을 정의한다.

– nr-raid-disks N : 레이드 되어질 드라이브의 수를 정의한다.

– nr-spar-disks N : 여유 디스크(spare disk)의 수를 정의 하며 스페어 디스크는 디스크 오류시 대체되어질 디스크를 뜻한다.

– chunk-size N : 레이드 시킬 때의 각각의 레이드 양을 지칭하며 이는 디스크의 표시정보에 해당한다. 레이드 파티션은 이러한 레이드 양을 나타내는 표시정보에 의해 나뉘어지며 이 정보에 의해 각각의 디스크에 대한 접근이 가능하다. 이 레이드의 표시정보 즉 레이드 파티션의 크기는 디스크의 성능에 좋게 작용할 수도 있고 그렇지 않을 수도 있다. 만약 드라이브의 성능을 높이고 싶다면 이 사이즈를 변경하여 보는 것이 좋다.

RAID-Linear / RAID-0

RAID-Linear 또는 RAID-0을 설정하기 위해서 여러개의 파티션을 구동하고 그 파티션들은 /etc/raidtab 파일에 열거되어 있어야 한다. 예를 들어 만약 두 개의 파티션 /dev/hdb1과 /dev/hdd1이 있다면 raidtab 파일은 다음과 같이 설정되어져야 한다.

—RAID-Linear

raiddev      /dev/md0

        raid-level                 linear

        nr-raid-disks             2      

        chunk-size                32

        persistent-superblock       1

       device                      /dev/hdb1  

        raid-disk                  0

        device                     /dev/hdd1

        raid-disk                  1

—RAID-0

raiddev      /dev/md0

        raid-level                   0

        nr-raid-disks               2      

        chunk-size                  4

        persistent-superblock        1

       device                      /dev/hdb1  

        raid-disk                    0

        device                     /dev/hdd1

        raid-disk                    1

위와 같이 설정되었다면 다음의 명령을 실행한다.

#mkraid /dev/md0

위의 명령은 레이드 파티션을 초기화 하고 초기화된 파티션 (/dev/md0)을 사용가능한 상태로 만든다.

위의 명령을 실행 시키면 레이드 파티션이 만들어질 것이며 보통 30분에서 한시간을 소요하고 진행되는 과정은 /proc/mdstat를 체크하므로써 성공여부를 알 수 있다.

RAID-1

RAID-1(mirroring)을 설정하기 위해서는 두 개의 파티션을 비슷한 크기로 설정하여야 한다. 간단히 /etc/raiddev 파일의 마지막에 정의 해놓길 권한다. 또한 사용할 스페어 디스크의 설정인 nr-spare-disk도 필요하다. 예제 파일은 다음과 같다.

—RAID-1

raiddev /dev/md0

        raid-level      1

        nr-raid-disks   2

        nr-spare-disks  0

        chunk-size     4

        persistent-superblock 1

        device          /dev/hdb1

        raid-disk       0

        device          /dev/hdd1

        raid-disk       1

스페어 디스크를 설정하기 위해서 간단히 /etc/raiddev 에 다음을 추가하면 된다.

device       /dev/hdc1

spare-disk        0

위와 같이 설정하였다면 레이드 파티션을 초기화 하기 위해서 다음의 명령을 실행하면 된다.

#mkraid /dev/md0

RAID-4 와 RAID-5

RAID-4와 RAID-5를 설정하기 위해서 /etc/raidtab를 아래와 같이 설정하여 준다.

—RAID-4:

raiddev /dev/md0

       raid-level      4

       nr-raid-disks   3

       nr-spare-disks  0

       persistent-superblock 1

       chunk-size      32

       device          /dev/hdb1

       raid-disk       0

       device          /dev/hdc1

       raid-disk       1

       device          /dev/hdd1

       raid-disk       2

—RAID-5:

raiddev /dev/md0

      raid-level      5

      nr-raid-disks   3

      nr-spare-disks  0

      persistent-superblock 1

      parity-algorithm        left-symmetric

      chunk-size      32

      device          /dev/hdb3

      raid-disk       0

      device          /dev/hdc1

      raid-disk       1

      device          /dev/hdd1

      raid-disk       2

위에서 보여진 예와 마찬가지고 스페어 디스크를 설정하기 위해서 /etc/raiddev에 다음을 추가한다.

device       /dev/hdc1

spare-disk        0

마지막으로 레이드 파티션을 초기화 하기 위해서 다음 명령을 수행하면 된다.

#mkraid /dev/md0

다음은 레이드 파티션을 운용하기 위하여 추가적으로 알아두어야할 내용들이다.

RAID Array의 시작과 종료

-시작 : raidstart /dev/md0

-종료 : raidstop /dev/md0

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.