Thanks for pointing me to the comments, Shriram. That was very helpful.
What i am unable to figure out is how does Remus tell the module to only release packets belonging to a given epoch ? I am looking at the BufferedNIC class in xen-unstable/tools/python/xen/remus/device.py and the postsuspend method calls self._sendqmsg(qdisc.TC_PLUG_CHECKPOINT) while the commit method calls self._sendqmsg(qdisc.TC_PLUG_RELEASE). Where is it telling that only packets of the last epoch should be released ?
Also, as you said that module starts out with buffering everything. So if i comment out the self._sendqmsg(qdisc.TC_PLUG_CHECKPOINT) but keep the self._sendqmsg(qdisc.TC_PLUG_RELEASE), there should be no network buffering at all, but i still see that all packets are buffered.
Thanking you, Rahul. On Apr 19, 2012, at 5:24 PM, Shriram Rajagopalan wrote: On Thu, Apr 19, 2012 at 9:15 AM, Rahul Singh <singh.rahul.1983@xxxxxxxxx> wrote:
Hi,
I am trying to understand and change the network buffering that is being
used by Remus, the HA solution present in Xen. From what i understood from reading the code, Remus
calls the postsuspend method of the BufferedNIC after it suspends the
domain that sends TC_PLUG_CHECKPOINT message and start the buffering for packets in the "next" epoch [the one that starts after the domain is resumed]
and
then calls the commit method of BufferedNIC after it gets the
acknowledgement that sends the TC_PLUG_RELEASE message and releases the
buffered packets. of the previous current epoch [the one whose checkpoint was just committed on the backup machine]
I have the following doubts
1) How does remus ensure that the packets gets buffered for an entire epoch ?
2) If i comment out the lines in the "postsuspend" and "commit" lines of
the BufferedNIC class that send the TC_PLUG_CHECKPOINT and
TC_PLUG_RELEASE, i see that all the network packets are being buffered
and i cannot ping the Remus-protected VM at all. Where is the packet
buffering happen if i comment out these 2 lines ?
the module starts out in the buffered mode and releases packets only upon receiving a RELEASE command.
hope that helps.
cheers shriram
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|