xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Changlong Xie <xiecl.fnst@cn.fujitsu.com>
To: "Yu-An(Victor) Chen" <chen116@usc.edu>, xen-devel@lists.xen.org
Cc: Wen Congyang <wency@cn.fujitsu.com>
Subject: Re: Patching error while setting up COLO
Date: Thu, 25 Feb 2016 16:49:10 +0800	[thread overview]
Message-ID: <56CEC006.2050005@cn.fujitsu.com> (raw)
In-Reply-To: <CANwucL=Bv48zmTMX1N2a2iKSC7z6MUMMMoNDy7GPwJm_NjsqJg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5141 bytes --]

On 02/25/2016 01:17 PM, Yu-An(Victor) Chen wrote:
> Hi,
>
> I am trying to set up COLO by following this
> http://wiki.xenproject.org/wiki/COLO_-_Coarse_Grain_Lock_Stepping
>
> I was able to follow the step up to
>
> $git am ~/ColoPatchForQemu/*.patch
>
> When I try to run the above command, I got the following error:
>
> error: patch failed: include/hw/xen/xen_common.h:186
> error: include/hw/xen/xen_common.h: patch does not apply
> error: patch failed: xen-hvm.c:85
> error: xen-hvm.c: patch does not apply
> Patch failed at 0018 Revert "Xen: Use the ioreq-server API when available"
> The copy of the patch that failed is found in:
>     /root/xen/tools/qemu-xen-dir/.git/rebase-apply/patch
>
> Please let me know how I can solve this patching error. Thank you!
>

Hi Victor

Sorry for this. Since we have no privilege to update the Wiki for a long 
time so most contents of this page are dated : (

Anyway i'll write down detail steps here for colo on XEN.

[Requirements]
- Hardware
There is at least one directly connected nic to forward the network 
requests from primary to secondary vm. The directly connected nic must 
not be used by any other purpose. If your guest has more than one nic, 
you should have directly connected nic for each guest nic. If you don't 
have enouth directly connected nic, you can use vlan.

- Dom0
1. Kernel with dom0 support
2. kernel module
    nf_conntrack
    nf_conntrack_ipv4
    nf_nat
    libnl-tools >= 3.0.
*Note*: If your host os has OEM-released xen tools, *MUST* uninstall it 
first.

- Guest
Only HVM guest(without pv extensions) is supported now. If you want to 
use OEM released guest os, please use SUSE(we use "SUSE Linux 
Enterprise Server 11" currently). REDHAT and Ubuntu is not supported 
now because I don't find any way to disable pv extensions. If you want 
to use REDHAT or Ubuntu, you need to build the newest kernel which has 
the parameter xen_nopv.


[SETUP]
- Network link topology
ref: http://wiki.xenproject.org/wiki/COLO_-_Coarse_Grain_Lock_Stepping

-  Test environment prepare

On both Primary/Secondary hosts:
1.
cd ~
git clone https://github.com/wencongyang/colo-proxy
git clone https://github.com/macrosheep/iptables.git
git clone https://github.com/torvalds/linux
git clone https://github.com/wencongyang/qemu-colo
git clone https://github.com/wencongyang/xen

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
1) cd ~/colo-proxy/; git checkout 405527cbfa9f
2) cd ~/linux/; git checkout v4.0; git am 
~/colo-proxy/colo-patch-for-kernel.patch
3) 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
4) make -j8; make modules_install; make install
5) reboot

3. build colo-proxy
1) cd ~/colo-proxy/; git checkout 405527cbfa9f; make; make install

4. build iptables
1) cd iptables; ./autogen.sh; ./configure --prefix=/usr/ 
--libdir=/usr/lib64; make; make install

5. build qemu-colo
1) cd ~/qemu-colo/; git checkout colo-xen-v2
2)
path_to_xen_source=~/xen
./configure --enable-xen --target-list=x86_64-softmmu \
            --extra-cflags="-I$path_to_xen_source/tools/include 
-I$path_to_xen_source/tools/libxc -I$path_to_xen_source/tools/xenstore" \
            --extra-ldflags="-L$path_to_xen_source/tools/libxc 
-L$path_to_xen_source/tools/xenstore"
make -j4

6. build xen
1) cd ~/xen/; git checkout colo_v10
2)
./autogen.sh
./configure --enable-debug
touch tools/libxl/libxlu_disk_l.l
touch tools/libxl/libxlu_cfg_l.l
make dist-xen -j8
make dist-tools -j8
make install-xen -j8
make install-tools -j8

7. configure /boot/grub/menu.list to support xen, then reboot

[ Run COLO ]

1.
on 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

on 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/xie/suse-64hvm.img
tmp_disk_size=`./qemu-colo/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/xie/xen/tools/qemu-xen-dir/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

2. on primary
xl cr hvm_nopv_colo
sleep 10
xl pause hvm_nopv_colo
xl remus -c -u hvm_nopv_colo 192.168.3.2

hvm_nopv_colo attached.


That's all, good luck ; )

Thanks
     -Xie

> Victor
>
>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
>



[-- Attachment #2: hvm_nopv_colo --]
[-- Type: text/plain, Size: 1180 bytes --]

builder='hvm'
memory='1024'
vcpus=2
cpus=['2','3']

name='hvm_nopv_colo'
device_model_version='qemu-xen'
device_model_override='/root/xie/qemu-colo/x86_64-softmmu/qemu-system-x86_64'

#需要把'vdev=sda'改成'vdev=hda'因为备端某些bug(libxl__domain_suspend_device_model->libxl__qmp_save->xen-save-devices-state失败),即不用scsi而用ide
disk = [ 'format=raw,devtype=disk,access=w,backendtype=qdisk,vdev=hda,colo,colo-host=192.168.3.2,colo-port=9000,colo-export=qdisk1,active-disk=/mnt/ramfs/active_disk.img,hidden-disk=/mnt/ramfs/hidden_disk.img,target=/root/xie/suse-64hvm.img']
vif = [ 'mac=00:16:4f:00:00:11, bridge=br0, model=e1000, forwarddev=eth1' ]

#disk = [ '/root/xie/suse-64hvm.img,raw,hda,rw','/root/SLES-11-SP3-DVD-x86_64-GM-DVD1.iso,,hdc,r,cdrom' ]
#vif = [ 'mac=00:16:4f:00:00:11,bridge=br0,model=virtio-net'  ]

#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
# default: hard disk, cd-rom, floppy

boot='c'
sdl=0
vnc=1
vnclisten=''
stdvga = 0 
serial='pty'
apic=1
apci=1
pae=1
extid=0
keymap='en-us'
localtime=1
hpet=1
usbdevice='tablet'
xen_platform_pci = 0

[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2016-02-25  8:49 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-25  5:17 Patching error while setting up COLO Yu-An(Victor) Chen
2016-02-25  8:49 ` Changlong Xie [this message]
2016-02-25 10:31   ` Ian Campbell
2016-02-26  2:38     ` Changlong Xie
2016-02-26  3:38     ` Yu-An(Victor) Chen
2016-02-26  4:19       ` Changlong Xie
2016-02-26  4:55         ` Yu-An(Victor) Chen
2016-02-26  5:07           ` Changlong Xie
2016-03-03  9:39             ` Yu-An(Victor) Chen
2016-03-03 10:46               ` Wen Congyang
2016-03-04  2:01                 ` Yu-An(Victor) Chen
2016-03-04  2:15                   ` Wen Congyang
2016-03-05  1:51                     ` Yu-An(Victor) Chen
2016-03-07  1:12                       ` Wen Congyang
2016-03-08 22:57                         ` Yu-An(Victor) Chen
2016-03-14  8:36                           ` Changlong Xie
2016-03-16  6:06                             ` Yu-An(Victor) Chen
2016-03-16 19:45                               ` Yu-An(Victor) Chen
2016-03-17  1:41                                 ` Changlong Xie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56CEC006.2050005@cn.fujitsu.com \
    --to=xiecl.fnst@cn.fujitsu.com \
    --cc=chen116@usc.edu \
    --cc=wency@cn.fujitsu.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).