RAID Level 별 설정 및 RAID 장애 복구
- RAID 기본 및 기초 설정은 [CentOS] RAID 정리 및 설정 [lsblk / fdisk / mdadm / mount] 에서 확인 가능하다.
- RAID의 동작 방식과 구성의 이해를 위해 테스트를 진행해보았다.
- 복구 테스트 진행 시, VMware 설정에서 하드디스크를 잘못 지우는 바람에 두번이나 진행했다.
1. 하드디스크 8개 추가
- [CentOS] Linux 하드디스크 추가하기 [mount / lsblk / fdisk / mkfs]를 참고하여 하드디스크 8개를 추가한다.
- RAID 0 = 2개 / RAID 1 = 2개 / RAID 5 = 4개의 구성이다.
- RAID 6는 추후에 진행하려고한다. 너무 많다..
2. mdadm 명령어로 RAID 설정
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
- /dev/md0라는 RAID 장치 이름을 생성한다.
- RAID Level은 RAID 0이다.
- RAID 구성 디바이스는 2개 /dev/sdb1 + /dev/sdc1이다
mdadm --detail /dev/md0
- /dev/md0 장치의 세부사항을 살펴본다.
- lsblk로도 확인 가능하다.
- md0이라는 장치가 생성되었고 TYPE이 raid0으로 지정되었다.
- 이렇게 2번 더 반복하면 되며, mdadm 명령어의 옵션을 바꾸면서 진행하면된다.
- RAID 0의 특성답게, SIZE가 2GB가 되었다.
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1
- /dev/md1라는 RAID 장치 이름을 생성한다.
- RAID Level은 RAID 1이다.
- RAID 구성 디바이스는 2개 /dev/sdd1 + /dev/sde1이다
mdadm --detail /dev/md1
- /dev/md1 장치의 세부사항을 살펴본다.
- lsblk로도 확인 가능하다.
- md1이라는 장치가 생성되었고 TYPE이 raid1으로 지정되었다.
- RAID 1의 특성답게, 두 개의 장치를 묶었음에도 SIZE가 1GB가 되었다.
mdadm --create /dev/md2 --level=5 --raid-devices=4 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
- /dev/md2라는 RAID 장치 이름을 생성한다.
- RAID Level은 RAID 5이다.
- RAID 구성 디바이스는 4개 /dev/sdf1 + /dev/sdg1 + /dev/sdh1 + /dev/sdi1이다
mdadm --detail /dev/md2
- /dev/md2 장치의 세부사항을 살펴본다.
- md2이라는 장치가 생성되었고 TYPE이 raid5으로 지정되었다.
- RAID 5의 특성답게, 4 개의 장치를 묶었음에도 SIZE가 3GB가 되었다.
- 세 개의 RAID 장치를 파일 시스템 xfs 형식으로 마운트한다.
- 그리고, mount 명령어로 각 디렉토리에 마운트한다.
- mount 명령어로 확인 가능하다.
- /etc/fstab에 등록하여 부팅 후에도 마운트가 가능하도록 등록한다.
- 재부팅을 하지 않아도, /etc/fstab에 설정한 내용을 바로 적용할 수 있는 명령어를 입력한다.
mount --option remount /raid0 | mount --option remount /raid1 | mount --option remount /raid5
- 각 디렉토리에 다시 마운트한다.
- 지금까지는 RAID 0, RAID 1, RAIID 5으로 하드디스크를 구성하는 과정을 알아보았다.
- 이제는 각 RAID Level 별로 하드디스크에 장애를 내어 장애 발생 내용과 복구 과정을 알아보자.
3. 하드디스크 제거 후 재부팅
- 시스템 종료 후, VMware에서 하드디스크를 제거한다.
- 이때, 주의해야할 것은 3 / 5 / 7번의 하드디스크를 제거해야한다.
- 잘못 지우면, 골치아프다.
빨간색이 제거할 하드디스크 번호
RAID 0 = 2 + 3 | RAID 1 = 4 + 5 | RAID 5 = 6 + 7 + 8 + 9
- 제거 후에 부팅하면 긴급모드로 진입한다.
- root 계정의 Password를 입력하고 진입한다.
- [df -h]를 입력하여 현재 디스크 상태를 확인한다.
- 그 결과, /dev/md1[RAID 1] 과 /dev/md2[RAID 5]는 정상적으로 연결되어있지만, /dev/md0[RAID 0]은 보이지 않는다.
- 말 그대로, 모든 데이터를 n 개의 하드디스크에 분할하여 담는 방식인 RAID 0은 RAID 구성이 깨졌다.
- 이와 같은 결과로 안정성이 최악이기 때문에 사용하기 드문 구성방식이다.
- 위에서 설명하지 않았었지만, 각각의 마운트 디렉토리에 파일을 생성해두었다.
- 역시, RAID 0 구성방식을 사용한 디렉토리는 파일이 나오지 않는다. [test1로 생성했었다.]
- 복구를 위해서 먼저, /etc/fstab에 설정한 RAID 0 설정을 지우거나 주석처리한다.
- 주석 처리 후, 재부팅 하기전에 RAID 1과 RAID 5도 나머지 하나의 하드디스크를 추가하여 RAID 구성을 온전히 한다.
- 위에서 했던 방식으로, 하드디스크를 두 개 추가하여 부팅한다.
- 부팅하여 현재 RAID 1과 RAID 5의 상태를 점검해보자.
mdadm --query --detail /dev/md1
- RAID 장치 상태 확인 명령어
- 아래 빨간색 박스에 보면 removed로 처리되어 있는 것을 확인할 수 있다.
- 새롭게 추가된 장치명을 파악하고, RAID 장치에 추가하기 위해 파티셔닝 및 파일 시스템 포맷을 진행한다.
- 아래의 명령어로 RAID 장치에 파티셔닝된 하드디스크를 추가한다.
mdadm /dev/md1 --add /dev/sdc1 | mdadm /dev/md2 --add /dev/sde1
- 각각의 장치에 하드디스크를 추가한다.
mdadm --detail /dev/md1 | mdadm --detail /dev/md2
- 새롭게 추가된 구성을 확인할 수 있다.
- RAID 장애 관련 로그를 찾아보았다.
- 아래는 RAID 0 장치를 찾을 수 없는 관련 Log로 보인다.
[root@Linux01 ~]# more /var/log/boot.log | grep raid
Mounting /raid1...
Mounting /raid5...
[ OK ] Mounted /raid1.
[ OK ] Mounted /raid5.
[DEPEND] Dependency failed for /raid0.
Mounting /raid5...
Mounting /raid1...
[ OK ] Mounted /raid5.
[ OK ] Mounted /raid1.
[root@Linux01 ~]#
[root@Linux01 ~]# more /var/log/boot.log | grep md0
[ OK ] Created slice system-mdadm\x2dlast\x2dresort.slice.
[ TIME ] Timed out waiting for device dev-md0.device.
- 지금까지 RAID Level 별 구성 및 그에 맞는 명령어를 살펴보았다.
- 또한, RAID Level 구성의 특성을 알아보기 위해 가상의 장애 발생 상황을 일으켜, 장애 상태 확인 및 복구까지 진행했다.
- RAID는 자주 쓰이는 구성이니 확실하게 알아둘 필요가 있다.
'IT > ㄴ Linux' 카테고리의 다른 글
[CentOS] LVM 정리 및 LV 생성하기 [LVM / vgcreate / lvcreate] (0) | 2023.07.19 |
---|---|
[CentOS] Linux 사용자별 하드디스크 공간 제한 quota [quota / edquota / repquota] (0) | 2023.07.17 |
[CentOS] Linux find 명령어 정리 [find / 용례 포함] (0) | 2023.07.17 |
[CentOS] Linux root 계정 복구 및 GRUB Password 설정 [리눅스 패스워드 리커버리] (0) | 2023.07.15 |
[CentOS] Linux 자동 마운트 오류 [ /etc/fstab / automount] (0) | 2023.07.14 |