mdadm (Linux MD RAID 관리 도구)
mdadm(Multiple Device Admin)은 리눅스 커널에서 제공하는 소프트웨어 RAID(Redundant Array of Independent Disks) 를 구성·관리하기 위한 사용자 공간 유틸리티이다. md(multiple device) 서브시스템과 연동하여 디스크 배열을 생성·조정·감시하고, RAID 레벨에 따라 데이터 복제·분산·스트라이프 등을 수행한다.
개요
| 구분 | 내용 |
|---|---|
| 전체 명칭 | MDADM (Multiple Device Admin) |
| 형식 | 명령행 기반 유틸리티 (C 언어로 구현) |
| 주요 기능 | RAID 0, 1, 4, 5, 6, 10 등 다양한 레벨의 어레이 생성·확장·축소·복구·모니터링 |
| 대상 플랫폼 | Linux (커널 2.4 이상에서 MD 서브시스템 지원) |
| 패키지명 | 대부분의 배포판에서 mdadm 패키지로 제공 (예: Debian/Ubuntu, RHEL/CentOS, SUSE) |
| 라이선스 | GPLv2 |
역사
- 2000년대 초: 리눅스 커널에 MD(Multiple Device) 서브시스템이 도입돼 소프트웨어 RAID가 기본 기능으로 제공되기 시작했다.
- 2001년: 최초의
mdadm버전이 Neil Brown에 의해 발표되었으며, 기존mdassemble,mdmonitor등 개별 스크립트를 통합한 형태였다. - 2005~2010년: RAID 5/6, 배터리 백업 캐시(BCache)와의 연동, 자동 복구 기능 등이 추가되며 기업용 서버에서 널리 채택되었다.
- 현재: 최신
mdadm은 RAID 레벨 동적 전환, 어레이 파트너십(MD RAID-1+0), 그리고systemd와 연동한 자동 마운트·복구 기능을 제공한다.
핵심 기능
-
어레이 생성
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc -
어레이 상세 조회
mdadm --detail /dev/md0 -
어레이 확장 (디스크 추가)
mdadm --add /dev/md0 /dev/sdd mdadm --grow /dev/md0 --raid-devices=4 -
어레이 축소 (디스크 제거)
mdadm --grow /dev/md0 --raid-devices=3 mdadm --remove /dev/md0 /dev/sdd -
자동 복구·모니터링
mdadm --monitor --daemonise --scan --mail=root@localhost로 백그라운드 감시 및 오류 알림 설정systemd서비스인mdmonitor.service와 연동 가능
-
구성 파일 관리
- 기본 구성 파일:
/etc/mdadm/mdadm.conf(또는/etc/mdadm.conf) mdadm --detail --scan > /etc/mdadm/mdadm.conf로 현재 어레이 정보를 저장하고 부팅 시 자동 조립을 지원
- 기본 구성 파일:
주요 옵션 및 사용 예시
| 옵션 | 의미 | 예시 |
|---|---|---|
--create |
새로운 RAID 어레이 생성 | mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sde /dev/sdf |
--assemble |
기존 어레이 재조립 | mdadm --assemble /dev/md0 |
--stop |
어레이 중지 | mdadm --stop /dev/md0 |
--detail |
어레이 상세 정보 출력 | mdadm --detail /dev/md0 |
--grow |
어레이 크기·구성 변경 | mdadm --grow /dev/md0 --size=max |
--add / --remove |
디바이스 추가·제거 | mdadm --add /dev/md0 /dev/sdg |
--monitor |
실시간 상태 감시 | mdadm --monitor --daemonise --scan |
--examine |
개별 디스크 메타데이터 확인 | mdadm --examine /dev/sda |
관련 파일·디렉터리
- 디바이스 파일:
/dev/mdX(X는 어레이 번호) - 메타데이터: 각 물리 디스크의
/dev/sdX파티션에 MD 메타데이터가 저장됨 (/dev/sdX1등) - 구성 파일:
/etc/mdadm/mdadm.conf– 부팅 시 자동 어레이 조립을 위한 어레이 정의(예:ARRAY /dev/md0 level=raid1 num-devices=2 UUID=...)
시스템 통합
- 부팅 시 자동 조립
initramfs에mdadm바이너리와 메타데이터를 포함하여 루트 파일 시스템이 RAID 위에 있을 경우 자동 조립 가능.
- systemd 서비스
mdadm.service– 어레이 자동 조립mdmonitor.service– 어레이 상태 모니터링 및 알림
- 전통적인 init 스크립트
/etc/init.d/mdadm(Debian/Ubuntu) 혹은mdadmrc 스크립트 (RHEL)
주요 장점·제한
| 장점 | 제한 |
|---|---|
| 소프트웨어 기반: 별도 하드웨어 컨트롤러 없이도 RAID 구현 가능 | CPU 부하가 증가(특히 RAID 5/6에서 패리티 연산) |
| 유연성: 동적 디스크 추가·제거·레벨 변경이 용이 | 대규모 고성능 워크로드에서는 전용 RAID 카드 대비 성능 저하 가능 |
| 오픈소스: 자유롭게 수정·배포 가능 | 복구 과정에서 데이터 손실 위험이 있으므로 사전 백업 필요 |
| 다양한 레벨 지원: 0,1,4,5,6,10 등 | 메타데이터 버전이 서로 호환되지 않을 수 있음(예: 0.9 vs 1.2) |
참고 문헌·링크
- 공식 매뉴얼:
man mdadm– 옵션 및 활용 사례 상세 설명 - Linux MD RAID Wiki: https://raid.wiki.kernel.org/index.php/Linux_Raid
- Debian mdadm 패키지 문서: https://manpages.debian.org/stable/mdadm/mdadm.8.en.html
- Red Hat Enterprise Linux 8 Documentation – Managing MD RAID: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_systems/using-mdadm_to_manage-software-raid_configuring-and-managing-systems
요약
mdadm은 리눅스 환경에서 소프트웨어 RAID 어레이를 생성·관리·모니터링하는 핵심 도구이며, 시스템 관리자는 이를 통해 고가용성·성능 향상을 손쉽게 구현할 수 있다. 최신 배포판에서는 systemd와 연계된 자동 조립·감시 기능이 기본 제공돼 서버·데스크톱 모두에서 널리 사용된다.