ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리눅스] RAID ( 명령어 : mdadm )
    서버/리눅스 2017. 4. 10. 19:25

    R A I D

    목적

    여러개의 디스크를 합쳐서 하나의 디스크처럼 동작하게 함

    얻는 효과 : 디스크의 남는용량을 재활용하고 디스크보다 용량이 큰 파일을 저장할 수 있다.

     종류

    #1 ) H/W Raid    

    *성능이 뛰어나다.

    *가격이 비싸다.


    #2 ) S/W Raid

    *디스크 구매 비용외에는 비용이 없다. ( 무료 )

    *H/W구성보다는 성능이 떨어진다.



    구성

    #1) Linear 구성

    *디스크를 배열 형태로 단순히 연결한다.

    *데이터 내용을 순차적으로 기록한다 ( 1번째 디스크가 꽉차면 다음 디스크를 채운다 )

    *간편하다


    #2) Stripe 구성( Raid Level 0 )

    *데이터의 내용을 똑같이 분산저장 ( 모든 디스크에 똑같은 용량으로 저장 )

    *속도가 빠르다.(ㅋㅋㅋㅋ..... 잘모르겠다)

    *안정성을 보장할 수 없다.

    >속도를 중요


    #3) Mirror 구성( Raid Level 1 )

    *원본데이터의 대한 복사을 다른 디스크에 만든다.

    >만들어진 Raid 디스크용량을 최대 절반밖에 사용할 수 없다.

    >최소 2개이상의 디스크를 필요로 한다. ( 파티션은 복원의미가 사라지므로 해당되지 않는다. )

    >안정성을 중요


    (생략)

    #4) Stripe + Mirror 구성( Raid Level 5 )

    *레벨 0과 1의 장점을 합쳤다.

    *장치갯수 -1만큼의 장치까지 stripe로 저장하고 마지막 장치에 패리티비트를 저장한다.

    >> 이 패리티비트는 수많은 연산을 통해 고장난 장치를 복원할 수 있다.

    : but 2개이상의 장치가 고장나면 복원이 불가능하다.

    >> 최소 3개 이상의 디스크를 필요로 한다.


    #5) ( Raid Level 0+1 )

    *레벨 0의 구성으로 2개의 raid장치를 만든다.

    *만들어진 raid장치로 mirror( level 1 )구성을 한다.

    >> 최소 4개이상의 디스크를 필요로 하며 3개의 레이드장치를 만들지만 최종 1개가 동작한다.


    #6) ( Raid Level 1+0 (10) )

    *레벨 1의 구성으로 2개의 raid장치를 만든다.

    *만들어진 raid장치로 stripe( level 0 )구성을 한다.

    >> 최소 4개이상의 디스크를 필요로 하며 3개의 레이드장치를 만들지만 최종 1개가 동작한다.



     

    실습

    VMware

    - sdb ( 1 GB)

    - sdc ( 1 GB)


    #Raid파티션 생성

    #>fdisk /dev/sdb

     Command (m for help) : n

     >all enter

     Command (m for help) : t

    Hex code (type L to list all codes) : fd           >> 시스템ID를 헥사코드( fd : raid ) 로 변경

     Command (m for help) : w

    #>fdisk /dev/sdc 도 동일


    Raid를 적용시켜줄 소프트웨어를 다운로드 한다. ( mdadm )

    #>yum install -y mdadm.x86_64


    Raid 생성 ( mdadm --help 참조 ) 

    #>mdadm --create <dev_name> --level=<level_number> --raid-devices=<dev_number> <dev_name1> <dev_name2> ...

      생성될 레이드    레벨은 표현방법이 많음       참조할 디바이스 갯수         디바이스 아규먼트

     --raid-dvices= : -n

     --level=        :  -l 으로 대체가능

    #>mdadm --create /dev/md/linear -l linear -n 2 /dev/sdb1 /dev/sdc1

    -l linear  : linear방식으로 생성

      0(raid0) : stripe방식으로 생성

      1(raid1) : mirror방식으로 생성 



    명령어 후 이렇게 나오면 성공.


    확인하는 방법

    #>mdadm --detail /dev/md/linear     >> 자세히


    mirror 같은경우 백업본을 저장하기에 용량을 (최대)반밖에 사용할 수 없다.


    #>cat /proc/mdstat                        >> 간단히

    #>ls -l /dev/md*


    >>md127는 원본 내가 원하는 이름으로 지정한 liner이름은 링크파일로 생성되었다.

    >> /dev/md*  << 이 패턴의 이름으로 만들어주면 원본이름이 지정이 가능하다.


    #파일시스템 적용

    #>mkfs -t ext4 /dev/md/linear

    물론 장치이름원본을 작성해줘도 된다. ( /dev/md127 )


    #마운트

    #>mount /dev/md/linear /raid/linear


    #Raid 장치 해제

    #>umount /dev/md/linear

    #>mdadm --stop /dev/md127

    >>mount를 해제 후 삭제 시켜줍니다.

    >>원본을 해제해주셔야 에러없이 동작합니다. (링크파일로 멈출때 원본은 남아있을 수 있습니다.)

    >>stop은 멈추는 기능이므로 일정시간이 경과 후 다시 활성화 됩니다.

    >>이때는 장치를 빼거나 0으로 채워넣는 방법으로 하면됩니다.


    장애발생 및 복구

    #>mdadm <raid_name> -f <dev_name>

    레이드 디바이스    하위 디바이스

    #>mdadm /dev/md/mirror -f /dev/sdb1


    >>재부팅 후 마운트해주고 확인해본다.

    >> 2개중 하나가 빠졌으므로 mirror구성은 깨졌다. >> linear구성으로 동작한다.


    복구

    #>mdadm /dev/md/mirror --add /dev/sdb1

    옵션 : --add

    >> 장치는 스페어장치(보조)로 들어가서 고장난 자리(fail)로 들어간다.

    *mirror는 장치의 용량이 대상이 다를경우 용량이 작은쪽이 원본대상이 된다.

    *mirror같은경우 여러개를 추가하면 1개만 원본대상이고 나머지디스크는 복사본으로 동작한다.


    장치제거 ( 고장난 디바이스는 바로 제거해도 된다 )

    #>mdadm /dev/md/mirror -r /dev/sdb1


    장치추가

    1) Spare 방식으로 추가

    위에서는 바로 들어갔지만 사실 장치는 spare장치로 대기중인 상태이다.

    이상태는 고장나는 즉시 해당 장치로 들어가는건데 위에서는 장치가 고장나있는 곳으로 바로 찾아 들어간것이다.

    #>mdadm /dev/md/mirror -f /dev/sdc1

    spare상태였던 sdd1 파티션은 spare rebuilding으로 동작한다. >> 하나의 장치를 [ 대기 ]시켜놓는 방법이다.

    이때 바로 mirror로 상태로 동작한다.

    sprite방식은 깨지는 순간 파일은 다 깨진다.


    2) 장치로 추가

    #>mdadm --grow <dev_name> --level=<level_num> --raid-devices=<num> --add <dev_name>

    옵션은 raid를 만들었을 때와 비슷하다.

     --raid-dvices= : -n

     --level=        :  -l 으로 대체가능


    #>mdadm --grow /dev/md/mirror -l 1 -n 3 --add /dev/sdc1

    레벨은 똑같이 적어주고

    디바이스 갯수는 추가했을 때 최종 갯수이다.

    (바로 확인을 하면 spare 상태일텐데 시간이 경과후 active 상태로 활성화된다 )

    >> 이렇게 장치가 추가되면 [ 파일시스템 ]을 다시 적용시켜준다. ( 디스크 연결이 해제 되었으므로 [ 초기화 ] 상태라고 표현한다 )

         : 파일시스템은 2개로 아직 인식하고 있기 떄문이다.

         : 마운트도 다시 한다.


    #>umount /dev/md/mirror

    #>mkfs -t ext4 /dev/md/mirror

    #>mount /dev/md/mirror /raid/mirror


    RAID

    온라인 게임에서 공격/방어 등의 능력치가 높은 레벨의 몬스터나 특별한 목적을 이루는 대규모 사냥을 일컬음.




    '서버 > 리눅스' 카테고리의 다른 글

    [리눅스] LVM ( 가상화기법 )  (0) 2017.04.12
    [리눅스] RAID 2  (0) 2017.04.11
    [리눅스] 네트워크 설정(정리)  (0) 2017.04.07
    [리눅스] 마운트  (0) 2017.04.07
    [리눅스] 디스크 관리  (0) 2017.04.06

    댓글

Designed by Tistory.