기술 가이드

기존 CentOS/RedHat 6.0 시스템에서 RAID1 설정하기

5 min read 시스템 관리 업데이트됨 24 Sep 2025
CentOS/RedHat 6에서 기존 시스템에 RAID1 구성하기
CentOS/RedHat 6에서 기존 시스템에 RAID1 구성하기

By: Maurice Hilarius - Hard Data Ltd. - 2011년 10월 12일

Important: 모든 명령은 루트(root) 권한으로 실행해야 합니다.

su - (루트 비밀번호 입력)

개요

이 튜토리얼은 단일 하드디스크에 CentOS 6이 설치된 시스템을 두 개의 디스크로 RAID1(미러) 구성으로 전환하는 과정을 단계별로 설명합니다. GRUB(legacy)를 사용하는 경우 부팅 가능하도록 메타데이터 형식을 조정하고, initramfs와 부트로더를 업데이트해야 합니다.

정의: RAID1 — 두 개 이상의 디스크에 동일한 데이터를 미러링하여 디스크 장애 시에도 데이터와 부팅 연속성을 유지하는 방법입니다.

중요: 작업 전 전체 백업을 반드시 생성하고 백업이 유효한지 확인하세요.

초기 디스크 레이아웃 예시

원본(운영체제가 설치된) 디스크는 /dev/sdb로 가정합니다. 대상 디스크는 /dev/sda입니다.

원본 디스크 예시:

Device Mountpoint Size

/dev/sdb ~1002GB /dev/sdb1 /boot 256MB /dev/sdb2 / 24GB /dev/sdb3 swap 4GB /dev/sdb5 /var 4GB /dev/sdb6 /home ~900GB

대상 디스크: /dev/sda (~1002GB)

사전 준비 체크리스트

  • 전체 데이터 백업(외부 저장소 또는 네트워크 백업)
  • 백업 검증(복원 테스트 권장)
  • 대상 디스크(/dev/sda) 파티셔닝 전 데이터 없음 확인
  • 필요한 패키지: mdadm, dracut, e2fsprogs 등 설치 확인

단계별 절차

1) 대상 디스크에 기존 파티션 구조 복제

원본 디스크의 파티션 레이아웃을 대상 디스크로 복사합니다:

sfdisk -d /dev/sdb | sfdisk /dev/sda

이 명령은 /dev/sdb의 파티션 테이블을 덤프해서 /dev/sda에 동일하게 씁니다.

2) 커널 모듈 로드 (재부팅 없이 진행)

modprobe linear
modprobe raid0
modprobe raid1

3) RAID 모듈 상태 확인

cat /proc/mdstat

정상적으로 로드되면 Personalities 목록에 [raid1] 등이 표시됩니다.

4) RAID 디바이스 생성 (degraded 상태)

GRUB legacy(0.97)를 사용 중이면 메타데이터 버전 문제로 –metadata=0.90 옵션을 추가해야 합니다. 예:

mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-devices=2 /dev/sda1 missing
mdadm --create /dev/md1 --metadata=0.90 --level=1 --raid-devices=2 /dev/sda2 missing
mdadm --create /dev/md2 --metadata=0.90 --level=1 --raid-devices=2 /dev/sda5 missing
mdadm --create /dev/md3 --metadata=0.90 --level=1 --raid-devices=2 /dev/sda6 missing

(원래는 source 예제에 –metadata 옵션은 선택 사항이지만 Grub legacy와 함께라면 필수입니다.)

이렇게 하면 각 md 디바이스가 “missing” 상태로, 두 번째 디스크가 없는 degraded(저하) 상태의 RAID로 생성됩니다.

5) mdstat 확인

cat /proc/mdstat

예상 출력 예시:

Personalities : [raid1]
md1 : active raid1 sdb2[1]
473792 blocks [2/2] [U_]

md2 : active raid1 sdb5[1]
4980032 blocks [2/2] [U_]

md3 : active raid1 sdb6[1]
3349440 blocks [2/2] [U_]

md0 : active raid1 sdb1[1]
80192 blocks [2/2] [U_]

unused devices: 

U_ 는 한 쪽 디스크가 비어 있음을 의미합니다.

6) 현재 구성으로 mdadm.conf 생성

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

생성된 파일을 확인합니다:

cat /etc/mdadm.conf

파일 하단에 생성한 RAID 디바이스들의 UUID 정보가 기록됩니다.

7) initramfs 재생성 (dracut)

루트 파일시스템에서 mdadm을 참조하도록 initramfs를 재생성합니다.

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
dracut --mdadmconf --force /boot/initramfs-$(uname -r).img $(uname -r)

