From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55920) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aItQg-0008Ay-3e for qemu-devel@nongnu.org; Tue, 12 Jan 2016 02:31:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aItQc-0001Bq-7z for qemu-devel@nongnu.org; Tue, 12 Jan 2016 02:31:46 -0500 Received: from [59.151.112.132] (port=32081 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aItQb-0001BI-9C for qemu-devel@nongnu.org; Tue, 12 Jan 2016 02:31:42 -0500 References: <1450780978-19123-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> <20160108111927.GA2477@work-vm> <569305A5.106@cn.fujitsu.com> <20160111125918.GF2477@work-vm> From: Zhang Chen Message-ID: <5694ABF5.2060407@cn.fujitsu.com> Date: Tue, 12 Jan 2016 15:32:05 +0800 MIME-Version: 1.0 In-Reply-To: <20160111125918.GF2477@work-vm> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH v2 00/10] Add colo-proxy based on netfilter List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert" Cc: zhanghailiang , Li Zhijian , Gui jianfeng , Jason Wang , "eddie.dong" , qemu devel , Huang peng , Gong lei , Stefan Hajnoczi , jan.kiszka@siemens.com, Yang Hongyang On 01/11/2016 08:59 PM, Dr. David Alan Gilbert wrote: > * Zhang Chen (zhangchen.fnst@cn.fujitsu.com) wrote: >> >> On 01/08/2016 07:19 PM, Dr. David Alan Gilbert wrote: >>> * Zhang Chen (zhangchen.fnst@cn.fujitsu.com) wrote: >>>> From: zhangchen >>>> >>>> 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. >>>> >>>> You can also get the series from: >>>> >>>> https://github.com/zhangckid/qemu/tree/colo-v2.2-periodic-mode-with-colo-proxyV2 >>> Are you sure that tag is correct? The series of commits doesn't seem to match >>> up with the set of commits posted. >>> >>> Dave >> Yes, it is. we have some code fix in other colo unrelated file. >> in email, I just send colo related part. > That doesn't seem to be what's happening in that git tree. > For example, your patch '[RFC PATCH v2 01/10] Init colo-proxy object based on netfilter' > adds the colo-proxy object to qemu-options.hx, but in that git tree > it comes from Li Zhijian's 'add proxy prototype' patch. > If you're going to include a git link with a series then please > make sure it contains exactly the patches posted. > It's OK to add some more patches somewhere, e.g. on a different tag or > branch, but make sure the one that you post for the series matches > the series posted. > > Dave > Make sense. I have fix it. https://github.com/zhangckid/qemu/tree/colo-v2.2-periodic-mode-with-colo-proxyV2 Thanks zhangchen >> zhangchen >> Thanks for review >> >>>> 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 / dgilbert@redhat.com / Manchester, UK >>> >>> >>> . >>> >> -- >> Thanks >> zhangchen >> >> >> > -- > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK > > > > . > -- Thanks zhangchen