CARP provides the ability for multiple systems to share a single IP address, for high availability (HA) requirements where a single IP address must be used. That's all it does. It is perfect for discrete transactions, such as packet routing. Applications that must share information between servers are not a good fit for CARP alone. The example I would point to is PF; in order to share state table information between routers, the pfsync(4) driver had to be developed.
On the other hand, there are any number of applications that are conducive to "server farm" operations. These are typically multi-tier environments, such as a farm of websevers driving application servers with back end data servers. And these sorts of applications use load balancers to support a pool of webservers, and the web servers will drive a pool of application servers, and then the database servers might be in HA configurations for additional redundancy. None of these share the same IP address within the farm, so CARP would be unnecessary.
PF can be load balancer, by the way. See the "Address Pools and Load Balancing" chapter of the PF Users Guide.
|