From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49723) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZKfNg-00078u-Nt for qemu-devel@nongnu.org; Thu, 30 Jul 2015 00:23:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZKfNd-0002AD-GH for qemu-devel@nongnu.org; Thu, 30 Jul 2015 00:23:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55557) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZKfNd-000285-AB for qemu-devel@nongnu.org; Thu, 30 Jul 2015 00:23:41 -0400 Message-ID: <55B9A6C6.6010008@redhat.com> Date: Thu, 30 Jul 2015 12:23:34 +0800 From: Jason Wang MIME-Version: 1.0 References: <55AC9859.3050100@cn.fujitsu.com> In-Reply-To: <55AC9859.3050100@cn.fujitsu.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [POC] colo-proxy in qemu List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Li Zhijian , qemu-devel@nongnu.org, stefanha@redhat.com Cc: zhanghailiang , jan.kiszka@siemens.com, dgilbert@redhat.com, "peter.huangpeng" , "Gonglei (Arei)" , Yang Hongyang On 07/20/2015 02:42 PM, Li Zhijian wrote: > Hi, all > > We are planning to implement colo-proxy in qemu to cache and compare > packets. > This module is one of the important component of COLO project and now > it is > still in early stage, so any comments and feedback are warmly welcomed, > thanks in advance. > > ## 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. A question here, the packet comparing may be very tricky. For example, some protocol use random data to generate unpredictable id or something else. One example is ipv6_select_ident() in Linux. So COLO needs a mechanism to make sure PVM and SVM can generate same random data?