mdadm으로 Linux Software Raid 구성하기

구성 계획

linux가 설치된 서버에 두개의 디스크(각 10GB)를 가지고 미러링을 구성한다.

 

파티션 나누기

레이드 구성할 파티션을 나눌때 타입을 Linux raid autodetect 타입으로 설정한다.

# fdisk -l | grep raid
/dev/xvdb1               1        1305    10482381   fd  Linux raid autodetect
/dev/xvdc1               1        1305    10482381   fd  Linux raid autodetect

 

mdadm 설치

# yum -y install mdadm

 

레이드 장치 생성

  • Raid 장치 생성
# mdadm --create /dev/md1 --level=1 --raid-device=2 /dev/xvdb1 /dev/xvdc1

옵션 설명
–create : 새로운 raid array를 만든다.
–level : Raid 레벨( 0 : striping, 1 : mirroring )
–raid-devices : Raid 구성 할 디스크 갯수

  • Raid 장치 확인
# mdadm --detail --scan /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Mon Oct 27 13:43:37 2014
     Raid Level : raid1
     Array Size : 10474112 (9.99 GiB 10.73 GB)
  Used Dev Size : 10474112 (9.99 GiB 10.73 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Mon Oct 27 13:44:08 2014
          State : clean, resyncing 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

  Resync Status : 15% complete

           Name : localhost.localdomain:1  (local to host localhost.localdomain)
           UUID : 9bc786f7:40baaf23:ee5ff0e9:0c6c4e19
         Events : 2

    Number   Major   Minor   RaidDevice State
       0     202       17        0      active sync   /dev/xvdb1
       1     202       33        1      active sync   /dev/xvdc1

 

설정 파일 생성

# mdadm --detail --scan >/etc/mdadm.conf

 

RAID 상태 확인

# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 xvdc1[1] xvdb1[0]
      10474112 blocks super 1.2 [2/2] [UU]
      [==============>......]  resync = 71.2% (7465568/10474112) finish=1.0min speed=49931K/sec
      
unused devices: 
  • /proc/mdstat 파일을 확인하면 현재 레이드 상태를 확인 할 수 있다.
  • 중간쯤에 “10474112 blocks super 1.2 [2/2] [UU]” 부분에 [UU]로 되어 있으면 두개의 볼륨이 모두 정상 상태라는 것을 나타낸다.
  • 볼륨중 하나에 문제가 발생하면 [_U] or [U_]와 유사하게 표시되니 이부분을 필히 모니터링 해야 한다.

 

트러블 슈팅

  • 증상 확인
    2번 볼륨(/dev/xvdc1) Fail 가정
# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active (auto-read-only) raid1 xvdb1[0]
      10474112 blocks super 1.2 [2/1] [U_]
      
unused devices: 

cat /proc/mdstat 명령어로 현재 RAID 상태를 확인.

2번 볼륨이 문제가 있을경우 위와 보이게 된다.

md1 : active (auto-read-only) raid1 xvdb1[0] –> active 에 xvdb1 밖에 보이지 않음.

10474112 blocks super 1.2 [2/1] [U_] –> [U_]로 표시됨.

  • 해결

1. 기존 xvdc1 과 동일한 사이즈의 볼륨을 새로 추가.

2. 장애난 볼륨을 RAID에서 제거

# mdadm /dev/md1 -r /dev/xvdc1

3. 새로 추가된 볼륨을 RAID Array 에 추가한다

# mdadm /dev/md1 -a /dev/xvdc1

4. 확인 ( 아래 명령어로 RAID Rebuild 상태를 확인 할 수 있고, 100%시 정상으로 돌아간다.)

# mdadm --detail /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Mon Oct 27 13:43:37 2014
     Raid Level : raid1
     Array Size : 10474112 (9.99 GiB 10.73 GB)
  Used Dev Size : 10474112 (9.99 GiB 10.73 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Mon Oct 27 14:38:01 2014
          State : clean, degraded, recovering 
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

 Rebuild Status : 1% complete

           Name : localhost.localdomain:1  (local to host localhost.localdomain)
           UUID : 9bc786f7:40baaf23:ee5ff0e9:0c6c4e19
         Events : 21

    Number   Major   Minor   RaidDevice State
       0     202       17        0      active sync   /dev/xvdb1
       2     202       33        1      spare rebuilding   /dev/xvdc1

또는

# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 xvdc1[2] xvdb1[0]
      10474112 blocks super 1.2 [2/1] [U_]
      [==>..................]  recovery = 14.1% (1484120/10474112) finish=3.1min speed=47874K/sec
      
unused devices: 

 

RAID 삭제

  • RAID DEVICE 마운트 해제
umount /dev/md1
  • RAID 중지
mdadm –S /dev/md1
  • RAID 삭제
mdadm –-zero-superblock /dev/xvdb1
mdadm -–zero-superblock /dev/xvdc1

 

참고 자료

댓글 남기기