리눅스 mdadm
IT 위키
더 많은 작업
리눅스 커널의 md(Multiple Devices) 드라이버를 이용해 소프트웨어 RAID 장치를 만들고 관리한다.
- mdadm 패키지에 포함되어 있다.
- 경로 : /usr/sbin/mdadm
- 만들어진 RAID 장치는 /dev/md0, /dev/md1 같은 이름을 가지며, 상태는 /proc/mdstat에서 확인한다.
- 설정 파일 : /etc/mdadm.conf (Ubuntu/Debian은 /etc/mdadm/mdadm.conf)
# mdadm [모드] [RAID장치] [옵션] [구성장치...] # mdadm --create /dev/md0 --level=[레벨] --raid-devices=[개수] [장치...]
- -C, --create : 새 RAID 배열을 만든다.
- -A, --assemble : 이미 만들어진 배열을 다시 조립해 활성화한다.
- -D, --detail : 활성화된 RAID 장치의 자세한 정보를 출력한다.
- -E, --examine : 구성 장치에 기록된 md 슈퍼블록 정보를 출력한다.
- -S, --stop : RAID 장치를 정지한다.
- -Q, --query : 장치가 md 장치인지, 배열의 구성원인지 간단히 확인한다.
- --manage : 동작 중인 배열에 장치를 추가/제거한다. (--add, --remove, --fail을 쓰면 생략할 수 있다)
- -l, --level= : RAID 레벨을 지정한다. (0, 1, 4, 5, 6, 10, linear 등)
- -n, --raid-devices= : 배열을 구성하는 활성 장치 개수를 지정한다.
- -x, --spare-devices= : 예비(spare) 장치 개수를 지정한다.
- -c, --chunk= : 청크 크기(KB)를 지정한다.
- -s, --scan : 설정 파일이나 /proc/mdstat에서 배열 정보를 찾아 사용한다. --detail과 함께 쓰면 mdadm.conf 형식으로 출력한다.
- -a, --add : 배열에 장치를 추가한다.
- -r, --remove : 배열에서 장치를 제거한다. (실패 또는 예비 상태여야 한다)
- -f, --fail : 장치를 실패(faulty) 상태로 표시한다.
- --zero-superblock : 장치에 남은 md 슈퍼블록을 지워 다른 용도로 쓸 수 있게 한다.
- -v, --verbose : 자세한 정보를 출력한다.
| 레벨 | 방식 | 최소 디스크 | 사용 가능 용량 |
|---|---|---|---|
| RAID 0 | 스트라이핑 | 2 | N |
| RAID 1 | 미러링 | 2 | N/2 |
| RAID 5 | 분산 패리티 | 3 | N-1 |
| RAID 6 | 이중 분산 패리티 | 4 | N-2 |
| RAID 10 | 미러링 + 스트라이핑 | 4 | N/2 |
# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
- 디스크 2개로 RAID 0(스트라이핑) 장치 /dev/md0을 만든다.
# mdadm -C /dev/md1 -l 1 -n 2 /dev/sdd1 /dev/sde1
- 디스크 2개로 RAID 1(미러링) 장치를 만든다. 짧은 옵션을 사용한 형태이다.
# mdadm --create /dev/md5 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1
- 디스크 3개로 RAID 5를 만들고 1개를 예비 디스크로 둔다.
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sde1[1] sdd1[0]
1046528 blocks super 1.2 [2/2] [UU]
# mdadm --detail /dev/md1
- /proc/mdstat에서 전체 RAID 상태를, --detail로 특정 장치의 상세 정보를 확인한다. [UU]는 두 디스크가 모두 정상이라는 뜻이다.
# mdadm --detail --scan >> /etc/mdadm.conf # mkfs.xfs /dev/md1 # mount /dev/md1 /raid1
- 배열 정보를 설정 파일에 기록해 재부팅 후에도 같은 이름으로 조립되게 하고, 파일 시스템을 만들어 마운트한다.
# mdadm /dev/md1 --fail /dev/sdd1 # mdadm /dev/md1 --remove /dev/sdd1 # mdadm /dev/md1 --add /dev/sdf1 # mdadm --stop /dev/md1
- 장애 디스크를 실패로 표시해 제거하고 새 디스크를 추가한다. 마지막 줄은 RAID 장치를 정지한다.
- RAID 생성 명령의 빈칸 채우기(--create, --level, --raid-devices)가 자주 나온다.
- RAID 레벨별 최소 디스크 수와 사용 가능 용량을 계산하는 문제가 나온다.
- 상태 확인 파일 /proc/mdstat, 설정 파일 /etc/mdadm.conf, mdadm --detail --scan의 용도를 묻는다.
- fdisk로 파티션을 만들 때 시스템 ID를 fd(Linux raid autodetect)로 지정한다.
- RAID
- 리눅스 LVM
- fdisk 명령어 : 디스크 파티션을 관리한다.
- mkfs.xfs 명령어 : XFS 파일 시스템을 만든다.
- mount 명령어 : 파일 시스템을 마운트한다.
- 리눅스 파일 시스템