xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: Changlong Xie <xiecl.fnst@cn.fujitsu.com>,
	"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 10:31:37 +0000	[thread overview]
Message-ID: <1456396297.6225.191.camel@citrix.com> (raw)
In-Reply-To: <56CEC006.2050005@cn.fujitsu.com>

On Thu, 2016-02-25 at 16:49 +0800, Changlong Xie wrote:
> Sorry for this. Since we have no privilege to update the Wiki for a long 
> time so most contents of this page are dated : (

Anyone can be granted access, it is only a manual process because of
spammers. Please create an account and then fill in the form at:
http://xenproject.org/component/content/article/100-misc/145-request-to-be-made-a-wiki-editor.html

> 
> 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
> > 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

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

  reply	other threads:[~2016-02-25 10:31 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
2016-02-25 10:31   ` Ian Campbell [this message]
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=1456396297.6225.191.camel@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=chen116@usc.edu \
    --cc=wency@cn.fujitsu.com \
    --cc=xen-devel@lists.xen.org \
    --cc=xiecl.fnst@cn.fujitsu.com \
    /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).