xen VM을 복사하여 메일 서버의 dist 업그레이드 테스트

xen VM을 복사하여 메일 서버의 dist 업그레이드 테스트

vm01.mail-disk저는 LVM과 함께 Xen을 사용하고 있으며 업그레이드가 쉬운지 테스트하기 위해 Debian jessie에서 courier/postfix를 사용하여 메일 서버 VM을 복제하고 싶습니다 .

가상 머신을 복제하는 방법과 실행 중인 메일 서버를 방해하지 않도록 복제에서 무엇을 변경해야 합니까?

클론이 즉시 기존 대기열에서 메일을 받거나 보내기 시작할 것 같습니다.

먼저 원본 VM과 동일한 VM의 스냅샷을 생성합니다.

lvcreate -L20480 -s -n 'vm01.mail-disk-snapshot' /dev/vg0/vm01.mail-disk

하지만 지금 해당 스냅샷에 액세스하고 dist 업그레이드를 테스트하는 가장 좋은 방법이 무엇인지 잘 모르겠습니다.

답변1

전제 조건:

  • 새 가상 머신의 IP를 선택합니다(이 예에서는 10.77.77.200).
  • 새 가상 머신에 대해 IP6을 선택합니다(이 예에서는 2a01:4f8:241:1d02:0:77:77:200).
  • 이름(vm01.mail-test)을 선택하세요.

새로운 xen 게스트 생성

xen-create-image --hostname=vm01.mail-test --pygrub --size=180Gb --swap=8Gb --vcpus=1 --memory=8Gb --ip=10.77.77.200 --dist=jessie --nopasswd --nodhcp --gateway=10.77.77.1 --netmask=255.255.255.0 --broadcast=10.77.77.255
# maybe this would be enough:
#lvcreate -L 180G -n vm01.mail-test-disk /dev/vg0
#lvcreate -L 1G -n vm01.mail-test-swap /dev/vg0
#mkfs.ext4 /dev/vg0/vm01.mail-test-disk
#mkswap /dev/vg0/vm01.mail-test-swap

스냅샷과 새 LVM 볼륨을 마운트합니다:

mkdir -p /media/vm01.mail-disk-snapshot/
mkdir -p /media/vm01.mail-test-disk/
mount /dev/vg0/vm01.mail-disk-snapshot /media/vm01.mail-disk-snapshot/
mount /dev/vg0/vm01.mail-test-disk /media/vm01.mail-test-disk/

rsync를 사용하여 모든 데이터를 새 LVM 볼륨에 복사

새 가상 머신을 포맷하고 스냅샷의 모든 파일을 새로 생성된 가상 머신에 동기화합니다.새 서버에 복사할 수 없는 폴더 건너뛰기:

mkfs.ext4 /dev/vg0/vm01.mail-test-disk
e2fsck -f /dev/vg0/vm01.mail-test-disk
tune2fs -O ^metadata_csum /dev/vg0/vm01.mail-test-disk
# yes
tune2fs -O ^64bit /dev/vg0/vm01.mail-test-disk
resize2fs -s /dev/vg0/vm01.mail-test-disk
rsync -aAxX --del --info=progress2 /media/vm01.mail-disk-snapshot/ /media/vm01.mail-test-disk/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/boot/*,/var/tmp/*,/var/cache/*,/usr/tmp/*}
# this excludelist for rsync only excludes * inside each folders

새 가상 머신을 새 IP에 적용

find /media/vm01.mail-test-disk/etc/ -type f -exec sed -i -e "s/2a01:4f8:241:1d02:0:77:77:101/2a01:4f8:241:1d02:0:77:77:200/g" \
                                                          -e "s/10.77.77.101/10.77.77.200/g" \
                                                          "{}" \;

새로 설치된 시스템에 chroot를 실행합니다.

mount /dev/vg0/vm01.mail-test-disk /media/vm01.mail-test-disk/
mount -t proc none /media/vm01.mail-test-disk/proc
mount --bind /dev /media/vm01.mail-test-disk/dev
mount -t sysfs sysfs /media/vm01.mail-test-disk/sys
chroot /media/vm01.mail-test-disk/ /bin/bash

1. 새 가상 머신이 메일을 보내지 않도록 뒤로 대기열을 지웁니다.

postsuper -d ALL

2. 호스트 이름을 수정하고 종료합니다.

hostname mail-test
echo mail-test > /etc/hostname
echo "127.0.0.1 mail-test" >> /etc/hosts
exit

새 가상 머신 시작

umount -l /media/vm01.mail-test-disk
umount /media/vm01.mail-disk-snapshot 

xen create /etc/xen/vm01.mail-test.cfg
sleep 20
ssh 10.77.77.200 "ip a s"

이 솔루션을 개발하는 동안 해결된 문제:

여기에서 지난 며칠 동안 발생한 문제를 확인할 수 있습니다. 한 XEN 호스트에서 다른 XEN 호스트로 복사할 때 새 VM을 시작할 수 없습니다.

안정적인

이제 새로 복사된 VM에서 모든 것이 제대로 실행되고 있습니다.

관련 정보