RAID 확장 · 4 min read · Nov 14, 2025

Debian에서 새로운 대용량 하드 디스크로 소프트웨어 RAID 확장하기

설정: RAID 1(미러)의 두 개의 물리적 드라이브를 더 용량이 큰 두 개의 드라이브로 교체할 것입니다. 외부 부팅 미디어에서 부팅할 필요 없이 실행 중인 운영 체제에서 “핫” 교체를 수행합니다. 이 가이드는 Debian 배포판 6, 7, 8에서 32비트 및 64비트 모두에서 테스트되었습니다.

두 드라이브가 루트 및 스왑 파티션으로 파티셔닝되어 있으며 이 두 파티션이 두 개의 RAID 장치 md0 및 md1을 구성한다고 가정합니다:

  • 볼륨 md0(루트)를 구성하는 sda1 및 sdb1 파티션
  • 볼륨 md1(스왑)을 구성하는 sda2 및 sdb2 파티션

먼저 모든 데이터를 백업하십시오. 가이드가 여러 번 테스트되었더라도 불행은 여전히 존재합니다… 우리는 교체를 위한 (내 생각에 가장 좋은 해결책) 방법을 제공합니다. 기계를 끈 상태에서 두 개의 오래된 드라이브 중 하나를 분리한 다음, 새로운 임시 드라이브를 연결하고 다시 동기화합니다. 이렇게 하면 RAID가 작동하고 단일 드라이브(RAID가 축소 모드로 작동)도 유지되며, 문제가 발생할 경우 작동하는 RAID를 다시 생성할 수 있습니다. 이를 위해 전체 드라이브를 빈 드라이브로 교체한 후 다음 명령을 입력하십시오:

sfdisk -d /dev/hd source | sfdisk —force /dev/hd empty  
mdadm —zero-superblock /dev/hd empty  
mdadm —add /dev/md(raid) /dev/hd(empty)

시스템의 각 RAID / 파티션에 대해 마지막 두 줄을 반복하십시오.

