dev@glassfish.java.net

Re: Questions about the Load Balance Plugin forGF V2

From: satish viswanatham <Satish.Viswanatham_at_Sun.COM>
Date: Thu, 24 Aug 2006 09:03:15 -0700

vince kraemer wrote:

> Satish,
>
> I had a few questions about your presentation and slides...
>
> First I want to make sure that I am not mistaken about the following:
>
> Your presentation from slide 5 onwards applies to the Sun LB Plugin
> (which is the first plugin listed on slide 4), right?
>
That is correct. Exporting loadbalancer.xml etc. applies to only Sun LB
Plugin. However one can write XSLT on loadbalancer.xml to convert it to
a configuration file that could by different load balancer.

> Slide 5:
>
> Do you have an example of multiple cluster support? It looks like the
> GUI can support it (slide 22). How does the CLI support it? Does the
> user need to enter two arguments --target in a command like:
> asadmin create-http-lb-config –target cluster1,cluster2
> two-cluster-lb-config
>
Target as of now takes only one cluster argument. There is a RFE filed
on CLI to enhance this - if possible. Bug # is 6193575. To additional
arguments, user can use the following

asadmin create-http-lb-ref --config cluster1-lb-config cluster2 (this
adds cluster2 to the config)

> Or, is there some command like "asadmin add-http-lb-config --target
> cluster2 two-cluster-lb-config" (which would imply a "asadmin
> remove-http-lb-config --target cluster2 two-cluster-lb-config", too)?
>
Similarly there is asadmin delete-http-lb-ref. Detailed information is
available at Setting Up HTTP Load Balancing
<http://docs.sun.com/app/docs/doc/819-2555/6n4r9qo8f?a=view>

> What asadmin command supports the 'configurable health check' feature?
> GUI screen?
>
asadmin create-health-checker CLI command configures/adds health check.
In GUI, select a load balancer, then select "Targets" tab, then you can
configure health checker on each target.

> Is there a command that supports the 'configurable error pages' feature?

By default LB uses a local page its in its installtion directory called
default-error.html. There is no way to configure this now. There is CLI
bug for this. bug# 6463611.

> GUI screen?
>
There a bug file that GUI does not support enabling applications and
configuring error urls.

> If the user does configure custom error pages, that implies that they
> need to be present on the machine that is balancing the load, right?
> Is there a "best practice" for names/locations/content/whatever that
> we should encourage folks to follow (or build tools to automate)?

I am not sure if there are best practices documented for this feature. I
am copying Pankaj to see if he knows any.

>
>
> Slide 6:
>
> is there a stand-alone verifier for the loadbalancer.xml? Is there a
> way to check the lbxml file BEFORE you plunk it onto a machine that
> has the lb plugin installed?

No. asadmin (GlassFish) is supposed to generate a correct loadbalancer.xml.

>
> Are all the customizations of the loadbalancer.xml file supported by
> CLI commands and GUI screens? If they aren't, what percentage of them are?


Our aim support 100% loadbalancer.xml. We did that for
sun-loadbalancer_1_1.dtd. However pluggable load balacing feature is
added and we need to support sun-loadbalancer_1_2.dtd. Out of 8 ELEMENTS
in 1_2.dtd, we support 7 of them.

> If few of the customizations are supported, it seems like we need to
> have a command like 'asadmin merge-http-lb-config –config
> cluster1-lb-config "C:\loadbalancer.xml"', which would merge the data
> in the file with the data in the DAS's cluster1-lb-config object....
> Or is there an 'asadmin import-http-lb-config -config
> foo-http-lb-config "C:\loadbalancer.xml"' to read the content of a
> lbxml file and store it in a DAS object?

We want to avoid this model.

>
>
> Slide 10:
>
> After the LB configuration is generated, how does it get to the
> machine that is doing the LB? I kept hearing "copy manually".... which
> seems primitive.
>
> Is there any "magic" that users need to do to their apps to allow them
> to be load-balanced? Conversely, is there any "bad magic" users could
> do to their apps which would make them non-balancable? Does the
> enable-http-lb-application check for those things (good and bad magic)?
>
Users do not need to manully copy the loadbalancer.xml. Harsha
implemented to "Auto Apply" feature. This uses SSL connection between
DAS and LB, which has some setup issues or some other small issues.
Hopefully these will be ironed out by MS2? so that we can talk about it
in detail. You can learn more about this feature in section 4.1.2 of
http://www.glassfishwiki.org/gfwiki/attach/OnePagersOrFunctionalSpecs/LB-onepager.txt

