LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: invoke scheduler for every received packet

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: invoke scheduler for every received packet
From: Viktor Matic <viktor@xxxxxxxxxxxx>
Date: Tue, 11 Jul 2006 11:31:14 +0200
On Tue, 2006-07-11 at 09:41 +0200, Roberto Nibali wrote:
> Hi,
> 
> > this is a second time I'am addressing list with this question. I have
> > been using LVS with ops patch, which enables invoking scheduler module
> > for every received packet (no connection caching).
> 
> I have just briefly skimmed over this patch and am a bit unsure how 
> efficient it is, but it seems to not populate the template cache. Why 
> invoking the scheduler module for every packet is special, I fail to 
> see. Having non-persistent scheduling to does the same. But I've only 
> looked at the patch for 2 minutes.
Thanks for the fast replay. Actually I'm not sure what non-persistent 
scheduling does, 
maybe it is solution for may problem, I'll check it out. What I need and what 
OPS is doing 
is that every packet (eg. UDP) received for virtual service is passed to 
desired scheduler. 
Which is not I believe LVS default behavior, because of connection hashing. 
So with OPS scheduler is invoked per packet basis and decision about 
destination server 
is made every time. This is important for protocols which have multiplexed 
connections 
over same IP and PORT pair. Such as SIP communication between two proxy servers.
 
> > This feature is
> > important to me because I'am using custom scheduler module which expects
> > to receive every packet belonging to same port and IP address pair.
> 
Scheduler finds destination based on UDP (SIP Call-id header field)
packet content. 
>> Is it possible to achieve same behavior of LVS on some other way
>>besides
> > using OPS (one packet scheduling) especially on newer kernels? Problem
> > with OPS is that it is not maintained for newer kernels.
> 
> Which newer kernels do you mean exactly? I would believe that
> 
> http://www.ssi.bg/~ja/
> 
> still applies to the latest 2.4.x kernel and that
> 
> http://archive.linuxvirtualserver.org/html/lvs-users/2005-09/msg00214.html
Yes I'm aware of this patch.
> 
> still applies to the latest 2.6.x kernel with some fuzz, of course.
I meant what is status of patch for kernel 2.6.x and above. I've been
using it on 2.4.13. 
>  We 
> have actually never reviewed this patch, so I wonder if it would be time 
> to review it and submit for inclusion. 
I'm aware that patch could be easily adapted for newer kernels because
of its simplicity. But I'm not sure is there need for this if exists
another way to achieve same thing with something already included in LVS
(maybe something like non-persistent scheduling as you have noted).
> Could you give me an exact 
> explanation what it does and how it's used?
Well, patch is used in very simple fashion. You just add switches -o or
--ops when creating virtual service. As Julian wrote this results in
connections used for only one packet scheduling. I suppose they are
expired as soon as they are created. This enables packet routing to
different destinations even if they are coming from same client port.

I hope I've been clear enough. 

Best regards,

Viktor



<Prev in Thread] Current Thread [Next in Thread>