이 단계는 시스템이 RAID 장치를 부팅 시 인식하도록 합니다.

8) RAID 파티션에 파일시스템 생성 및 스왑 준비

/boot은 ext2(혹은 ext3)를, 루트/홈/var는 ext4 권장 예제로 실행합니다.

mkfs.ext2 /dev/md0 # /boot
mkfs.ext4 /dev/md1 # /
mkfs.ext4 /dev/md2 # /home
mkfs.ext4 /dev/md3 # /var
mkswap -c /dev/sda2 # 스왑은 양쪽 디스크에 생성 권장

mkswap -c는 블록 검사를 수행하므로 시간이 걸릴 수 있습니다.

9) 기존 파티션의 데이터를 새 RAID 디바이스로 복사

먼저 임시 마운트 지점을 만듭니다:

mkdir /mnt/raid

/boot 복사:

mount /dev/md0 /mnt/raid
cd /boot; find . -depth | cpio -pmd /mnt/raid

SELinux 사용 중이라면 레이블을 위해 아래를 추가합니다:

touch /mnt/raid/.autorelabel

sync

umount /mnt/raid

루트 파일 시스템 복사 (tmp 제외):

mount /dev/md1 /mnt/raid
cd / ; find . -depth -xdev | grep -v '^\./tmp/' | cpio -pmd /mnt/raid
sync
umount /mnt/raid

/var 복사:

mount /dev/md3 /mnt/raid
cd /var; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid

/home 복사:

mount /dev/md2 /mnt/raid
cd /home; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid

주의: /tmp와 /var/tmp는 복사하지 않는 것이 안전합니다. 또한 cpio로 복사하면 빈 마운트 포인트(proc, dev 등)가 생성될 수 있으니 기대하는 결과인지 확인하세요.

10) /etc/fstab 업데이트

새로 생성한 md 디바이스에 맞춰 /etc/fstab을 수정합니다. 장치 이름(/dev/mdX) 또는 UUID(권장)를 사용하세요.

UUID를 얻는 방법:

blkid

예시 fstab 항목:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /boot ext2 defaults 1 2
UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy /     ext4 defaults 1 1
UUID=zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz /home ext4 defaults 1 2
UUID=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa /var  ext4 defaults 1 2
/dev/sda2 none swap sw 0 0
/dev/sdb2 none swap sw 0 0

UUID 대신 /dev/md0 같은 장치 경로를 쓰면 재부팅 시 장치 이름이 바뀔 위험이 있으므로 UUID 사용을 권장합니다.

11) GRUB(legacy) 설치 및 구성

GRUB을 두 드라이브(/dev/sda 및 /dev/sdb)에 설치하여 한 디스크가 죽어도 부팅 가능하게 합니다.

  1. /boot가 새 md 디바이스로 올바르게 마운트되는지 확인하고, /boot/grub/menu.lst 또는 /boot/grub/grub.conf(시스템별 파일명)에 루트 및 커널 항목이 맞는지 점검합니다.

  2. grub 설치 예시 (CentOS 6의 grub-legacy 기준):

grub
> device (hd0) /dev/sda
> device (hd1) /dev/sdb
> root (hd0,0)
> setup (hd0)
> setup (hd1)
> quit

또는 비대화형으로:

grub-install /dev/sda
grub-install /dev/sdb

GRUB이 /dev/mdX를 직접 인식하지 못하면 /boot가 md 장치로 마운트된 상태에서 위처럼 장치별로 setup을 실행하여 부트 레코드를 설치합니다.

12) 두 번째 디스크 추가 후 리빌드(실제 사용 시)

대상 디스크(/dev/sdb)의 파티션을 정상적으로 만들고 추가하면 mdadm 으로 어드(add)하여 리빌드를 시작합니다.

예시: /dev/sdb2를 md1에 추가

mdadm --add /dev/md1 /dev/sdb2

리빌드 상태 확인:

cat /proc/mdstat
mdadm --detail /dev/md1

13) mdadm.conf 업데이트 및 initramfs 재생성 (반드시 반복)

리빌드가 완료된 후 mdadm –detail –scan을 다시 실행해 /etc/mdadm.conf를 갱신하고 dracut으로 initramfs를 재생성합니다.

mdadm --detail --scan > /etc/mdadm.conf
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut --mdadmconf --force /boot/initramfs-$(uname -r).img $(uname -r)

14) 부팅 검증

  • 시스템을 재부팅하여 정상적으로 부팅되는지 확인
  • 한 디스크를 강제로 fail 시켜도 부팅되는지 검증(운영환경에서는 유지보수 창 적용)