(예:

mdadm -add /dev/md0 /dev/sdb1 

그런 다음

mdadm -add /dev/md1 /dev/sdb2

기타 ..

이렇게 하면 소스 드라이브의 파티션 테이블을 빈 대상에 강제로 복사한 다음 이를 RAID에 추가합니다.

물론 재구성 프로세스가 끝날 때까지 기다려야 하며, 이를 모니터링하려면:

watch cat / pro / mdstat

(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)

이 시점에서 기계를 종료하고 두 개의 새로운 디스크를 추가합니다. 이 디스크는 각각 sdc 및 sdd가 되며, 그런 다음 서버를 시작하고 다음 명령을 실행합니다:

fdisk -l

결과는 다음과 비슷해야 합니다:

Disk /dev/sda: ……MB , ………….Bytes  
… heads, …sectors/track , ….. cylinders  
I/O size (minimum/optimal): 512 bytes / 512 bytes  
Disk: identifier : ………..
Device boot Start End Blocks Id   System
/dev/sda2        970           1044 602437+ fd   Linux raid autodetect
/dev/sda2            1 969 7783461 fd   Linux raid autodetect 
……
/dev/sdb1     *       1 969 7783461 fd   Linux raid autodetect 
/dev/sdb2            970        1044 602437+ fd   Linux raid autodetect 
……
Disk /dev/sdc: …Mb, …….Bytes
……
Disk /dev/sdd: …Mb, …….Bytes
……
Disk /dev/md0: …Mb, …….Bytes
…...
Disk /dev/md1: …Mb, …….Bytes

이제 다음을 입력하십시오:

fdisk /dev/sdc

n 명령으로 새 파티션을 생성합니다.

p 기본 파티션을 선택합니다.

파티션 번호(1,2,3 등)를 선택합니다.

시작 실린더(1)를 선택합니다.

기본 파티션의 크기를 + 기호 뒤에 GB 단위로 입력하여 선택합니다(예: +480GB)

a 명령으로 부팅 가능하게 만들고, 동일한 파티션 번호를 선택합니다.

t 명령으로 파티션 ID를 “fd“(Linux Raid Autodetect)로 변경하고, Hex 코드로 “fd“만 입력합니다.

그런 다음 두 번째 파티션(스왑 파티션)에 대해 모든 명령을 반복합니다.

변경 사항을 w로 저장합니다.

물론 파티션 크기에 주의해야 합니다. 최상의 해결책은 현재 스왑 크기를 전체 여유 공간에서 빼서 가능한 한 넓은 공간을 가진 작업 파티션을 만드는 것입니다.

이제 SDD 드라이브에서 정확히 동일한 작업을 수행하여 이전에 사용한 것과 동일한 크기의 동일한 파티션을 생성합니다.

이 시점에서 첫 번째 “완전한” 드라이브와 첫 번째 새로운 드라이브 간의 교환을 수행하고, 후자를 RAID에 여분으로 추가합니다:

mdadm -add /dev/md0 /dev/sdc1

그런 다음 RAID 디스크 상황을 확인해야 하며, 다음과 같아야 합니다:

md0: active raid 1 sdc1[S] sda1[2] sdb1[3]
 ………blocks super 1.2 [2/2] [UU]

그런 다음 원래 드라이브를 넣습니다:

mdadm -f /dev/md0 /dev/sda1

그리고 RAID에서 제거합니다:

mdadm -r /dev/md0 /dev/sda1

이제 재구성이 자동으로 시작되었는지 확인하고, 다시 모니터링하여 완료될 때까지 기다립니다:

watch cat /proc/mdstat

(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)

마지막으로 새로운 드라이브(/ dev / sdc)에 부트로더(grub)를 설치합니다:

grub-install /dev/sdc

동일한 프로세스를 각 시스템 파티션에 대해 반복해야 합니다:

mdadm -add /dev/md0 /dev/sdd1
mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1

그리고 재구성이 완료될 때까지 다시 기다립니다:

watch cat /proc/mdstat

(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)

다음으로 두 개의 새로운 드라이브의 첫 번째 스왑 파티션에 대해 동일한 절차를 수행합니다:

mdadm -add /dev/md1 /dev/sdc2
mdadm -f /dev/md0 /dev/sda2
mdadm -r /dev/md0 /dev/sda2

재구성이 완료될 때까지 다시 기다립니다:

watch cat /proc/mdstat

(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)

마지막 드라이브:

mdadm -add /dev/md1 /dev/sdd2
mdadm -f /dev/md0 /dev/sdb2
mdadm -r /dev/md0 /dev/sdb2

재구성이 완료될 때까지 다시 기다립니다:

watch cat /proc/mdstat

(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)

이 시점에서 두 드라이브 모두에 부트로더를 재설치합니다:

grub-install /dev/sdc
grub-install /dev/sdd

이제 우리는 RAID에서 퇴출된 오래된 드라이브와 장착되고 작동하는 새로운 드라이브를 갖게 됩니다. 그러나 사용 가능한 공간은 파티션에서 허용되는 최대 크기보다 작습니다.

그런 다음 파티션을 확장하고 두 볼륨 모두에 대해 확인하는 작업을 진행합니다:

mdadm —grow —raid-devices=2 /dev/md0
mdadm -A —scan
mdadm —grow /dev/md0 —size=max
mdadm —examine —scan
e2fsck -f /dev/md0
resize2fs /dev/md0
mdadm —grow —raid-devices=2 /dev/md1
mdadm -A —scan
mdadm —grow /dev/md1 —size=max
mdadm —examine —scan
e2fsck -f /dev/md1
resize2fs /dev/md1

작업이 끝나면 PC를 끄고 오래된 드라이브의 연결을 끊고 기계를 다시 시작합니다.

재부팅이 성공적으로 이루어졌더라도 보안상의 이유로 grub을 재구성합니다. 새로운 드라이브가 이전 드라이브의 이름(sda 및 sdb)을 가져왔기 때문입니다:

mv /boot/grub/device.map /boot/grub/device.map.old
grub-mkdevicemap
update-grub2 && grub-install /dev/sda && grub-install /dev/sdb

새로운 RAID 설정이 제대로 작동하는지 확실히 확인하고 싶다면 기계를 종료하고 새로운 드라이브 중 하나의 연결을 끊고 다시 시작하십시오. 문제 없이 시작해야 합니다. 이후 다시 종료하고 드라이브를 연결한 후 시작하십시오. RAID 상태를 확인하기 위해 이 명령을 사용할 수 있습니다.

watch cat /proc/mdstat

(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)

작업이 완료되었습니다. 축하합니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.