구성 계획
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