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/sdcn 명령으로 새 파티션을 생성합니다.
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/sdd1mdadm -f /dev/md0 /dev/sdb1mdadm -r /dev/md0 /dev/sdb1그리고 재구성이 완료될 때까지 다시 기다립니다:
watch cat /proc/mdstat(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)
다음으로 두 개의 새로운 드라이브의 첫 번째 스왑 파티션에 대해 동일한 절차를 수행합니다:
mdadm -add /dev/md1 /dev/sdc2mdadm -f /dev/md0 /dev/sda2mdadm -r /dev/md0 /dev/sda2재구성이 완료될 때까지 다시 기다립니다:
watch cat /proc/mdstat(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)
마지막 드라이브:
mdadm -add /dev/md1 /dev/sdd2mdadm -f /dev/md0 /dev/sdb2mdadm -r /dev/md0 /dev/sdb2재구성이 완료될 때까지 다시 기다립니다:
watch cat /proc/mdstat(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)
이 시점에서 두 드라이브 모두에 부트로더를 재설치합니다:
grub-install /dev/sdcgrub-install /dev/sdd이제 우리는 RAID에서 퇴출된 오래된 드라이브와 장착되고 작동하는 새로운 드라이브를 갖게 됩니다. 그러나 사용 가능한 공간은 파티션에서 허용되는 최대 크기보다 작습니다.
그런 다음 파티션을 확장하고 두 볼륨 모두에 대해 확인하는 작업을 진행합니다:
mdadm —grow —raid-devices=2 /dev/md0mdadm -A —scanmdadm —grow /dev/md0 —size=maxmdadm —examine —scane2fsck -f /dev/md0resize2fs /dev/md0mdadm —grow —raid-devices=2 /dev/md1mdadm -A —scanmdadm —grow /dev/md1 —size=maxmdadm —examine —scane2fsck -f /dev/md1resize2fs /dev/md1작업이 끝나면 PC를 끄고 오래된 드라이브의 연결을 끊고 기계를 다시 시작합니다.
재부팅이 성공적으로 이루어졌더라도 보안상의 이유로 grub을 재구성합니다. 새로운 드라이브가 이전 드라이브의 이름(sda 및 sdb)을 가져왔기 때문입니다:
mv /boot/grub/device.map /boot/grub/device.map.oldgrub-mkdevicemapupdate-grub2 && grub-install /dev/sda && grub-install /dev/sdb새로운 RAID 설정이 제대로 작동하는지 확실히 확인하고 싶다면 기계를 종료하고 새로운 드라이브 중 하나의 연결을 끊고 다시 시작하십시오. 문제 없이 시작해야 합니다. 이후 다시 종료하고 드라이브를 연결한 후 시작하십시오. RAID 상태를 확인하기 위해 이 명령을 사용할 수 있습니다.
watch cat /proc/mdstat(물론 CTRL + C를 눌러 프로세스를 종료할 수 있습니다)
작업이 완료되었습니다. 축하합니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.