From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46432) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIRJO-0001hF-AI for qemu-devel@nongnu.org; Sun, 10 Jan 2016 20:30:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aIRJL-0006Xd-2k for qemu-devel@nongnu.org; Sun, 10 Jan 2016 20:30:22 -0500 Received: from [59.151.112.132] (port=52291 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIRJK-0006Tx-CH for qemu-devel@nongnu.org; Sun, 10 Jan 2016 20:30:18 -0500 References: <1450780978-19123-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> <20160108111927.GA2477@work-vm> From: Zhang Chen Message-ID: <569305A5.106@cn.fujitsu.com> Date: Mon, 11 Jan 2016 09:30:13 +0800 MIME-Version: 1.0 In-Reply-To: <20160108111927.GA2477@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: Li Zhijian , Gui jianfeng , Jason Wang , "eddie.dong" , qemu devel , Huang peng , Gong lei , Stefan Hajnoczi , jan.kiszka@siemens.com, Yang Hongyang , zhanghailiang 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. 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