Lvm
複製 xen VM 以測試郵件伺服器的 dist-upgrade
我將 Xen 與 LVM 一起使用,並希望
vm01.mail-disk
在 Debian jessie 中使用 courier/postfix 複製我的郵件伺服器 VM,以測試升級是否容易實現。如何複製虛擬機,我必須在複製中進行哪些更改,以免干擾正在執行的郵件伺服器?
恐怕複製會立即開始從現有隊列中獲取或發送郵件。
我將首先創建一個與原始快照相同的虛擬機快照:
lvcreate -L20480 -s -n 'vm01.mail-disk-snapshot' /dev/vg0/vm01.mail-disk
但是我不確定現在訪問該快照並測試 dist-upgrade 的最佳方法是什麼。
先決條件:
- 為您的新虛擬機選擇一個 IP(在本例中為 10.77.77.200)
- 為新 VM 選擇 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
使新 VM 適應新 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.清空postqueue,這樣你的新VM就不會發送郵件
postsuper -d ALL
2.適配Hostname並退出
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"
在開發此解決方案期間解決的問題:
在這裡您可以看到最近幾天發生的問題: 無法啟動新 VM,當從一個 XEN 主機複製到另一個 XEN 主機時
固定的
現在一切都在新複製的 VM 中執行良好