From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42629) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDoEr-00020B-FO for qemu-devel@nongnu.org; Tue, 29 Dec 2015 01:58:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aDoEo-00049P-6v for qemu-devel@nongnu.org; Tue, 29 Dec 2015 01:58:33 -0500 Received: from mx1.redhat.com ([209.132.183.28]:50827) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDoEn-00049I-VL for qemu-devel@nongnu.org; Tue, 29 Dec 2015 01:58:30 -0500 References: <1450780978-19123-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> <568228BF.9010008@cn.fujitsu.com> From: Jason Wang Message-ID: <56822F07.6090607@redhat.com> Date: Tue, 29 Dec 2015 14:58:15 +0800 MIME-Version: 1.0 In-Reply-To: <568228BF.9010008@cn.fujitsu.com> Content-Type: text/plain; charset=utf-8 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: Zhang Chen , qemu devel , Stefan Hajnoczi Cc: zhanghailiang , Li Zhijian , Gui jianfeng , "eddie.dong" , "Dr. David Alan Gilbert" , Huang peng , Gong lei , jan.kiszka@siemens.com, Yang Hongyang On 12/29/2015 02:31 PM, Zhang Chen wrote: > Hi~ > Just a small ping... > No news for a week. > Colo proxy is a part of COLO project, we need review and comments. > > > Thanks > zhangchen Hi, will find sometime to review this this week. Thanks > > > On 12/22/2015 06:42 PM, Zhang Chen 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 >> >> >> 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 >> >