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에서 모든 것이 제대로 실행되고 있습니다.