mdadm

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와 연동한 자동 마운트·복구 기능을 제공한다.

핵심 기능

  1. 어레이 생성

    mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
    
  2. 어레이 상세 조회

    mdadm --detail /dev/md0
    
  3. 어레이 확장 (디스크 추가)

    mdadm --add /dev/md0 /dev/sdd
    mdadm --grow /dev/md0 --raid-devices=4
    
  4. 어레이 축소 (디스크 제거)

    mdadm --grow /dev/md0 --raid-devices=3
    mdadm --remove /dev/md0 /dev/sdd
    
  5. 자동 복구·모니터링

    • mdadm --monitor --daemonise --scan --mail=root@localhost 로 백그라운드 감시 및 오류 알림 설정
    • systemd 서비스인 mdmonitor.service 와 연동 가능
  6. 구성 파일 관리

    • 기본 구성 파일: /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=...)

시스템 통합

  1. 부팅 시 자동 조립
    • initramfsmdadm 바이너리와 메타데이터를 포함하여 루트 파일 시스템이 RAID 위에 있을 경우 자동 조립 가능.
  2. systemd 서비스
    • mdadm.service – 어레이 자동 조립
    • mdmonitor.service – 어레이 상태 모니터링 및 알림
  3. 전통적인 init 스크립트
    • /etc/init.d/mdadm (Debian/Ubuntu) 혹은 mdadm rc 스크립트 (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와 연계된 자동 조립·감시 기능이 기본 제공돼 서버·데스크톱 모두에서 널리 사용된다.

둘러보기

더 찾아볼 만한 주제