'RAID'에 해당되는 글 2건

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

행복한 하루 되세요~

,

RAID

개발자로 살기 2010. 4. 15. 17:56
□ 정의
  - Redundant Array of Independent Disks
  - Redundant Array of Inexpensive Disks
  - 여러개의 하드디스크에 일부 중복된 데이터를 나눠서 저장하는 기술

□ 구분
  ○ 하드웨어적 방법 : 운영체제에 하나로 묶은 논리적 디스크가 하나의 디스크처럼 보이게 하는 방법
  ○ 소프트웨어적 방법 : 운영체제 안에서 구현되는 방법으로,
                                  사용자에게 디스크를 하나의 디스크처럼 보이게 하는 방법

□ 레벨(표준 RAID 레벨)
  ○ RAID 0
    - 패리티가 없는 스프리핑된 세트(최소 2개 디스크)
    - 장점
      · 개선된 성능에 추가적인 기억장치를 제공
      · 병렬로 드라이브를 읽기 때문에 넓은 대역폭 제공
    - 단점
      · 실패할 경우 자료의 안전 보장 불가
        ‥· 단일 디스크 실패시 배열을 완전히 파괴.
          ∵ 데이터가 RAID 0 방식으로 쓰일 때, 데이터는 여러 조각으로 나뉨
      · 디스크들의 한 섹터가 실패시 모든 디스크의 해당 섹터는 사용 불능 표시
      · 오류 복구 불가
    - 조각은 각 디스크에 동시적으로 같은 섹터위에 기록. 따라서 조각의 개수는 디스크의 개수와 동일

  ○ RAID 1
    - 패리티가 없는 미러링 된 세트 (최소 2개 디스크)
    - 디스크 오류와 단일 디스크 실패에 대비하여 실패방지 기능 제공
    - 모든 데이터 블록은 모든 물리적 디스크들에 복사
    - 장점
      · 다중 스레드를 지원하는 운영체제 사용시 읽기 성능 향상
    - 단점
      · 쓰기 시도시 약간의 성능 저하

  ○ RAID2, RAID3은 폐기되어 사용되지 않음

  ○ RAID 4
    - 패리티가 단순 제공되는 스트리핑된 세트 (최소 3개 디스크)
    - RAID0 /1의 장점의 균형을 잡기 위한 방법
    - 1~n-1 블록까지는 스트라이핑 모드로 구성
    - n블록은 1부터 n-1까지의 블록들에 해당되는 각각의 비트들의 패리티 저장
    - 읽기작업의 효율 : n-1
    - 쓰기작업의 효율 : (n-1) / 2
      · 하나의 데이터 블록을 기록시 패리티 디스크에도 동시에 기록해야 함

//여기부터는 잘 사용되지 않음

  ○ RAID 5
    - 패리티가 배분되는 스트리핑된 세트 (최소 3개 디스크)
    - 패리티 디스크의 모든 정보가 모든 하드디스크에 분산. 따라서 패리티 디스크가 따로 존재하지 않음
    - 모든 쓰기 작업에서 패리티 디스크에 접근할 필요가 없어 패리티 디스크의 작업부하 줄여줌

  ○ RAID 6
    - 패리티가 배분되는 스트리핑된 세트 (최소 4개 디스크)

  ○ RAID 0+1
    - 디스크 스트리핑(RAID 0) 한 후, 디스크 미러링(RAID 1) (최소 4개 디스크)
    - 디스크가 6개일 경우 3개씩 스트리핑 후 미러링 수행

  ○ RAID 10 (RAID 1+0)
    - 디스크 미러링(RAID 1) 후, 디스크 스트리핑(RAID 0) (최소 4개 디스크)
    - 디스크가 6개일 경우 2개씩 미러링 후 미러링된 3개 스트리핑

  ○ RAID 50 (RAID 5+0)
    - 패리티가 배분되는 스트리핑된 세트를 다시 스트리핑(RAID 0) (최소 6개 디스크)

  ○ RAID 1E
    - 미러링과 데이트 스트라이핑의 결합 (최소 3개 디스크)

□ 레벨 (비표준 RAID 레벨)
  ○ RAID 1.5
    - 읽기는 RAID 0처럼 작동하여 성능상의 이점
    - 쓰기는 RAID 1처럼 작동하여 안정성 도모
    - HighPoint사의 컨트롤러에서만 지원







※ 용어정리
○ 스트라이핑
  - 성능 향상을 위해 단일 파일과 같은 논리적으로 연속된 데이터 세그먼트들이,
    물리적으로 여러개의 장치, 즉 디스크 드라이브 등에 라운드로빈 방식으로 나누어 기록
  - 고장에 대비하거나 에러를 체크하는 기능을 제공하지는 않지만
    그러한 기능을 다른 여러가지 방식들과 함께 사용은가능하다.

○ 미러링
  - 장비가 고장나는 사고 발생시 데이터의 손실을 방지하기 위해 데이터를 하나 이상의 장치에 중복 저장
  - 자기디스크에서만 '미러링'이라 부름
  - 자기테이프 장치에서는 '트위닝'

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

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

ligilo

행복한 하루 되세요~

,