> Slide 12:
>
> I read through the scenarios for upgrading apps. This looks like a
> nightmare. What can be done to improve this area?
>
> It seems like there are a number of steps that end up being manual...
>
> For example: is there a way to push the new lbxml to an lb, instead of
> doing a manual copy?

Auto Apply should help here.

>
> META QUESTIONS:
>
> Is there a data overlap between the data in the loadbalancer.xml file
> for "our" lb plugin and configuration files for some of the other load
> balancers that you discuss on slide 4? If there is, could we create
> XSLT "scripts" to automate this for users that have those other LB
> configurations?
>
Certainly we could provide these XSLT scripts. No customer asked for
these yet. We could take community support in this area.

> Will we create support for other popular LB approaches, like parallel
> commands for mod_jk (visualize 'asadmin create-mod_jk-lb-config',
> 'asadmin export-mod_jk-lb-config' and more)? Is there a framework
> available that would allow someone else to do that?

No. Better approach is to make "Auto Apply" feature work with all
loadbalancers.

>
> Do you have a set of use-cases for the features of the lb plugin?
>
> Is there a dtd/schema for the loadbalancer.xml file?

Yes. it is at $AS-INSTALLlib/lbplugin/lib/dtds

> Is there any kind of map between the elements of the lbxml and the
> asadmin commands that manipulate the object created by the
> create-http-lb-config command?
>
I can write a short blog about that, but we have descriptions and all
the use cases and commands are described at
http://docs.sun.com/app/docs/doc/819-2555/6n4r9qo8h?a=view

> Comment on the presentation:
>
> Your presentation was very good.
>
> One way to improve it would be to have discussed the user interactions
> with the lb plugin a bit clearer. Your sample install/configuration
> was good, but it just gets people started.
>
These excellent questions. I will capture these questions as FAQ, create
LB Admin module page on GlassFish and publish there.

Hope I answered your questions.

thanks
Satish

> vbk
>
> satish viswanatham wrote:
>
>> Here are the slides for tomorrow's presentation.
>>
>> thanks
>> Satish
>>
>> Nazrul Islam wrote:
>>
>>> Hi All,
>>>
>>> We will start the User Experience meeting from tomorrow (Aug 23).
>>> Satish will be sending out the slides shortly. Please join us and
>>> understand how to use clustering/loadbalancer in GlassFish v2
>>> <https://glassfish.dev.java.net/downloads/v2-b13.html>. Also help us
>>> evaluate issues with the current feature set in this space.
>>>
>>> Here are the meeting details...
>>>
>>> *Agenda:*
>>> Wednesday, Aug 23, 2006 - Loadbalancer Administration
>>> <http://www.glassfishwiki.org/gfwiki/attach/OnePagersOrFunctionalSpecs/LB-onepager.txt>
>>> - Satish Viswanatham *
>>> *
>>>
>>> *Time:*
>>> 9 am - 10 am PDT
>>>
>>> *Dial-in Info:*
>>> Toll Free Dial In Number: (866)545-5227
>>> Int'l Access/Caller Paid Dial In Number:(865)673-6950
>>> ACCESS CODE: 3535518
>>>
>>> *Conference Room:
>>> *
>>>
>>> BLDG : SCA14
>>> ROOM NAME : MAIN STREET USA
>>> ROOM NUMBER/FLR : 2720/2
>>>
>>> *Future Agenda:*
>>> http://blogs.sun.com/roller/page/nazrul?entry=starting_glassfish_user_experience
>>>
>>> If you would like to add something to the agenda, please let me
>>> know. Thanks.
>>>
>>> --
>>> Nazrul Islam - (408) 276-6468 - Sun Microsystems, Inc.
>>>
>>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>