|
|
|
|
 |
 |
|
 |
|
|
| |
How The Cluster Works
The cluster uses the technology by AppLogic. AppLogic is the first
cluster operating system that is designed for web applications and
is optimized for transactional and I/O intensive workloads. It uses
advanced virtualization technologies to ensure complete compatibility
with existing operating systems, middleware and applications. As a
result, AppLogic makes it easy to move existing web applications onto
a Cluster without modifications.
The Cluster service consists of several Clusters. Each Cluster consists
of up to 32 servers connected by a “backbone” - a 48-port
Gigabit Ethernet switch. Each of those servers has one or more hard
disks, and two NICs. One of the NICs connects the server to the backbone
switch, making it part of the Cluster. The second NIC connects the
server to the “front” network, which is connected to the
Internet.
Each server that is part of a cluster is called a node, and has a
unique name.
AppLogic uses three key terms to describe the things that run on
the Cluster. These terms are application, appliance and volume (a.k.a.
virtual volume).
|
|
|
| |
Volumes
An AppLogic volume is a virtual storage disk. It has a name, size
and data. Unlike physical disks which reside within a given server,
an AppLogic volume is a distributed object. The volume consists of
a metadata record and at least two mirrors. An AppLogic volume operates
exactly like a RAID1 disk array, except that the “disks”
themselves are virtual and reside on different servers.
A volume can be resized up or down with a single AppLogic command.
It can grow up to the largest amount of storage available on one of
the servers on the Cluster, and it can shrink down to the actual amount
of data stored on it. For example, if you store 2.56GB of files on
a 10GB volume, you can shrink the volume to 2.6GB or so (the inodes,
the journal, and other file system data also takes some room). When
you need more storage, you can expand the volume to the desired size
without
having to copy or migrate files.
|
|
|
| |
Appliances
An AppLogic appliance is a virtual hardware box. Like a physical
appliance such as a firewall, a load balancer, or a NAS box, an AppLogic
appliance has inputs and outputs and an interface that makes it easy
to configure. Each appliance has it’s own operating system and
a software stack, integrated and pre-tested for the given function.
Each appliance has at least one volume from which it boots. Some appliances
have “slots” for additional volumes, so that you can add
content, database or other data to them.
Appliances can be as simple as a single Linux box, or as complex
as a Clustered database server. An appliance can be started or stopped
with a single AppLogic command. Each appliance can be resized - you
can choose how much CPU, memory and bandwidth to give it, and you
can shrink or expand the appliance later depending on how much load
you need it to handle.
|
|
|
| |
Applications
An AppLogic application is a virtual private rack. Like a physical
rack, it allows you to assemble and package a Cluster of several appliances
and servers, for example, a firewall, a load balancer, several web
servers, a database server and a control panel server, so that you
can deal with the Cluster as a single box - crate it, ship it across
country, roll it into the datacenter floor, hook up the power cable
and the network, and you are ready to serve a scalable website or
application - all that the customer needs to do is copy their code
and data onto the appropriate places in the Cluster.
Each application consists of one or more appliances and one or more
application volumes. The application volumes is where your actual
site or app (e.g. the scripts/code, the database, the content, etc.)
live. You can think of them as removable disks that you can stick
into a DVD slot on a given appliance.
One Cluster can run multiple applications. The applications run side
by side on the Cluster without stealing resources from each other.
|
|
|
| |
How Cluster Stores Your Data
Cluster stores your data using an approach very similar to the way
it would be on a standard dedicated server with a RAID1 array. The
primary difference is that with a RAID1 array both disks are actual
physical drives, and reside in the same physical server. With CLUSTER,
each mirror of your volume resides on a different physical server.
The volume as a whole operates just like a RAID1 disk mirror. This
level of mirroring protects your data not only against disk failure,
but against any failure on the server on which one of your mirrors
resides. Each volume is attached to a virtual appliance, which is
part of an application running on the Cluster.
This example is for a single Application with 4 appliances being
used. 1 for MySQL, 1 for Apache, 1 for DNS, 1 for NAS.
Data written to the volume is sent to mirror 1 and mirror 2 at that
same time and is always current. If one of the mirrors (e.g. mirror
1) should fail, the other mirror (mirror 2) will take over. The volume
will continue to be accessible, but will go into a ‘degraded
mode’ where an alert is flagged for RoyAl Technology Management.
RoyAl Technology Management or AppLogic OS will run a ‘volume
repair’ operation, which will then restore the disk mirror into
the ‘OK’ state where mirror 1 is resynced and brought
up to date with the data from the mirror 2 image. This takes the image
out of ‘degraded’ mode and back into normal operation.
Note that volume repair happens in the background and is completely
transparent to your application.
|
|
|
| |
How Cluster provides high availability for your applications
Cluster continuously monitors all physical servers and all appliances
running on them. If an appliance crashes (or is rebooted intentionally),
AppLogic restarts it immediately on another server. Because of the
way AppLogic virtualizes all hardware, the appliance will run there
with the same IP addresses and have access to the same volumes as
it had before. From the point of view of the software that runs in
the appliance, this will look as if a server rebooted and came back.
If a physical server crashes or dies, Cluster will distribute all
appliances that used to run on that server across the rest of the
Cluster and restart them there. From the point of view of the software
that runs inside each of those appliances, the result is the same
as if each of those appliances was rebooted. In the case of a physical
server failure, AppLogic waits for 3 minutes to ensure that the failed
server is not coming back before restarting appliances and declaring
any volumes as “degraded”
The whole process is completely automatic, and requires no human
intervention. In most cases, by the time the RoyAl Technology Management
receives the alert about a failed server or appliance, all affected
appliances are already up and running elsewhere on the Cluster. What’s
left to the operator is to take care of the failed hardware (if any)
by replacing it with another server, or repairing it. Once the failed
node is back online after repairs, it is now part of the standby resources
ready to take over if another server fails.
Overall: It is a system that has fail-safes to keep everything up
and working for you.
Below you will see a graphical representation of this (click on image
for larger view).

|
|
|
|
|
|
|
 |
 |
 |
 |
 |