Search squid archive

Re: cache hierarchy question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On sön, 2008-08-10 at 20:25 -0700, Rob Williams wrote:

> HTCP, Cache Digest, whatever), do I need all requests to my array /
> mesh to come to a 'master' squid acting as a router/load balancer? Or
> do I put a load balancer in front of the array and distribute http
> requests randomly to the squids in the array?

I would use a load balancer..

> The problem I'm having is if I put a load balancer in front of my
> squid array then each squid must be aware of all other peers in order
> for the squid array to act as a large cache.

Yes..

> This results in
> forwarding loops and other problems when using ICP and carp that I've
> been unable to get around so far.

There is no need for ICP when using CARP.

You should not see forwarding loops in a correct CARP setup.

In a crossed sibling relation you may see forwarding loops, and the
workaround is to use cache_peer_access to deny siblings to be used if
the request was received from a sibling (any sibling),


There is no intra-array CARP routing in Squid, only CARP forwarding. A
quite efficient CARP setup looks like:

1. A simple load balancer distributing the connections among the caches.
Or even DNS round-robin if you like (the load balancer mainly makes it
easier if you need to take one server down for service or if there is a
problem..)

2. A CARP squid layer, with no disk cache but a reasonable cache_mem.
This receives requests from the load balancer and acts as hot object
cache and distributed CARP HTTP load balancer.

3. A caching Squid layer with the disk cache, used as a parent CARP
cache_peer relation by the CARP squids. These have the origin servers as
parents.

2 & 3 runs as two Squid instances on the same servers, with each server
having a CARP squid listening on the load balanced port and a caching
squid listening on another port only used for the CARP forwarding (or
another IP if you prefer..)

On all Squids a relatively short connect_timeout is set.

ICP is not used. (no-query on all cache_peer)

On multi-core servers >2 cores there may be benefit to run more than one
CARP instance per server.

> instance as it assumes a linear array instead of a hierarchy, but at
> this point I'd be happy to see ANY cache protocol example that would
> distribute the cached objects in a squid cluster.

The simplest setup is ICP + proxy-only. But it's not as efficient as
CARP and will result in noticeably increased duplication of content over
time.


Regards
Henrik

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux