mdadm는 Linux 운영 체제에서 소프트웨어 RAID(Redundant Array of Independent Disks) 장치를 생성, 관리 및 모니터링하는 유틸리티이다. 이름은 "multiple device"(다중 장치)의 약자인 md에서 파생되었으며, 초기 명칭은 mdctl이었고, 그 이전에는 "Mirror Disk"에서 비롯되었다. 현재는 "Multiple Disk and Device Management"의 약자로 이해된다.
개요
mdadm은 리눅스 커널의 MD(Multiple Devices) 드라이브를 통해 소프트웨어 RAID를 구현한다. 2001년 SUSE의 Neil Brown이 최초로 개발하였으며, GNU GPL v2 이상의 라이선스로 배포되는 자유 소프트웨어이다. 안정 버전 4.6은 2026년 3월 24일에 출시되었다. C 언어로 작성되었으며, 현대 Linux 배포판에서 기존 raidtools/raidtools2 유틸리티를 대체하여 사용된다.
지원 RAID 구성
mdadm은 다음과 같은 RAID 레벨을 지원한다:
- RAID 0 – 블록 수준 스트라이핑(성능 향상, 중복성 없음)
- RAID 1 – 미러링(디스크 복제, 중복성 제공)
- RAID 4 – RAID 0과 유사하나 전용 패리티 디스크 사용
- RAID 5 – 패리티가 모든 디스크에 분산 저장
- RAID 6 – RAID 5와 유사하나 스트라이프당 두 개의 패리티 세그먼트 사용
- RAID 10 – RAID 1 미러 세트를 RAID 0 방식으로 스트라이핑
비RAID 구성
- Linear – 여러 장치를 단일 MD 장치로 연결(2021년부터 사용 중단, 2023년 커널에서 제거)
- Multipath – 단일 장치에 대한 다중 경로 및 장애 조치 제공
- Faulty – 디스크 장애 시나리오 시뮬레이션을 위한 단일 장치(테스트 및 개발용)
- Container – RAID 시스템 구축이 가능한 장치 그룹
주요 특징
/dev/md0~/dev/md99형식의 MD 장치 이름 사용. 최신 커널에서는/dev/md/Home같은 이름도 지원.- 2.6.x 커널부터 파티셔닝 가능한 배열 도입.
- 3.7 커널부터 SSD의 TRIM 연산 지원(Linear, RAID 0, 1, 5, 10).
- RAID 1의 경우
/boot파일시스템으로 사용 가능하며, 부트로더(GRUB 등)는 RAID 1 장치를 일반 파일시스템처럼 취급한 후 시스템 부팅 후 MD로 재마운트 가능. - 외부 메타데이터 지원: DDF(Disk Data Format, SNIA 산업 표준) 및 Intel Rapid Storage Technology(RST, 구 Intel Matrix RAID) 형식을 지원하여 소위 "페이크 RAID(fake RAID)"도 사용 가능.
mdmpd
mdadm 패키지에 포함된 데몬으로, MD 멀티패스 장치를 모니터링하는 역할을 한다. 커널 2.6.10-rc1까지 사용되었으며, 실패한 경로를 15초 간격으로 폴링하여 복구 시 자동으로 추가한다.
사용 방법 예시
- RAID 배열 생성:
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 - 배열 상태 확인:
mdadm --detail /dev/md0 - 모니터링:
mdadm --monitor --scan /proc/mdstat파일을 통해 모든 활성 MD 장치의 상태를 확인 가능.
mdadm은 Linux 시스템 관리 분야에서 소프트웨어 RAID를 구성하는 표준 도구로 널리 사용되며, 공식 문서는 커널 문서(kernel.org)와 GitHub 저장소(md-raid-utilities/mdadm)에서 확인할 수 있다.