qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH v2 00/10] Add colo-proxy based on netfilter


From: Dr. David Alan Gilbert
Subject: Re: [Qemu-devel] [RFC PATCH v2 00/10] Add colo-proxy based on netfilter
Date: Mon, 29 Feb 2016 20:04:19 +0000
User-agent: Mutt/1.5.24 (2015-08-30)

* Zhang Chen (address@hidden) wrote:
> From: zhangchen <address@hidden>
> 
> Hi,all
> 
> This patch add an colo-proxy object, COLO-Proxy is a part of COLO,
> based on qemu netfilter and it's a plugin for qemu netfilter. the function
> keep Secondary VM connect normal to Primary VM and compare packets
> sent by PVM to sent by SVM.if the packet difference,notify COLO do
> checkpoint and send all primary packet has queued.

Hi Zhangchen,
  How are you dealing with the IP 'identification' field?
It's a very very random field, and not just the initial value in the connection.
I can't see how the kernel colo-proxy dealt with it either; but I think it's
comparison was after defragementation so probably ignored the identification
field - wouldn't that confuse a client at failover?

Dave

> You can also get the series from:
> 
> https://github.com/zhangckid/qemu/tree/colo-v2.2-periodic-mode-with-colo-proxyV2
> 
> Usage:
> 
> primary:
> -netdev tap,id=bn0 -device e1000,netdev=bn0
> -object colo-proxy,id=f0,netdev=bn0,queue=all,mode=primary,addr=host:port
> 
> secondary:
> -netdev tap,id=bn0 -device e1000,netdev=bn0
> -object colo-proxy,id=f0,netdev=bn0,queue=all,mode=secondary,addr=host:port 
> 
> NOTE:
> queue must set "all". See enum NetFilterDirection for detail.
> colo-proxy need queue all packets
> colo-proxy V2 just can compare ip packet
> 
> 
> ## Background
> 
> COLO FT/HA (COarse-grain LOck-stepping Virtual Machines for Non-stop Service)
> project is a high availability solution. Both Primary VM (PVM) and Secondary 
> VM
> (SVM) run in parallel. They receive the same request from client, and generate
> responses in parallel too. If the response packets from PVM and SVM are
> identical, they are released immediately. Otherwise, a VM checkpoint (on
> demand)is conducted.
> 
> Paper:
> http://www.socc2013.org/home/program/a3-dong.pdf?attredirects=0
> 
> COLO on Xen:
> http://wiki.xen.org/wiki/COLO_-_Coarse_Grain_Lock_Stepping
> 
> COLO on Qemu/KVM:
> http://wiki.qemu.org/Features/COLO
> 
> By the needs of capturing response packets from PVM and SVM and finding out
> whether they are identical, we introduce a new module to qemu networking
> called colo-proxy.
> 
> V2:
>   rebase colo-proxy with qemu-colo-v2.2-periodic-mode
>   fix dave's comments
>   fix wency's comments
>   fix zhanghailiang's comments
> 
> v1:
>   initial patch.
> 
> 
> 
> zhangchen (10):
>   Init colo-proxy object based on netfilter
>   Jhash: add linux kernel jhashtable in qemu
>   Colo-proxy: add colo-proxy framework
>   Colo-proxy: add data structure and jhash func
>   net/colo-proxy: Add colo interface to use proxy
>   net/colo-proxy: add socket used by forward func
>   net/colo-proxy: Add packet enqueue & handle func
>   net/colo-proxy: Handle packet and connection
>   net/colo-proxy: Compare pri pkt to sec pkt
>   net/colo-proxy: Colo-proxy do checkpoint and clear
> 
>  include/qemu/jhash.h |  61 ++++
>  net/Makefile.objs    |   1 +
>  net/colo-proxy.c     | 939 
> +++++++++++++++++++++++++++++++++++++++++++++++++++
>  net/colo-proxy.h     |  24 ++
>  qemu-options.hx      |   6 +
>  trace-events         |   8 +
>  vl.c                 |   3 +-
>  7 files changed, 1041 insertions(+), 1 deletion(-)
>  create mode 100644 include/qemu/jhash.h
>  create mode 100644 net/colo-proxy.c
>  create mode 100644 net/colo-proxy.h
> 
> -- 
> 1.9.1
> 
> 
> 
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK



reply via email to

[Prev in Thread] Current Thread [Next in Thread]