Hello, I've been trying to set COLO replication to work but i'm stuck on a problem when migrating de primary VM to secondary host.
I have been following the instructions from this wiki - http://wiki.xenproject.org/wiki/COLO_-_Coarse_Grain_Lock_Stepping and this mail thread - http://xen.markmail.org/search/?q=COLO#query:COLO+page:1+mid:fb7wrn62vbks4unn+state:results I'm anexing the steps i took setting the environment before facing this problem when executing 'xl remus' command: >migration target: Ready to receive domain. >Saving to migration stream new xl format (info 0x3/0x0/2840) >Loading new save file <incoming migration stream> (new xl fmt info 0x3/0x0/2840) >Savefile contains xl domain config in JSON format >Parsing config from <saved> >xc: info: Saving domain 2, type x86 HVM >xc: info: Found x86 HVM domain from Xen 4.7 >xc: info: Restoring domain >xc: Frames iteration 0 of 5: 1045504/1045504 100% >xc: Domain now suspended: 0/0 0% >libxl: error: libxl_qmp.c:702:libxl__qmp_initialize: Connection error: No such file or directory >libxl: error: libxl_colo_restore.c:817:colo_restore_setup_cds_done: COLO: failed to setup device >for guest with domid 1 >xc: error: Restore failed (38 = Function not implemented): Internal error >libxl: info: libxl_colo_restore.c:320:libxl__colo_restore_teardown: colo fails >libxl: error: libxl_stream_read.c:852:libxl__xc_domain_restore_done: restoring domain: Function >not implemented >libxl: info: libxl_colo_restore.c:320:libxl__colo_restore_teardown: colo fails I'm hoping that someone could provide with directions. Thanks for your time and sory for bad english (not native language). Sadi.
Network master: br0 : 10.20.107.30 binded with eth0 eth1: 192.168.1.30 eth2: 192.168.2.30 slave: br0 eth0: 10.20.107.33 binded with eth0 br1: no ip address binded with eth1 eth1: 192.168.1.33 eth2: 192.168.2.33 Eth1 both sides directly connected by cable Eth2 both sides directly connected by cable Repositories used: https://github.com/Pating/colo-proxy/tree/changlox https://github.com/macrosheep/iptables.git https://github.com/torvalds/linux https://github.com/wencongyang/xen Kernel build instructions followed: 2. Prepare host kernel for Dom0 colo-proxy kernel module need cooperate with linux kernel. You should patch kernel with ~/colo-proxy/colo-patch-for-kernel.patch -cd ~/colo-proxy/; git checkout 405527cbfa9f -cd ~/linux/; git checkout v4.0; git am ~/colo-proxy/colo-patch-for-kernel.patch -cp /boot/config-3.0.76-0.11-xen .config; make menuconfig to config your kernel support Dom0. Ref: http://wiki.xenproject.org/wiki/Mainline_Linux_Kernel_Configs -make -j8; make modules_install; make install -reboot COLO-Proxy: -cd ~/colo-proxy/; git checkout 405527cbfa9f; make; make install IPTables: -cd iptables; ./autogen.sh; ./configure --prefix=/usr/ --libdir=/usr/lib64; make; make install XEN: -./autogen.sh -./configure --enable-debug -touch tools/libxl/libxlu_disk_l.l -touch tools/libxl/libxlu_cfg_l.l -make dist-xen -make dist-tools -make install-xen -make install-tools *i've tried with https://github.com/wencongyang/qemu-xen but got an error with qemu when xl creating the VM as follows: >libxl: error: libxl_qmp.c:287:qmp_handle_error_response: received an error >message from QMP server: Could not set password Qemu -cd ~/qemu-xen/; git checkout colo-xen-v2 Configured QEMU with script provided at: http://xen.markmail.org/message/y4jcdqxw2s2labdo?q=COLO#query:COLO+page:1+mid:3lzcuzeokqsqpu4i+state:results *path_to_xen_source updated according my directory tree. then.. -make -make install Running COLO *HVM SUSE 64bits primary: rm -f /var/log/xen/* rm -f /var/lib/xen/userdata-d.* service xencommons start modprobe nf_conntrack_ipv4 modprobe xt_PMYCOLO sec_dev=eth1 secondary: rm -f /var/log/xen/* rm -f /var/lib/xen/userdata-d.* service xencommons start modprobe xt_SECCOLO active_disk=/mnt/ramfs/active_disk.img hidden_disk=/mnt/ramfs/hidden_disk.img local_img=/root/new/SUSE/xenguest.img tmp_disk_size=`/root/new/pating/qemu-xen/qemu-img info $local_img |grep 'virtual size' |awk '{print $3}'` rm -rf /mnt/ramfs/* umount /mnt/ramfs/ rm -rf /mnt/ramfs/ mkdir /mnt/ramfs function create_image() { /root/new/pating/qemu-xen/qemu-img create -f qcow2 $1 $tmp_disk_size } function prepare_temp_images() { grep -q "^none /mnt/ramfs ramfs" /proc/mounts if [[ $? -ne 0 ]]; then mount -t ramfs none /mnt/ramfs/ -o size=2G fi if [[ ! -e $active_disk ]]; then create_image $active_disk fi if [[ ! -e $hidden_disk ]]; then create_image $hidden_disk fi } prepare_temp_images primary: xl create new/SUSE/vm-suse.cfg xl pause vm-suse xl remus -c -u vm-suse 192.168.2.33
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel