🔧 Engineering/📁 Study Notes

SW RAID0 → RAID5 변경 가이드

만두개 2026. 4. 1. 15:22
반응형
SMALL

환경: Ubuntu Server | nvme 8디스크 기준
루트(/): md0 — RAID1 (nvme0, nvme1) — 건드리지 않음
변경 대상: md1 — /raid (nvme2~nvme9, 8개디스크)


작업 흐름

사전 확인 → 백업 → umount → fstab 주석
→ stop → zero-superblock → create(RAID5)
→ Resync 대기 → mkfs → mount → fstab 등록

0. 사전 확인

cat /proc/mdstat
lsblk
mount | grep md1

1. 데이터 백업

df -h /raid
rsync -av --progress /raid/ /backup경로/

⚠ RAID0 삭제 시 데이터 완전 소실 — 반드시 백업 후 진행


2. 마운트 해제 및 fstab 수정

umount /raid

vi /etc/fstab
# UUID=... /raid ... 라인 앞에 # 추가

mount -a    # 검증

3. RAID0 중지 및 슈퍼블록 제거

mdadm --stop /dev/md1

mdadm --zero-superblock /dev/nvme2n1p1
mdadm --zero-superblock /dev/nvme3n1p1
mdadm --zero-superblock /dev/nvme4n1p1
mdadm --zero-superblock /dev/nvme5n1p1
mdadm --zero-superblock /dev/nvme6n1p1
mdadm --zero-superblock /dev/nvme7n1p1
mdadm --zero-superblock /dev/nvme8n1p1
mdadm --zero-superblock /dev/nvme9n1p1

cat /proc/mdstat    # md1 없어야 정상

4. RAID5 생성

mdadm --create /dev/md1 --level=5 --raid-devices=8 \
  /dev/nvme2n1p1 /dev/nvme3n1p1 /dev/nvme4n1p1 /dev/nvme5n1p1 \
  /dev/nvme6n1p1 /dev/nvme7n1p1 /dev/nvme8n1p1 /dev/nvme9n1p1

# Continue creating array? → y

5. Resync 완료 대기

watch -n 30 cat /proc/mdstat

완료 확인:

[8/8] [UUUUUUUU]   ← 전부 U
recovery 줄 없음    ← 이 줄 사라져야 완료

⚠ Resync 완료 전 절대 다음 단계 진행 금지 (8디스크 기준 약 4~5시간)


6. 파일시스템 생성 및 마운트

mkfs.ext4 /dev/md1
mount /dev/md1 /raid
df -h /raid

7. 영구 등록

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

blkid /dev/md1    # UUID 확인

vi /etc/fstab
# UUID=<확인한UUID> /raid ext4 defaults,noatime,nodiratime 0 2

mount -a
update-initramfs -u

8. 최종 확인

cat /proc/mdstat
lsblk
df -h /raid
mdadm --detail /dev/md1

주의사항

항목 내용

백업 RAID0 삭제 전 필수
루트(/) 확인 변경 대상이 루트(/)면 작업 불가
zero-superblock 각 디스크 개별 실행 필수
Resync 대기 완료 전 작업 시 데이터 손상
용량 변화 RAID0 28T → RAID5 약 24.5T (1개분 패리티)
fstab 장치명 대신 UUID 사용 권장
오타 주의 --level =5 (X) / --level=5 (O)
반응형
LIST