Hi Matthew,
Sorry for just catching up your message dated April 7. I missed your
message in my box for such a long time. :(
Matthew Kellett wrote:
> Hi Michel,
>
> I modified patch version 0.5 to use loadable modules for the
> load-balancing algorithm. Included in this was an expansion of the
> parameters kept on a per-server basis, because the product I'm working
> on has hardware integrated real servers.
>
> We use a proprietary UDP protocol to talk amongst the real servers and
> the Linux Director on the system. Since we have a dedicated subnet we
> will eventually move to an ethernet frame protocol for speed. The Linux
> Director has a user-space daemon that regularly reports the statistics
> of the real servers to the virtual server code through an expanded
> setsockopt interface. I also expanded ippfvsadm to allow for the input
> of statistics.
>
> I choose to add memory and load for each real server. When the
> statistics are updated for a specific real server ip, all memory and
> load entries for that server will be changed, no matter what protocol or
> port. For the purposes of our project, memory represents the number of
> kilobytes free and load represents the percentage of CPU usage. We're
> thinking of changing the load to be in MIPS so that we are using two
> absolute values for our computations.
>
> Here's a link to a preliminary patch that I sent Wensong. It will only
> work to patch a 2.0.35 kernel with vs-0.5 patch. This isn't a user
> friendly patch but you should be able to figure it out.
>
> http://proxy.iinchina.net/~wensong/ippfvs/matthewpatch-0.5.zip
>
> Let me know if you have any questions. I've finished the interface now
> and I will submit a new patch to Wensong when my schedule permits. If
> you run into any problems, let me know and I'll do up the new version
> ASAP. I can't remember if there were any significant bugs that I fixed
> after I created that patch, sorry.
>
> Cheers,
> Matthew
>
> P.S: Wensong: I think that the loadable load-balancing module support
> deserves a seperate entry. Load-informed scheduling can be accomplished
> by just adding a few fields to struct server and a new call to the
> firewall interface. Load-balancing module support was much harder to
> get right and could exist without the load-informed scheduling.
>
>
As for load-informed scheduling, I want to add more load-related parameters
into this scheduling, and the user-space daemon (poller) compute a value
based on those parameters for each server periodically, if it is far from load
balance state, the poller pass the values to the kernel to hint the scheduling,
otherwise the poller doesn't disturb the LinuxDirector's scheduling.
The loadable load-balancing module is a good idea. It is flexible. I will
add it into the virtual server patch of next-stage development, because
the complete change the infrastructure of the current virtual server
patch may cause the current patch unstable.
Thanks,
Wensong
|