cluster : Sync only vhost based on ipvsadm


You should create and sync on the node the vhost files only when these Vhosts are on the IP defined in ipvsadm.

Ok let’s try to explain

There is some httpd limitation due to open pointeurs etc… (512)

The idea is to load balanced some VIP:80 VIP:443 one a node.
For this IP there is only n virtualhost

So if you set only, tell 300 vhosts per IP, then on the node if there is THESE 300 vhosts we won’t have limitatons pbms

1 shared IP = 300 vhosts max = 1 ? n VIP. On these node only THESE Vhosts

The problem now is that Interworx SYNC ALL vhosts on ALL the nodes, even if we don’t set any ipvsadm rules for port 80 or 443 !

So it’d be great to have the Vhost SYnc linked to the ipvsadm rules and so have only vhosts which depends of these IPs in ipvsadm:80(443)

Understand what I mean ?


lol do not hesitate if you don’t understand what I try to explain.
But this solution might one of the solution to not have apache descriptor limitations.
So even if on the cluster manager you have 2000 accounts, as long as on the cm apache is stop and as long as you have 10 nodes with 200 vhost on each you won’t have apache problem descriptors (maybe others …)


Honestly, what you’re asking for here is a workaround to a workaround, with the original issue being Apache’s 1024 file descriptor limit. We’ve actually been looking into what it would take to implement the real fix to this problem, which is increasing the 1024 file descriptor limit.

Why have ALL the vhosts defined on a box if you don’t do HTTP load balancing on this box ?

In fact you must things to something different that now, not the actual solution to do this, but more on a new concept.

It could be possible to define a schem load balancing before setting up the load balancing. This schem structure will then setup the sync type and the ipvsadm corresponding

It is what you began to do with the load balancing page in nodeworx

Today the load balanced shem is set for VIP:SERVICES

SO it could be possible do things in two parts :
1- Define the load balancing policy
this part doesn’t setup the load balancing

2- Validate it
this part setup the load balancing and the nodeworx sync policy

For exemple. Tell I have 6 nodes and 10IPs IPs on the CM
the 2 first nodes are for mail only
the 4 others are for Apache only

So I define this in the step 1 :
IPs 1to10:25,110,995,143,993 --> node1 and node2
IPs 1to5:80,443 --> node3 to node4
Ips 6to10:80,443 --> node5 to node6

So why have vhost on node1 and node2 ?

And why have vhost on IP 6to10 on node3 and 4 ?

Having all these vhosts use OS ressources for nothing, as each vhost open at least two descriptors (error_log and transfer_log)

This charges all the boxes even if they don’t treat HTTP requests for example.

Of course this doesn’t tell it is not a good solution to change the descriptors limits in Apache, but I think that if you’ll give this kind of solution, it’ll allow to define an important cluster architecture.

I think it could be a real plus and it is not, for me, only a workaround.

But I agree with you that having a HUGE cluster architecture is maybe not the best solutions !