You want your own private cloud!  Now you have to figure out your options for getting there.  As a huge fan of open source, we recommend you build a private cloud on OpenStack. 

OpenStack is often seen as a way to create a private cloud but it is equally important as an overall Infrastructure as a Service or Data Center management software. This article focuses on the private cloud aspect of OpenStack since most research starts on how to set up private cloud with OpenStack.

We can cover more information on how OpenStack fits into Data Center management in another post. For now we will focus on the typical installation of OpenStack.

For people just starting please check out “What is OpenStack?” first. If you need to move fast, we suggest our hosted private cloud to get started.  If you are familiar with OpenStack you may prefer our more technical OpenStack private cloud pages.

Building a Private Cloud – General Hardware Considerations

Just like public cloud, private clouds are actually servers running software that makes the resources available easily.  There is no mystery on what it takes to make a private cloud.  Here is the  hardware we use at OpenMetal so you can see the specs.  This should help you see what building blocks are behind good private cloud design. 

XL v2.1 - Dedicated Server - Intel Xeon Gold 6338 Processor with 1TB RAM Hardware Diagram

NameExample Hardware with Specs
Small

Single Xeon D-2141i – 8C/16T, 128GB RAM, 1X3.2TB NVMe

MediumDual Silver Xeon 4510 – 24C/48T, 256GB RAM, 1X6.4TB NVMe
LargeDual Gold Xeon 6526Y – 32C/64T, 512GB RAM, 2X6.4TB NVMe
XL

Dual Gold Xeon 6530 – 64C/128T, 1TB RAM, 4X6.4TB Micron

XXL

Dual Gold Xeon 6530 – 64C/128T, 2TB RAM, 6X6.4TB NVMe

Storage XL

Dual Silver Xeon 4314 – 32C/64T, 256GB RAM, 12X18TB Spinning

The following table contains 4 example sets of hardware that back up your cloud.  Since we build our private cloud with open source (OpenStack) I will use terms from that world.  The key to those terms are after the table.

Private Cloud VM to Hardware – VM = 8GB/4vCPU with 75GB Storage

 250 VMs500 VMs1000 VMs2000 VMs

Control Plane + Compute + Block Storage

3 Small3 Medium3 Large3 XL

Compute + Block Storage

5 Large

4 XL

9 XL

12 XXL

Object Storage0 Storage0 Storage3 XL Storage

7 XL Storage

  • Control Plane – All of the Cloud control systems, including networking like routers, load balancers, user management, control panels, APIs, VM tracking and creation, etc.
  • Compute – KVM Virtual Machines
  • Block Storage – Network storage for VMs to directly mount either as full system or extended mounts.  Optionally can be File Systems as well.
  • Object Storage – S3 compatible objects typically used for bulk storage with a low cost requirement

A note on your network.  All cloud systems use virtual network devices.  This just means your cloud uses open source technology like OpenVSwitch or OpenVirtualNetworking to create routers, switches, and private IP space.  Your physical switches will need to just provide VLANs and your cloud software will build your private cloud networks in those VLANs using an encapsulation technique called VxLAN.  Check out below for more info.

How to Create a Private Cloud Using OpenStack

Now that we have covered the private cloud hardware building blocks, there are a few questions that will help you narrow down the path you might want to take. First though, its important to clarify that there are many parts of OpenStack that handle different situations. These part of OpenStack are called Projects. You do not need to learn about all Projects at this time to get started creating a cloud.

The number of Projects can be daunting, but in a typical starting setup to learn how to implement OpenStack you will only use the following plus maybe one or two more based on your situation:

With that out of the way, the next question.

Are you learning how to build a private cloud with OpenStack for educational purposes or because your company will need a cloud in the near future?

I am just learning to build an OpenStack Cloud for fun/education

Since you are creating a cloud for education we generally recommend that you use an emulation system. It is an OpenStack in a VM where the VM has special settings to allow for “VMs in a VM”. Running OpenStack in a VM is not performant – as you might imagine! It will let you understand how all these Projects work together though. We have used this here at OpenMetal for training purposes. Please see our Learn OpenStack on a VM guide for more information.

