Understanding Cloud Servers
There is a lot of hype about Cloud Storage, Cloud Computing, Cloud Servers, and related things that can be accomplished in the pervasive land of distributed, abstracted computers. LuxSci now also offers the option of running on dedicated servers in the cloud, in addition to the more common options of running on shared server(s) and on real dedicated servers. However, this all begs the questions: “What exactly is a cloud server?”, “How powerful is it?”, “How reliable is it?”, and “When is a Cloud Server a better solution than a Basic or Premium Dedicated Server?”
Here we answer those questions for you, at least in the context of the Cloud Servers within the Rackspace Cloud — which are the servers offered by LuxSci.
What Exactly is a Cloud Server?
A cloud server is a “virtual machine” which runs on one particular physical host server. The host server is big and powerful, and can run many virtual machines at the same time. So, your cloud server/virtual machine will typically be sharing the same underlying hardware with other virtual machines.
What makes these virtual machines “Cloud-Like” is that you never have to know anything about the physical server on which your cloud server is running. In fact, your Cloud Server can be seamlessly moved from one physical server to another (with only the downtime it takes to copy the machine’s disk storage). Additionally, the capacity (memory, disk space, and CPU power) of the Cloud Server can be upgraded as needed without altering anything at the hardware level. Cloud Servers can also be provisioned and taken offline “at will” as the underlying hardware is always there and the addition and removal of virtual machines is completely automated — one merely needs to configure the machines once they are online.
A Cloud Server:
- is a virtual machine that runs on a single physical host server
- can be moved to new host servers as needed
- can be scaled up or down in capacity, as needed
- is, from a software point of view, identical to a physical dedicated server
- shares the physical hardware of the host server with other virtual machines
- does not run on multiple host servers at the same time — i.e. there is no multi-server or multi-data center redundancy built into a single Cloud Server. Redundancy must be obtained using multiple Cloud Servers.
How Powerful is a Cloud Server?
This will change in time as the underlying dedicated host servers that run the virtual machines become increasingly powerful. However, at the time of this post, the Rackspace Cloud is using the following standardized host servers beneath all of its Cloud Servers:
- CPU: Quad Processor, Quad Core Intel Xeon Processors (16 cores, total)
- Memory: 16 GB RAM
- Disk: 640 GB in RAID 10 (mirroring plus striping) using 10,000 rpm SAS (Serial Attached SCSI) drives local to the server itself.
- Network: 100 Mbps public connectivity
The host computer is then “subdivided” into parts based on what virtual machines are running on it and how big they are. Each virtual machine is one of the following sizes:
|Size||Memory||Disk Space||Network Speed|
|1/64||256 MB||10 GB||10 Mbps|
|1/32||512 MB||20 GB||20 Mbps|
|1/16||1 GB||40 GB||30 Mbps|
|1/8||2 GB||80 GB||40 Mbps|
|1/4||4 GB||160 GB||50 Mbps|
|1/2||8 GB||320 GB||60 Mbps|
|1||15.5 GB||620 GB||70 Mbps|
The “Size” is the amount of the “entire underlying host server” dedicated to the virtual machine.
As you can see:
- Memory and disk space are evenly apportioned between the virtual machines depending on each machine’s relative size.
- Network speed is skewed to give the smaller machines at least a reasonable speed and to give the larger machines close to the full available capacity. However, there is obviously capacity sharing going on here.
How does the scheduling of CPU actually work?
Each Cloud Server is assigned a fixed weight based on the memory size (256, 512 and 1024 megabytes). So a 1024 has 4x the cycles as a 256 under load. However, if there are free cycles on a machine, all Cloud Servers can consume CPU time. This creates a leveraged environment that allows smaller Cloud Servers to likely consume cycles as needed, but still protects larger Cloud Servers that require higher loads.[ref]
How does scheduling of disk I/O work?
The storage arrays in the Cloud Server host machines are RAID 10 arrays built from 10k SAS drives. Total I/O capacity is dependent on the size of the Cloud Server. The larger the server instance, the more priority your I/O tasks will have.
How Reliable is a Cloud Server?
Cloud Servers are only as reliable as the underlying host server hardware. Rackspace uses standardized high-reliability Dell PowerEdges with:
- Redundant hot-swappable power supplies
- Redundant hot-swappable disk drives in RAID 10
So, in this sense, the reliability is similar to any other Advanced Server running high quality hardware. However, there is no built-in protection against the failure of the underlying server hardware. If its CPU or RAM should fail, for example, that failure would cause downtime for all Cloud Servers on that host. In fact, should the underlying hardware develop issues, all Cloud Servers may need to be migrated to a new host server — with the downtime that a migration may require. However, the processes are all automated, including a migration to a new server if warranted. All of the hardware is standardized, so the detection of any issues and replacement of any problem components is very simple.
Additionally, since the underlying hardware is shared with other Cloud Servers, it is possible that some Cloud Servers could be starved for resources by other Cloud Servers under some scenarios. For example,
- If other Cloud Servers on your host are all using a lot of bandwidth, then some instances may have less bandwidth available to them than otherwise. This may make network connections seem slower.
- If other Could Servers on your host, especially larger ones, are using a lot of disk I/O, then disk I/O for your Cloud Server may be slower than otherwise. This could be problematic if your application is I/O intensive (databases and email are resource intenstive, for example).
So in summary,
- The larger your Cloud Server instance is, the more reliable and consistent the server is.
- The Cloud Server is less reliable than an single dedicated Advanced Server.
- More reliability can be had by using multiple Cloud Servers for redundancy or load balancing (as with Dedicated Servers).
When is a Cloud Server a Better solution than a Basic or Premium Dedicated Server?
This depends on how the pros and cons work out for your particular situation.
Cloud Server Pros:
- Most economical option. Since the underlying hardware is standardized, even a 100% size Cloud Server, where the entire host server is utilized by just your Cloud Server, is much cheaper than a similar dedicated server outside of the Cloud.
- Easy to upgrade or downgrade. Cloud Servers can be upgraded or downgraded to other instance sizes with just the touch of a button and a few minutes of downtime. This is much simpler than with a Dedicated Server, where upgrades may require migrating to a new server with requisite costs and downtime. With Dedicated Servers, a downgrade is also not usually an easy option.
- Good contract terms. Since the provisioning and de-provisioning of Cloud Servers is automated (i.e. no hardware needs to be deployed or removed), it is very fast to setup or remove a server. As such, Rackspace charges for the servers usage “by the hour” and LuxSci provides favorable terms where Cloud Server accounts can be closed with as little as one week notice.
Cloud Server Cons:
- No Bulk Mailing. To prevent the IP addresses associated with the Cloud Servers from being “tarnished” by Spam blacklists, there is always a very strong no-bulk-mailing policy on Cloud Servers (and this applies to all Cloud Servers in general, including the Amazon Server Cloud). If you need to send bulk mail of any kind, you will need a Dedicated Server or a shared High Volume outbound emailing account.
- Advanced Servers are more Reliable: Cloud servers are more reliable than “Basic” Servers, less reliable than “Advanced” servers.
- Shared Hardware: The shared underlying hardware could result in decreased performance in some cases. It is also technically less secure/private to share hardware than not to share hardware. I.e. you could not put an application that must be PCI-compliant on a Cloud Server.
- Bandwidth. Bandwidth is metered in that you pay for what you use. If you need to use 500-1000+GB of bandwidth per month, it may be cheaper to get a Basic Dedicated Server with the first 1 to 2.5TB of bandwidth included in the price.
- Network Connectivity. With the largest Cloud Servers, you can have essentially a 100 Mbps connection to the Internet as a whole (a saturated 100 Mbps connection only gives you 60-75 Mbps of bandwidth in practice). If you need a Gigabit connection or a greater share of the 100 Mbps connection than your Cloud Server Size would grant, you may be better off with some kind of Dedicated Server.
- Complex Scenarios. If you require hardware load balancing, hardware firewalls, or other advanced configurations, you will want a Dedicated Server, rather than a cookie-cutter Cloud Server.