Corsair RAM: Don’t use XMP
Just a quick note: If you’re running Corsair RAM, remember to disable XMP or you’ll spend hours troubleshooting seemingly random kernel panics and blue screens (seeing things like “Unrecoverable Hardware Failure”).
Just a quick note: If you’re running Corsair RAM, remember to disable XMP or you’ll spend hours troubleshooting seemingly random kernel panics and blue screens (seeing things like “Unrecoverable Hardware Failure”).
As some may know, I am hard at work planning and developing a managed cloud— basically, a cloud for developers who just want to be developers and not system administrators, but who would find a typical PaaS restrictive (i.e. PHPfog or the like.) Moving on.
Obviously, I can’t possibly cover all of the technology behind building a high performance cloud, but I’d like to at least give people a place to start if they’re interested in this kind of technology.
First, let’s talk about readily available open-source options (that I have experience with. There would be almost zero point in trying to discuss platforms I have never used.)
Cloud Software
Now, there are definitely more (for example a lot of VMware’s offerings) but for brevity’s sake let’s just stick with these three.
OpenStack
Who it is a good choice for: Python developers, cutting-edge cloud services, people looking for more extensibility than one person can possibly handle.
OpenStack is an impressive project. They’ve got a project going for just about every service you can imagine, from object storage (Swift) to network-as-a-service (Quantum.) What makes it so appealing, at least from my perspective, is the incredible amount of industry support behind it. Companies like Dell, RackSpace, even Citrix (who is offering their own cloud platform!) are behind this project. Just look at this list.
What does that mean for you and I? At first glance, it means that it’s going to be well supported and incredibly advanced. That’s an obvious conclusion to jump to, and one that many make. So would I deploy it in production for one of my clients or myself?
No. OpenStack is by all means a fantastic product, but I just do not feel that it is production ready at this point. Some may argue that RackSpace (and many others) are in the process of deploying it themselves so it must be ready. While it’s a valid point, RackSpace has the staff and expertise to build and modify the software themselves. I would be willing to bet that the codebase RackSpace is deploying is leaps and bounds above the publicly available OpenStack project in terms of improvements and specialization. It is simply not feasible for small to medium sized businesses and service providers to make that kind of commitment to just the platform itself.
That’s not to say it won’t be there one day, but in my professional opinion, I believe that it is not there yet.
CloudStack
Who it is a good choice for: Typical virtualization infrastructure needs, service providers of any size, companies that want an “out-of-the-box” solution.
CloudStack is my favorite platform at the moment, mainly because it is easy to use and deploy, and because I can count on it to keep working.
Let me explain further. CloudStack integrates with technologies I am already familiar with: the Xen and KVM hypervisors, NFS storage, VLANs, iSCSI, and more. That’s not to say OpenStack doesn’t— it certainly does. But CloudStack does it all out of the box, with recommendations and guides— the documentation is great, and goes so far as to tell you what the recommended setup is. OpenStack is trying to be everything to everyone (and I believe it will succeed) while CloudStack has a very specific purpose: provide the cloud “glue” to existing technologies that sysadmins are already familiar with.
I’m not opposed to learning new things; I generally love it. But the current state of the OpenStack documentation is enough to make my head spin, and I can’t shake the feeling that even if I successfully deployed it, I probably would have to spend hours fixing something when it breaks. At the end of the day, I want technologies I am familiar with; somebody on Hacker News put it best (I can’t seem to find the source): “OpenStack just has too much magic behind the scenes right now.” Magic makes sysadmins very uncomfortable.
CloudStack removes that feeling entirely. It’s very clear that it is an enterprise product that is ready to go, and is my choice at the moment.
Would I deploy it?
Yes. It’s not a huge leap from a typical hypervisor, and it has a relatively low learning curve. Plus, it comes with built-in business logic, template creation and management, network management, and a million other features that make my job very easy. I can spend less time on the platform and more time helping my clients achieve the solutions their businesses need.
OpenNebula
What it is a good choice for: high-performance computing, quickly scaling architecture up and down, deploying into existing networks.
OpenNebula is different than other cloud technology. For one, it is entirely template based— there is simply no way to deploy an instance on OpenNebula without using a template. That proved to be a deal breaker for me, but it definitely is not a deal breaker for everyone.
The template creation is extremely easy, the installation is also quite simple, and it adapts to just about any scenario using built-in “drivers” as the project calls them. The management node communicates with the compute nodes via standard SSH, and so setup is quite simple in that regard.
Overall, if you can get your systems to fit with an entirely template-based platform, I don’t see a reason to not choose OpenNebula. But if you find yourself needing to change the RAM or add a hard drive to a running or stopped machine, forget it. That’s not what OpenNebula does, and it looks as if there is no plans to support that in the future. This is almost exactly how Amazon’s infrastructure and typical IaaS services work, so do keep that in mind.
Moving away from the template criticism, I found the platform itself extremely nice to work with and rock-solid. As with CloudStack, I was able to work out how my existing knowledge fits with the OpenNebula infrastructure and it was an easy logical jump to make. So would I deploy it?
Yes. The platform itself is very nice, and it has drivers that work with just about any existing infrastructure. Even though the strict template usage didn’t work for me, and can see many scenarios where it would be no problem at all, and I would not hesitate to deploy this platform.
As you have probably determined, these are more opinions and anecdotes than solid numbers and hard facts, and as such, they should be taken with a grain of salt. I realize that I was pretty hard on OpenStack, and I just want to clarify that I am extremely exciting about the future of OpenStack, and will probably end up using it myself at some point in time.
Until then, CloudStack is impressive software backed by a major player in the virtualization industry, and I strongly believe it’s a great choice for most scenarios.