16.3.1. Hardware, Software, and Networking
One of the strengths of MySQL Cluster is that it can be run on
commodity hardware and has no unusual requirements in this
regard, other than for large amounts of RAM, due to the fact
that all live data storage is done in memory. (Note that this is
subject to change, and that we intend to implement disk-based
storage in a future MySQL Cluster release.) Naturally, multiple
and faster CPUs will enhance performance. Memory requirements
for Cluster processes are relatively small.
The software requirements for Cluster are also modest. Host
operating systems do not require any unusual modules, services,
applications, or configuration to support MySQL Cluster. For Mac
OS X or Solaris, the standard installation is sufficient. For
Linux, a standard, “out of the box” installation
should be all that is necessary. The MySQL software requirements
are simple: all that is needed is a production release of MySQL
5.1 to have Cluster support. It is not necessary to
compile MySQL yourself merely to be able to use Cluster. In this
How-To, we assume that you are using the server binary
appropriate to your Linux, Solaris, or Mac OS X operating
system, available via the MySQL software downloads page at
https://dev.mysql.com/downloads/.
For inter-node communication, Cluster supports TCP/IP networking
in any standard topology, and the minimum expected for each host
is a standard 100 Mbps Ethernet card, plus a switch, hub, or
router to provide network connectivity for the cluster as a
whole. We strongly recommend that a MySQL Cluster be run on its
own subnet which is not shared with non-Cluster machines for the
following reasons:
Security: Communications
between Cluster nodes are not encrypted or shielded in any
way. The only means of protecting transmissions within a
MySQL Cluster is to run your Cluster on a protected network.
If you intend to use MySQL Cluster for Web applications, the
cluster should definitely reside behind your firewall and
not in your network's De-Militarized Zone
(DMZ)
or elsewhere.
Efficiency: Setting up a
MySQL Cluster on a private or protected network allows the
cluster to make exclusive use of bandwidth between cluster
hosts. Using a separate switch for your MySQL Cluster not
only helps protect against unauthorized access to Cluster
data, it also ensures that Cluster nodes are shielded from
interference caused by transmissions between other computers
on the network. For enhanced reliability, you can use dual
switches and dual cards to remove the network as a single
point of failure; many device drivers support failover for
such communication links.
It is also possible to use the high-speed Scalable Coherent
Interface (SCI) with MySQL Cluster, but this is not a
requirement. See Section 16.8, “Using High-Speed Interconnects with MySQL Cluster”,
for more about this protocol and its use with MySQL Cluster.