'레이드'에 해당되는 글 1건

RAID0의 설치 방법

    이제 RAID0의 설치방법을 살펴보자. 만일 독자들이 커늘2.0.xx에서와 다른 RAID를 설치하려면 여기서와 다른 조치가 필요하다.

    RAID0는 여유도가 없으나 디스크 용량 손실을 줄이기 위해서는 디스크 개수가 많을 것이 권장된다. 디스크가 3개일 때 1개를 낭비하는 것은 정말로 손실이 크다고 할 수 있다. 더구나 높은 여유도가 현실에서는 잘 발생하지 않는 하드 디스크의 물리적 손상이외의 정보의 손실까지 방지할 수 없다. 만일 10개의 하드 디스크를 사용한다면 그 가운데 하나를 패리티제어를 위해 사용한다 해도 그리 큰 용량의 낭비는 아닐 것이다. RAID0에서 어떤 디스크 1개에서 디스크 패일뉴어가 나타나면 모든 물리적 디스크에 있는 모든 정보를 잃게되므로 적절한 백업이 필요한 것이다.

    맨처음 해당 드라이브를 커늘에 첨가해야 한다. 리눅스 2.0.xx에서 옵션은 다음과 같다.

    Multiple devices driver support (CONFIG_BLK_DEV_MD) [Y/n/?] Y
    Linear (append) mode (CONFIG_MD_LINEAR) [Y/m/n/?] Y
    RAID-0 (striping) mode (CONFIG_MD_STRIPED) [Y/m/n/?] Y
    시스템을 새로운 커늘로 부팅하고 나면 /proc 파일에는 새로 만들어진 md0, md1, md2, md3 등(이것은 디폴트 값임) 4개의 장치에 대한 상태를 포함하는 엔트리 mdstat가 나타난다. 이들 4개중 어느 것도 아직까지 초기화되지 않았으므로 비활성 상태로 나타나고 아직 사용할 수도 없다. 
    새로운 4개의 장치들은 다음과 같은 mdutil을 이용하여 관리한다.

            -mdadd
            -mdrun
            -mdstop
            -mdop

    이것들은 sweet-smoke.ufr-info-p7.ibp.fr/pub/Linux에서 다운로드받을 수 있으며 대부분의배포판에도 포함되어 있다.

    커넬 2.1.62이나 그 이상에서는 RAID0, RAID4 ,그리고 RAID5를 사용할 수 있는 `RAIDtools’가 별도의 패키지로 포함되어 있다.   
    다음 예에서 우리는 /dev/sdb1과 /dev/sdc1과 같은 두 개의 하드디스크를 사용하는 RAID0 메타디스크를 어떻게 정의하는지 설명해본다.

      meta-device  RAID Mode  Disk Partition 1  Disk Partition 1 
      /dev/md0    linear         /dev/sdb1       /dev/sdc1

    파티션 수를 늘일 수도 있다.

    일단 메타디스크가 포맷이 되면 이것은 어떠한 상황에서도 변경될 수 없으며 모든 정보를 상실하게 된다.

      mdadd -a
      mdrun -a

    이때 md0는 이미 초기화되어 나타나야 한다. 그것을 포맷하려면

      mke2fs /dev/md0

    그리고 이것을 마운트한다.

      mkdir /mount/md0
      mount /dev/md0 /mount/md0

    이제까지 모든 것이 순조롭게 작동되면 이제 이들 명령어들을 부팅 스크립트에 포함시켜야 한다. 그러면 다음에 시스템을 재부팅할 때는 RAID0의 메타디스크가 자동적으로 마운트된다. 이를 위해서 먼져 /etc/fstab 파일에 엔트리를 추가하는 한편, 마운트하기전에 실행되는 스크립트 파일로부터 `mdadd -a’와 `mdrun -a’ 명령어를 시행한다. Devian 배포판에는 이들 명령어는 /etc/init.d/checkroot.sh 스크립트 파일에 두면되고 루트 파일시스템을 읽기/쓰기모드에서 리마운팅하기 직전에, 즉 “mount -n -o remount, rw /”라인 직전에 삽입한다.

    <<예>>

    다음 구성은 필자가 현재 사용하고 있는 것으로 필자는 6.3Gb의 IDE 하드와 4.2Gb 및 2Gb의 SCSI를 사용하고 있다.

      HD 6.3Gb IDE 
       /    /bigTemp + /incoming    swap    2Gb(RAID)hda4

      HD 4.2Gb SCSI 
       C:     D:      swap     2Gb(RAID)sda4

      HD 2Gb SCSI 
       swap    2Gb(RAID)sdb2
      #######</etc/fstab>##############################
      # <file system> <mount point>  <type>  <options>     <dump>  <pass>
           /dev/hda1       /                    ext2     defaults            0            1
           /dev/hda2       /mnt/hda2       ext2     defaults           0            2
           /dev/md0        /mnt/md0        ext2     defaults           0            2
           proc               /proc              proc     defaults           0            2
           /dev/hda3        none             swap     sw,pri=10 
           /dev/sdb1        none             swap     sw,pri=10 
           /dev/sda3        none             swap     sw,pri=10

      #########</etc/mdtab>############################ 
      # <meta-device> <RAID-mode> <DskPart1> <DskPart1> <DskPart1> 
           /dev/md0          RAID0,8k       /dev/hda4   /dev/sda4   /dev/sdb2

    루트 파티션은 6Gb 하드에 hda1으로 위치하고 있으며 이 하드에는 또한 인터넷이나 CD의 이미지 저장을 위한 큰 파티션이 있다. 이 파티션은 자주 사용하지 않으므로 그리 큰 부하가 걸리지는 않는다. 4Gb짜리 디스크는 Linux에서 거의 사용하지 않는 MSDOS 파티션이므로 RAID의 효율성을 저해한는 파티션을 나누지 않았다. 2Gb 디스크는 거의 전적으로 RAID 시스템용으로 사용한다. 각각의 디스크에는 스와프 스페이스로 작은 부분을 남겨두었다.

    RAID의 모든 디스크(또는 파티션)의 크기를 대략 같게 정했는데 이것은 그 크기가 많이 차이가 나면 RAID의 성능이 악화되기 때문이다. 작은 차이는 문제가 되지 않는다. 우리는 사용가능한 모든 공간을 이용하는데 이에 따라 디스크의 모든 데이터가 연결될 수 있고, 여분의 데이터는 그대로 남아있게 된다.

    하나의 RAID에 여러개의 IDE 디스크를 마운팅하면 효율성이 그리 좋지 않지만 한 개의 IDE와 여러개의 SCSI를 마운팅하면 훨씬 좋아진다. IED 디스크는 동시적(concurrent) 엑세스가 불가능하지만 SCSI 디스크는 가능하기 때문이다. 

'개발자로 살기' 카테고리의 다른 글

HTTP 1.1 에러코드  (0) 2011.01.11
파티션과 볼륨  (0) 2010.04.16
RAID  (0) 2010.04.15
Telnet 설치하기  (0) 2010.04.14
FTP 설치하기(vsftp)  (0) 2010.04.14
블로그 이미지

ligilo

행복한 하루 되세요~

,