서버 데이터 마이그레이션을 수행하는 덜 복잡한 방법은 무엇입니까?

서버 데이터 마이그레이션을 수행하는 덜 복잡한 방법은 무엇입니까?

SO에게는 너무 구체적이거나 개인적인 질문일 수 있지만 다음과 같습니다.

현재 단일 하드 드라이브를 실행 중인 서버를 상속받았으며 기본 Ubuntu 16.04 서버 설정을 사용하면 서버는 다음 파티션 구성표에 따라 디스크를 실행하고 있습니다.

sda1 : 512 Mb : Boot : primary/physical partition
sda2 : Rest of Disk : Extended Partition
sda5 : Rest of Disk : Logical, Linux LVM Partition

LVM에는 이 디스크로만 구성된 볼륨 그룹이 있습니다. 그것은 다음과 같이 나누어집니다:

swap_1 (2.00 GB)
root (remaining space)

궁극적인 목표는 이 드라이브의 내용(및 구조)을 더 큰 두 개의 드라이브로 이동하는 것입니다.개별적으로부팅 가능한 RAID1 드라이브.

즉, 내 "목표"는 새 sdb인 sdc의 새 구성원 각각에 대한 것입니다.

/dev/md0은 sdb1과 sdc1 사이의 raid1이 되며 포맷되고 (희망적으로) sda1의 복사본이 됩니다. Md0은 LVM에 의해 처리되지 않고 직접 사용됩니다(그래서 우리는 LVM에서 부팅할 수 있습니다)

/dev/md1은 sdb2와 sdc2 사이에서 raid1이 됩니다. /dev/md1은 새 VG의 유일한 PV로 사용되며 위와 유사하게 구분됩니다(2GB는 스왑용, 나머지는 스토리지용).

따라서 가상 프로세스에는 복구 CD를 사용하여 시스템을 부팅하고, md0 및 md1을 설정하고, md1에 LVM을 만든 다음, dd를 사용하여 데이터를 sda1에서 md0으로, /dev/vg1/root에서 /dev/vg2/로 각각 복사하는 작업이 포함됩니다. 뿌리. 물론 grub은 /sdb 및 /sdc에도 설치되어야 합니다.

초기 테스트는 유망해 보이지만 더 나은 실용적인 접근 방식이 있습니까?

답변1

수행 중인 작업에 특별히 잘못된(또는 복잡한) 점은 없는 것 같지만 LVM을 사용하고 있으므로 다른 옵션이 있습니다. pvmove데이터를 새 배열로 이동하는 데 사용할 수 있습니다. 장점은 이 작업을 온라인으로 수행할 수 있어 가동 중지 시간이 거의 없다는 것입니다.

pvmove를 사용하려면 기존 볼륨 그룹을 확장하고( pvcreate /dev/md1 && vgextend existing-group /dev/md1), pvmove를 사용하여 논리 볼륨을 이동하고( pvmove --atomic /dev/sda5 /dev/md1), 마지막으로 vgreduce existing-group /dev/sda5볼륨 그룹에서 sda5를 제거해야 합니다( ).

dd/boot는 일반 작업 중에는 사용되지 않으므로 온라인( 사용)으로 복사할 수 있습니다 . 먼저 제거하기만 하면 됩니다.

어느 쪽이든, initramfs를 업데이트했는지 확인하세요. 이제 mdraid를 시작해야 하는데 이전에는 그렇지 않았습니다.

다음 재부팅을 계획하고 문제가 발생할 경우를 대비하여 복구 디스크를 준비하십시오(예: initramfs가 올바르게 생성되지 않음). 물론 먼저 매뉴얼 페이지를 테스트하고 읽어보는 것이 좋습니다.

관련 정보