From: Jason Wang <jasowang@redhat.com>
To: Zhang Chen <zhangchen.fnst@cn.fujitsu.com>,
qemu devel <qemu-devel@nongnu.org>,
Stefan Hajnoczi <stefanha@redhat.com>
Cc: zhanghailiang <zhang.zhanghailiang@huawei.com>,
Li Zhijian <lizhijian@cn.fujitsu.com>,
Gui jianfeng <guijianfeng@cn.fujitsu.com>,
"eddie.dong" <eddie.dong@intel.com>,
Huang peng <peter.huangpeng@huawei.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Gong lei <arei.gonglei@huawei.com>,
jan.kiszka@siemens.com,
Yang Hongyang <hongyang.yang@easystack.cn>
Subject: Re: [Qemu-devel] [RFC PATCH v2 00/10] Add colo-proxy based on netfilter
Date: Wed, 6 Jan 2016 13:16:23 +0800 [thread overview]
Message-ID: <568CA327.4020103@redhat.com> (raw)
In-Reply-To: <568A54C2.8050300@cn.fujitsu.com>
On 01/04/2016 07:17 PM, Zhang Chen wrote:
>
>
> On 01/04/2016 05:46 PM, Jason Wang wrote:
>>
>> On 01/04/2016 04:16 PM, Zhang Chen wrote:
>>>
>>> On 01/04/2016 01:37 PM, Jason Wang wrote:
>>>> On 12/31/2015 04:40 PM, Zhang Chen wrote:
>>>>> On 12/31/2015 10:36 AM, Jason Wang wrote:
>>>>>> On 12/22/2015 06:42 PM, Zhang Chen wrote:
>>>>>>> From: zhangchen <zhangchen.fnst@cn.fujitsu.com>
>>>>>>>
>>>>>>> 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.
>>>>>> Thanks for the work. I don't object this method but still not
>>>>>> convinced
>>>>>> that qemu is the best place for this.
>>>>>>
>>>>>> As been raised in the past discussion, it's almost impossible to
>>>>>> cooperate with vhost backends. If we want this to be used in
>>>>>> production
>>>>>> environment, need to think of a solution for vhost. There's no such
>>>>>> worry if we decouple this from qemu.
>>>>>>
>>>>>>> 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
>>>>>> Have a quick glance at how secondary mode work. What it does is just
>>>>>> forwarding packets between a nic and a socket, qemu socket
>>>>>> backend did
>>>>>> exact the same job. You could even use socket in primary node and
>>>>>> let
>>>>>> packet compare module talk to both primary and secondary node.
>>>>> If we use qemu socket backend , the same netdev will used by qemu
>>>>> socket and
>>>>> qemu netfilter. this will against qemu net design. and then, when
>>>>> colo
>>>>> do failover,
>>>>> secondary do not have backend to use. that's the real problem.
>>>> Then, maybe it's time to implement changing the netdev of a nic. The
>>>> point here is that what secondary mode did is in fact a netdev backend
>>>> instead of a filter ...
>>> Currently, you are right. in colo-proxy V2 code, I just compare IP
>>> packet to
>>> decide whether to do checkpoint.
>>> But, in colo-proxy V3 I will compare tcp,icmp,udp packet to decide it.
>>> because that can reduce frequency of checkpoint and improve
>>> performance. To keep tcp connection well, colo secondary need to record
>>> primary guest's init seq and adjust secondary guest's ack. if colo do
>>> failover,
>>> secondary also need do this to old tcp connection. qemu socket
>>> can't do this job.
>> So a question here: is it a must to do things (e.g TCP analysis stuffs)
>> at secondary? Looks like we could do this at primary node. And I saw
>> you're doing packet comparing in primary node, any advantages of doing
>> this in primary instead of secondary?
>
> We think must to do this in secondary, because if colo do
> failover,secondary
> must continues do TCP analysis stuffs to before tcp connection(if not,
> tcp connection
> will disconnect in that time), in this time primary already down or
> disconnect to
> secondary.so we can't make primary do this TCP analysis stuffs.it can
> not ensure
> FT function.
>
> Thanks
> zhangchen
Makes sense.
Thanks
>
>>> and another problem is do failover, if we use qemu socket
>>> to be backend in secondary, when colo do failover, I don't know how to
>>> change
>>> secondary be a normal qemu, if you know, please tell me.
>> Current qemu couldn't do this, but I mean we implement something like
>> nic_change_backend which can change nic's peer(s). With this, in
>> secondary, we can replace the socket backend with whatever you want (e.g
>> tap or other).
>>
>> Thanks
>>
>>>
>>> Thanks for your revew
>>> zhangchen
>>
>>
>> .
>>
>
next prev parent reply other threads:[~2016-01-06 5:16 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-22 10:42 [Qemu-devel] [RFC PATCH v2 00/10] Add colo-proxy based on netfilter Zhang Chen
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 01/10] Init colo-proxy object " Zhang Chen
2016-01-15 18:21 ` Dr. David Alan Gilbert
2016-01-18 7:08 ` Zhang Chen
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 02/10] Jhash: add linux kernel jhashtable in qemu Zhang Chen
2016-01-08 12:08 ` Dr. David Alan Gilbert
2016-01-11 1:49 ` Zhang Chen
2016-01-11 12:50 ` Dr. David Alan Gilbert
2016-01-12 1:58 ` Zhang Chen
2016-01-12 8:58 ` Dr. David Alan Gilbert
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 03/10] Colo-proxy: add colo-proxy framework Zhang Chen
2016-02-19 19:57 ` Dr. David Alan Gilbert
2016-02-22 3:04 ` Zhang Chen
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 04/10] Colo-proxy: add data structure and jhash func Zhang Chen
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 05/10] net/colo-proxy: Add colo interface to use proxy Zhang Chen
2016-02-19 19:58 ` Dr. David Alan Gilbert
2016-02-22 3:08 ` Zhang Chen
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 06/10] net/colo-proxy: add socket used by forward func Zhang Chen
2016-02-19 20:01 ` Dr. David Alan Gilbert
2016-02-22 5:51 ` Zhang Chen
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 07/10] net/colo-proxy: Add packet enqueue & handle func Zhang Chen
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 08/10] net/colo-proxy: Handle packet and connection Zhang Chen
2016-02-19 20:04 ` Dr. David Alan Gilbert
2016-02-22 6:41 ` Zhang Chen
2016-02-22 19:54 ` Dr. David Alan Gilbert
2016-02-23 17:58 ` Dr. David Alan Gilbert
2016-02-24 2:01 ` Zhang Chen
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 09/10] net/colo-proxy: Compare pri pkt to sec pkt Zhang Chen
2016-02-19 20:07 ` Dr. David Alan Gilbert
2015-12-22 10:42 ` [Qemu-devel] [RFC PATCH v2 10/10] net/colo-proxy: Colo-proxy do checkpoint and clear Zhang Chen
2015-12-29 6:31 ` [Qemu-devel] [RFC PATCH v2 00/10] Add colo-proxy based on netfilter Zhang Chen
2015-12-29 6:58 ` Jason Wang
2015-12-29 7:08 ` Zhang Chen
2015-12-31 2:36 ` Jason Wang
2015-12-31 8:02 ` Li Zhijian
2016-01-04 2:08 ` Jason Wang
2015-12-31 8:40 ` Zhang Chen
2016-01-04 5:37 ` Jason Wang
2016-01-04 8:16 ` Zhang Chen
2016-01-04 9:46 ` Jason Wang
2016-01-04 11:17 ` Zhang Chen
2016-01-06 5:16 ` Jason Wang [this message]
2016-01-18 7:05 ` Zhang Chen
2016-01-18 9:29 ` Jason Wang
2016-01-20 3:29 ` Zhang Chen
2016-01-20 6:54 ` Jason Wang
2016-01-20 7:44 ` Wen Congyang
2016-01-20 9:20 ` Jason Wang
2016-01-20 9:49 ` Wen Congyang
2016-01-20 10:03 ` Jason Wang
2016-01-20 10:34 ` Wen Congyang
2016-01-22 5:33 ` Jason Wang
2016-01-22 5:57 ` Wen Congyang
2016-01-20 10:01 ` Wen Congyang
2016-01-20 10:19 ` Jason Wang
2016-01-20 10:30 ` Wen Congyang
2016-01-22 3:15 ` Jason Wang
2016-01-22 3:28 ` Wen Congyang
2016-01-22 5:41 ` Jason Wang
2016-01-22 5:56 ` Wen Congyang
2016-01-22 6:21 ` Jason Wang
2016-01-22 6:47 ` Wen Congyang
2016-01-22 7:42 ` Jason Wang
2016-01-22 7:46 ` Wen Congyang
2016-01-27 15:22 ` Eric Blake
2016-01-04 16:52 ` Dr. David Alan Gilbert
2016-01-06 5:20 ` Jason Wang
2016-01-06 9:10 ` Dr. David Alan Gilbert
2016-01-08 11:19 ` Dr. David Alan Gilbert
2016-01-11 1:30 ` Zhang Chen
2016-01-11 12:59 ` Dr. David Alan Gilbert
2016-01-12 7:32 ` Zhang Chen
2016-02-29 20:04 ` Dr. David Alan Gilbert
2016-03-01 2:39 ` Li Zhijian
2016-03-01 10:48 ` Dr. David Alan Gilbert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=568CA327.4020103@redhat.com \
--to=jasowang@redhat.com \
--cc=arei.gonglei@huawei.com \
--cc=dgilbert@redhat.com \
--cc=eddie.dong@intel.com \
--cc=guijianfeng@cn.fujitsu.com \
--cc=hongyang.yang@easystack.cn \
--cc=jan.kiszka@siemens.com \
--cc=lizhijian@cn.fujitsu.com \
--cc=peter.huangpeng@huawei.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=zhang.zhanghailiang@huawei.com \
--cc=zhangchen.fnst@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).