[Linux-cluster] Organizing 3 servers into cluster
niks at logik-internet.rs
Tue Feb 15 21:26:19 UTC 2011
I need to setup cluster using 3 servers. Thanks to everybody involved
from this mailing list in previous post, we have concluded that
DRBD+GFS2 is the best approach for building shared storage from local
hard drives. It will enable mirroring of data between nodes using DRBD,
and concurrent access to file systems thanks to GFS2.
Main purpose of this cluster is hosting of single web site (web
application). Main services we'll have are Web server (httpd) and MySQL.
We also use memcached for shared session and caching. Cluster should
provide following benefits:
- High Availability
- High Performance (balancing of web application execution on cluster nodes)
- Traffic balancing
This means that all 3 servers will execute web application and provide
content to visitors. We didn't plan to use load balancers in front of
web servers, because traffic balancing is important. That is why DNS
round-robin approach was planned, which we already use for two server
architecture used at moment. Web server on each node will be directly
accessed by visitors, spread by use of DNS round-robin. One of servers
will have MySQL Master used for writing, while other two will have MySQL
Slave instances for reading. Each MySQL instance will execute on
separate data on shared storage.
I was confused by following line in RedHat's Cluster documentation,
related to High Availablity: "An HA service can run on only one cluster
node at a time to maintain data integrity". Does this mean that web
servers can not work in parallel on all cluster nodes? Or, is this
limitaion related to combination of IP address and service (eg. web
server on IP 10.1.1.1)?
When MySQL is in question, I have even more doubts on how to implement
HA automatically. Failure of node where MySQL Master executes should
result in automatic start of MySQL service on different node. In our
configuration with 3 servers, there is no spare node, so MySQL Master
and one of MySQL Slave instances should run on same server. If two nodes
fail, all three MySQL instances will fail to single node :). If I
understand MySQL docs well, this is not problem, but each instance must
use different port, socket, data folders (which we already have
separated). I didn't notice that MySQL instance can connect to specific IP.
Does anyone have experience with this kind of setup? I know that one
can run more than one instance of MySQL on single server, executed on
different sets of data and connected to different ports. However, I'm
not sure if it's possible to setup and if it's stable in cluster
environment with HA? if it's possible, what are things I should take
Finally, for setup like this would you use available servers (3 of 'em
in my case) as cluster nodes, or would you use 'em as bare metal
machines for virtual servers with specific roles (eg. web server, MySQL
master, Memcached, etc.), that can be easily moved from one base metal
machine to other, in case of failure?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Linux-cluster