Linux

Linux 파일시스템 RIAD-1, RAID-5 , 볼륨

5_jinseok12 2018. 2. 9. 14:31
728x90

RAID-1

- 미러링 RAID 라고 부른다

- 총 Disk 용량의 50%만 사용이 가능하다

- 데이터 여러번 기록하면서 걸리는 시간 때문에 성능이 감소

- 한개의 디스크가 고장이 나면 볼륨의 다른 디스크에서 데이터를 가져와 사용한다

- 중복해서 양쪽에 저장된다. 한쪽은 Active상태일때 다른 한쪽은 standby 상태

- Active 상태가 고장이 나면 다른 한쪽인 standby 상태로 있는것이 Active 상태로 바뀌어 실행된다.

- 성능이 조금 떨어지는 반면에 고장이 나도 바로 대처할 수 있기 때문에 실용성이 좋다.

 

RAID-5

- RAID-1 처럼 데이터 결함도 허용하면서 RAID-0처럼 공간 효율성도 좋은 방식

- 최소 3개의 디스크가 발생하며 보통 5개 이상의 디스크로 구성한다

- 디스크 장애가 발생 시 패리티(Parity)를 이용하여 데이터 복구한다

- 디스크 개수 -1 = 볼륨 총 용량(-1만큼 패리티)

- RAID-5는 디스크 하나만 커버가 가능하기 때문에 2개를 건드리면 망가진다.

 

패리티란?

- 디스크장애 발생 시 데이터를 재구축하는데 사용할 수 있는 계산된 값

- A라는 데이터를 저장할 때 데이터를 쪼개는데 복구하기 위해 패리티가 일정 공간을 차지한다.

- 디스크가 고장났을 때 패리티에 저장된 내용을 통해 복구할 수 있다.

 

RIAD 5 패리티 사용 예

ex) 4개의 Disk 로 구성된 RAID 5 볼륨

    데이터 000 111 101 010

 

    데이터의 저장 방향-------------> 왼쪽에서 오른쪽으로 저장된다고 가정했을 때

 

 1) ------------------------->
    A   B   C   D   XOR      A B
    0   0   0   ■   0 0      -> 0
    1   1  ■   1    0 1      -> 1
    1  ■  0    1    1 0      -> 1
   ■   0  1    0    1 1      -> 0

 

 : 기존에 패리티가 있던 곳에 생기지 않음 각각 다른 디스크에 생김

   첫번째 줄을 보면 A와B를 XOR하면 0 C와 다시 XOR 하면 0

   두번째 줄을 보면 A와B XOR = 1, 다시 1 XOR D = 1 이 된다.

 

 

 2) A    B    C    D  
    0    0    0    (0)   : A와B를 XOR한 뒤 C와도 XOR 한 값이 D 
    1    1   (1)    1    : A와B를 XOR한 뒤 D와도 XOR 한 값이 D     
    1   (0)   0     1   
   (1)   0    1     0 

 

 

 3)-----------------------> 복구 과정도 XOR
    A    B    C    D  
    0    0    0    (0)  
    1    1   (1)    1       
    1   (0)   0     1   
   (1)   0    1     0

 

C 줄의 값이 전체가 고장났더라도 XOR 값으로 복구할 수 있다

총 볼륨의 하나의 디스크 값을 밴 값이 실제 사용할 수 있는 디스크의 용량이 된다.

 

RAID-1 같은 경우는 데이터를 복사하는 것이고
RAID-5 같은 경우는 데이터를 복구하는 것이다

 

장애 테스트
레벨  Fault-Tolerent  장치명  VMware Disk 번호
RAID-Linear  x sdb, sdc 2,3
RAID-  0  x sdd, sde 4,5
RAID-  1  0 sdf, sdg 6,7
RAID-  5  0 sdh, sdi, sdj 8,9,10

 

장애 테스트 진행 방법

1) VMware Workstation 에서 디스크를 제거하는 방법

2) mdadm 옵션을 사용하는 방법

 

#cat /proc/mdstat

 

RAID-Linear , RAID-0

- 하나의 디스크라도 장애가 발생하면 볼륨이 깨지기 때문에 mdadm명령어로

  디스크 장애가 발생한 것 처럼 만들 수 없다

- Disk를 강제로 제거해야 한다

 

RAID-1 , RAID-5

- 디스크 장애가 발생해도 사용이 가능한 볼륨이기 때문에

  mdadm 명령어로 장애 테스트 진행이 가능하다.

 

 


#mdadm -f [볼륨명] [장치명]     //failure 고장
#mdadm -r [볼륨명] [장치명]     //remove 제거
#mdadm -a [볼륨명] [장치명]     //add 추가

옵션을 잘 알아두자.

 

UU 를 통해 디스크를 몇개를 사용하는지 알 수 있다.

세션 2개를 사용하여 한쪽으론 고장과 제거 추가를 입력하고 한쪽으론 바뀌는 것(출력)을 눈으로 확인해보자.

 

 

이제부터 md1에 있는 sdf1을 고장내려고 한다.

 

아래와 같이 -f 옵션을 사용하여 고장낸다.

 

sdf1[2]뒤에 (F)가 생긴것을 확인할 수 있다. 즉 고장났다는 표시이다.

 

 

옵션 -r을 통해 md1의 sdf1을 제거한다.

 

 

제거되는 과정

 

제거가 됐음을 알 수 있다.

아까전엔 [2/2] [UU]로 디스크가 꽉찼음을 알 수 있었는데 제거하고 난 후 하나가 비어있음을 알 수 있다.

 

-a 를 통해 원래대로 추가해준다.

 

md1에서 한것과 마찬가지로 md5에 sdh1을 고장내보자

 

고장난 것을 확인할 수 있다

 

RAID 5+Spare : 고장나는 즉시 바로 복수할 수 있도록 spare을 구성한다.
                   -> 4개의 디스크 1개의 spare. 꽉찬 디스크(UUU)에서 추가하게되면 알아서 Spare로 처리된다.

존에 볼륨을 중지하고 새롭게 만드는 방법
#mdadm --stop[볼륨명]


단 마운트가 되어있거나 해당 볼륨에 파일이 사용중이면 불가능하다

반응형

'Linux' 카테고리의 다른 글

Linux) RPM  (0) 2018.02.19
Linux 파일 검색(find)  (0) 2018.02.13
Linux 파일 시스템(3) RAID  (0) 2018.02.08
Linux 파일 시스템(2) mount  (0) 2018.02.08
Linux 파일 시스템  (0) 2018.02.05