웹사이트 검색

새로운 대용량 하드 디스크로 마이그레이션하여 Debian에서 소프트웨어 RAID 확장


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

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

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

먼저 모든 데이터를 백업하십시오. 가이드가 여러 번 테스트되었지만 불운은 여전히 있습니다 ... 우리는 교체를 위해 (제 생각에는 최상의 솔루션) 제공하고 두 개의 오래된 중 하나를 분리합니다 드라이브를 끈 다음 하나의 새 임시 드라이브를 연결한 다음 재동기화하면 여전히 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 및 GB 크기를 입력하여 선택합니다(예: +480GB).

동일한 수의 파티션을 선택하여 a 명령으로 부팅 가능하게 만듭니다.

t로 "fd"(Linux Raid Autodetect)의 파티션 ID를 변경하고 16진수 코드로 작성하면 "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)

우리는 일을 마쳤고 축하합니다.