We do allow a limited amount of individual use, for free, of a Private Cloud Core. You can create a private cloud in about 45 minutes and use it for up to 8 hours per deployment, 3 times per month. We do ask that you use this sparingly if it is purely for educational purposes. Sign up here and you will need to answer some questions to be authorized as the value of the clouds can run in the $1500+ per month so we get a significant amount of attempted abuse.

I want to build a private cloud using OpenStack for my company

You have a mission! Your company is looking for an alternative to high priced mega cloud providers or a modern alternative to Colocation.  OpenStack is one of the most robust and supported pieces of software online, period. Only a few softwares, like Linux itself, has a larger and more active community.

As a leader in on-demand private cloud, which is built with OpenStack, we hope that you will take a look at our OpenMetal Hosted OpenStack. You can be up and running in as little as 45 seconds with a prescriptive OpenStack that allows for efficient Day 2 operations. It also comes with HA Ceph for storage. All hyper-converged on 3 servers to get started so it is low cost to learn before going to production. If your company qualifies, you can actually create a private cloud for free on our system. Learn more about leveraging on-demand private clouds for your organization.

Have Questions?       Contact Us

What is On-Demand OpenStack Private Cloud?

Show Me!

With that out of the way, if you are still here, then you are interested in the challenge of creating a private cloud with OpenStack manually.

How to Get a Proof of Concept Cloud Running Right Away

To build a production grade OpenStack and Ceph private cloud takes expertise in server hardware, front and back LAN networking, IPMI networking, routing, virtualized routing and switching, Hypervisor/Virtualization, storage principles, API usage, deployment automation/code like Ansible, and more.

Your team will be required to learn a lot of things and you need a place for them to start. We highly recommend that your team starts with a prebuilt system from us or one of the other OpenStack providers. We believe it so strongly that we provide our “Private Cloud Core” for free for non-production use. Restrictions apply and if you do not expect to buy from us for your production needs, then your access to free time will be prioritized behind paying customers.

If you are going to make a private cloud lab, here are some recommendations:

  • Use three identical servers – this will allow you to use Ceph easily as your Storage provider and setup OpenStack with a highly available control plane. Identical is not required but it will make your life easier for things like balancing VMs, doing live migrations which require matching CPU flags, and various other things.
  • Route a /27 or /28 of public IP space to the VLANs where you are going to put the above boxes. Public IP space will make your testing and assembly of the cloud easier. A 1Gbit connection is enough, but a 10Gbit connection makes life easier. Ideally, you should use a bonded NIC up to two separate ToRs that support MLAG. This will mean you learn the complexities of HA networking as solid network performance is an absolute must for good cloud performance.
  • Don’t try to automate the setup of the hardware using Ironic or Bi-Frost. Just get your OpenStack and Ceph running and come back to automation of the underlying hardware. For sure Ironic is one of the super-powers of OpenStack, but with great power comes great complexity!
  • Use Kolla-Ansible and Ceph Ansible for deploying – and setup your Ceph on the servers first before your OpenStack as then you can supply the right configs to OpenStack to use Ceph for Block and Object Storage right away
  • When building your own OpenStack cloud, it is important to remember that the strength of your network is paramount. This is not specific to OpenStack but when you create a private cloud from any common Cloud system.  If the network fails or performs poorly there are no end of troubles.  Spend extra time on this.  Also, note that since OpenStack will create safely separated private network through VxLAN, you must allow for the VxLAN overhead by setting your MTU of the “physical” devices above the standard used by the normal IP packet.  Think 1550 versus 1500 or 9080 versus 9000 – but see your switches manual for what they allow.

Next I will continue to add additional information to the following list:

With private cloud surging in popularity, we believe making OpenStack accessible is key – for more information check out Why is OpenStack Important for Small Business.