장애 테스트 예시(안전한 환경에서만):

mdadm --fail /dev/md1 /dev/sdb2
mdadm --remove /dev/md1 /dev/sdb2

그 후 재부팅하여 부팅 성공 여부를 확인합니다. 복구 시에는 위에서 설명한 대로 –add로 다시 추가하고 리빌드를 기다립니다.

복구 및 롤백(요약)

  • 디스크 장애: mdadm –fail, –remove 로 장애 디스크 분리
  • 복구: 파티션 생성 → mdadm –add → rebuild 확인
  • 부트 문제: /boot 마운트, grub-install로 부트레코드 재설치 → initramfs 재생성

역할 기반 체크리스트

시스템 관리자

  • 전체 백업 생성 및 검증
  • 파티션 테이블 복제(sfdisk)
  • mdadm으로 RAID 생성 및 mdadm.conf 업데이트
  • initramfs 재생성, GRUB 설치
  • 재부팅 및 장애 시나리오 테스트

운영자

  • 유지보수 창에 테스트 수행
  • 리빌드 진행 상황 모니터링(/proc/mdstat)
  • RAID 상태 이상 시 즉시 알람 및 보고

수용 기준

  • 시스템이 정상적으로 RAID1에서 부팅되어야 함
  • 한 디스크 제거(또는 실패) 후에도 부팅 및 서비스 연속성 유지
  • mdstat에서 모든 md 디바이스가 정상(복원 후 [UU])으로 표시됨

위험 및 완화

  • 데이터 손실 위험: 전체 백업 필수
  • 부팅 불능 위험: GRUB을 양쪽 디스크에 설치, initramfs 재생성
  • SELinux 레이블 문제: /mnt/raid/.autorelabel 생성

테스트 케이스(권장)

  • 전체 과정 완료 후 정상 재부팅
  • 한쪽 디스크를 fail 상태로 만들고 서비스 지속성 확인
  • 실패한 디스크를 재장착하여 mdadm –add로 리빌드 성공 확인
  • /etc/fstab에 UUID가 올바르게 설정되어 있는지 확인

팁 및 주의사항

  • GRUB legacy를 사용하면 –metadata=0.90 설정을 권장합니다. GRUB2는 대개 최신 메타데이터를 지원합니다.
  • 스왑 파티션은 양쪽 디스크에 두면 성능 및 가용성 측면에서 유리합니다.
  • 리빌드 중엔 시스템 IO가 증가하므로 프로덕션에서는 작업시점을 신중히 선택하세요.
  • dracut 사용 시 –mdadmconf 옵션으로 mdadm.conf의 변경을 반영해야 합니다.

자주 묻는 질문

Q: RAID1으로 변환한 뒤 원래 디스크를 어떻게 처리하나요? A: 원래 디스크를 보조로 추가하여 mdadm –add로 리빌드하거나, 안전성 검증 후 제거 가능합니다.

Q: GRUB2 환경이면 metadata 옵션을 생략해도 되나요? A: 대부분의 경우 GRUB2는 최신 메타데이터를 지원하므로 –metadata 옵션은 필요하지 않습니다. 그러나 부트 문제 발생 시 메타데이터 버전을 조정해 테스트하세요.

요약

이 가이드는 단일 디스크 CentOS/RedHat 6 시스템을 RAID1으로 전환하는 단계별 절차를 제공합니다. 핵심은 파티션 복제, mdadm으로 degraded 상태의 RAID 생성, 파일시스템 생성 및 데이터 복사, initramfs 재생성, GRUB을 양쪽 디스크에 설치하여 부팅 복원력을 보장하는 것입니다. 모든 작업 전에 전체 백업을 만들고 검증하는 것을 잊지 마세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

이동 중 아이폰으로 사무 업무 처리하는 법
생산성

이동 중 아이폰으로 사무 업무 처리하는 법

무료 PDF 주석과 수정: 워터마크 없이
PDF 도구

무료 PDF 주석과 수정: 워터마크 없이

Netflix에서 사용자 지정 프로필 사진 설정하는 방법
가이드

Netflix에서 사용자 지정 프로필 사진 설정하는 방법

eBay 계정 삭제 방법 및 주의사항
가이드

eBay 계정 삭제 방법 및 주의사항

Yahoo 메일 로그인 문제 해결: 단계별 가이드
메일 지원

Yahoo 메일 로그인 문제 해결: 단계별 가이드

CentOS/RedHat 6에서 기존 시스템에 RAID1 구성하기
시스템 관리

CentOS/RedHat 6에서 기존 시스템에 RAID1 구성하기