OpenVZ is a container-based virtualization solution that allows site administrators to deploy multiple, independent instances of an Operating System on a web server.
What Problem Does OpenVZ Solve?
One of the more annoying problems that plague web application developers is the tendency for environmental changes to affect the way an application operates. Development of software apps is complicated and — even to the best developers — somewhat mysterious.
The number of layers of abstraction between high-level programming code and its execution, combined with the typical dependency on dozens or even hundreds of individual libraries and utilities, makes it hard to know if the software that works just fine on your development computer will function properly when deployed to a production server in the cloud.
Is There Another Solution?
Developers try to avoid this problem by writing solid, standards-based code instead of relying on weird hacks or tool peculiarities to get things done. But sometimes the line between the right way and the weird way to do something isn’t very clear, especially if you are doing novel and interesting things in your software.
And sometimes even the best code breaks when runing against a different version of some library or utility that it depends on.
Moreover, different apps might require different versions of the same dependency. Perhaps your e-commerce system has a weird fluke when running on PHP 5.3.2, but the data API run by your shipping department relies on that exact version, and won’t run properly on either 5.3.1 or 5.3.3.
This sort of thing happens all the time, and it is absolutely maddening.
So, what’s the solution? Containerization.
Who's Best for OpenVZ Hosting?
We think A2 Hosting is the best choice for OpenVZ.
Containerization is a special form of virtualization, where the idea of running software on a virtual machine is brought down to the level of individual apps.
What is Virtualization?
Virtual machines have existed for awhile, and you are probably familiar with them, at least a bit. A virtual machine is a software emulation of an entire real computer, on which is run a complete operating system and set of applications.
Many web hosts run virtual machines for their web hosting customers. The customer interacts with their own server as if it were a physical machine somewhere, but it is actually just a virtual machine running on commodity hardware in a data center owned by someone else.
This virtualization of servers allows multiple customers to run their web apps and services from a single machine (or cluster of machines) without interfering with each other.
Container-based virtualization (or containerization) brings this idea down to the level of a single app, instead of a single user or customer.
A container emulates only the operating system, not the entire machine.
How Does Container-Based Virtualization Work?
The container runs all the libraries, utilities, and dependencies that the primary app needs to function correctly, and nothing else.
The operating system inside the container, and everything else about the environment can be tweaked or adjusted as needed to get the application running the way it needs to, and this will have no effect on other software being run outside the container.
This also makes deployment much simpler: The idea is that you can run a container on your development machine, build your app, and then copy the entire container to the production server without any loss of continuity and without disturbing anything else running on the server.
Shopping Containers: An Analogy for Software Containers
In the early days of shipping, cargo was loaded into a boat by hand. Boxes, crates, furniture of all shapes and sizes was just loaded into the hold, secured as well as possible, and then unloaded later.
This was done by hand, by dock workers. This was extremely inefficient. Things broke. Things were lost. Cargo shifted around, endangering the balance of the ship. It was difficult to weigh cargo for proper pricing.
Shipping Containers Evolved
Eventually, shipping companies invented the idea of shipping containers. These are large, uniformly sized boxes that can be automatically loaded onto a ship and unloaded from it automatically by cranes and other machinery.
Advances in Shipping Containers Can Help us Understand Software Containers
The containers can be stacked. They can be placed on the back of a truck or on a train car. They can be uniformly priced. They are loaded by the customer or their agents, instead of people operating the ship. In fact, the people operating the ship don’t have to know anything at all about what is inside the container.
This is almost exactly the same idea with software containers.
The Basic Rundown of OpenVZ
OpenVZ is one of the most popular and mature container-based virtualization solutions available. It provides individual, independent installations of the Linux kernel. Each container acts as a stand-alone instance and can run its own apps, reboot independently, and use its own libraries and configuration files.
How Does OpenVZ Work?
The kernel is the software that communicates with computer hardware. It’s the very lowest form of software. This is the core of the computer’s operating system, and as a result, it has complete control over the entire system and everything in it. The kernel will usually be the first thing loaded when you start up a computer.
So, when we say that each OpenVZ container installs an independent Linux kernel, we’re saying that each container has its own Linux operating system.
The OpenVZ kernel itself is a Linux kernel that has been modified. Its modification has allowed the Linux kernel to support OpenVZ containers. This modified kernel provides virtualization and isolation, resource management, and checkpointing.
Virtualization and Isolation
Each container on the computer is completely separate. Each behaves as a stand-alone server and has its own files, users and groups, network, devices, process tree, and IPC objects
Each OpenVZ container has its own disk quotas so that limited disk space can be allocated to each individual container. OpenVZ also has an I/O scheduler for distributing the available bandwidth of the server to the containers. User beancounters set limits and guarantees for each container’s use of system resources.
This is what allows hosting companies to offer VPS plans with dedicated resources for each account on the server. They can allocate resources to different accounts based on the plans that the user is paying for.
This allows containers to be moved between physical servers without shutting the container down. Instead, the container is frozen, saved to a disk file, and then transferred to another physical server and unfrozen. The resulting delay is only a few seconds.
The Difference Between a Docker Container and an OpenVZ Container
If you know about containerization, you’ve probably heard of Docker. This is a software technology that provides containers. Instead of creating a virtual server as OpenVZ containers do, Docker containers have just one application designed to do only one thing.
In short, Docker is not a form of virtualization. Instead, it deploys applications inside software containers.
How to Create a Container with OpenVZ
You need to create a container in order to take advantage of OpenVZ. There are a couple of ways to do this. The first is to create your own from scratch. The second is to grab a pre-built container and download it for your own use.
These container templates come with the operating system for the container in a compressed file. Then, you will have to follow a number of commands to create the container. You can find the commands necessary to do this from a simple online search.
OpenVZ Hosting Requirements
OpenVZ requires Linux. The OpenVZ development team highly recommends CentOS or Red Hat Enterprise for fulfilling this requirement. The other requirements are widely supported, but require specific Linux expertise to configure properly.
Can Any Linux Server Be Used?
While OpenVZ could, in theory, be set up on most Linux servers (given the right expertise), it is highly recommended that you use a web hosting company that specifically supports OpenVZ and optimizes their servers to run it properly.
What About VPS?
If you are planning on administering a VPS environment, then you’ll need a control panel for management. For example, you may want to set up virtual servers to sell to other people for hosting. Again, we don’t recommend this unless you really know what you’re doing.
Assessing the OpenVZ Control Panel?
For solely controlling your OpenVZ servers, the OpenVZ web panel can help get the job done.
It lets you control the hardware and the virtual servers. Using this, you can both create and manage the containers on your server. And, you can manage your hardware resources as well.
The SolusVM control panel is a popular option for hosting clients. It lets both the server admin and their clients manage the VPS easily.
So, even if you’re not providing hosting but instead using it, you will be able to take advantage of the SolusVM panel for managing your VPS. This control panel lets users reboot, shut down, and restart the VPS. They’ll also be able to view VPS statistics and reinstall the OS.
How Does Containerization Relate to VPS Hosting?
If you’ve been shopping around for a web hosting provider, you’ve surely come across VPS plans. They’re powerful, flexible, and perfect for businesses. But what is VPS hosting anyway? VPS stands for Virtual Private Server. Exactly as it sounds, these are virtual servers rather than physical ones.
What is VPS Hosting?
The virtual environment is very similar to the hosting environment of a dedicated server but uses a shared hosting environment instead. Technically, VPS hosting is a combination of shared web hosting and dedicated hosting.
How Does VPS Hosting Work with Containerization?
VPS hosting uses containerization technology to run multiple virtual operating systems on the same server. Each individual operating system acts as a dedicated server. This is what allows VPS plans to offer private hosting and dedicated resources but at a much cheaper cost than dedicated servers.
This improves upon shared hosting in four main ways:
It keeps your website files isolated from other user accounts on the server.
It usually gives you root access to server functions.
It gives you full control over whatever server applications you want to install.
It isolates your allocated resources so you don’t have to share them with anyone else.
Is VPS Hosting Better Than Dedicated Hosting for OpenVZ?
When compared to dedicated hosting, we’ve already mentioned that VPS plans are cheaper.
But they also allow your hosting to be fully managed, meaning you don’t have to deal with any of the technicalities of running a server such as hardware upgrades or security patching. This is what makes VPS hosting such a popular choice among businesses of all sizes.
OpenVZ vs Other Virtualization Technology
If you’ve heard about OpenVZ, chances are you also know about KVM. KVM is another form of virtualization technology. People may wonder which is better when they’re looking into VPS hosting. Different web hosts will offer different forms of virtualization. Both KVM and OpenVZ are popular choices of hosting providers.
OpenVZ vs KVM vs Xem
Can only host Linux operating systems.
Runs containers using a shared kernel which provides more available memory to users than KVM.
Allows for complete sharing of resources on the server since users share the same kernel. This may be a problem for resource-intensive applications.
OpenVZ servers typically cost less than KVM servers because they can be oversold (we’ll get into this below).
For selling hosting, OpenVZ is easier to set up and maintain
Can host Windows, Linux, and custom OS.
Requires running a kernel inside the VPS. Users get their own kernel, providing a more isolated environment. But this also means less available memory.
Allows account users to set a maximum and minimum value for their resources. So, they only use the resources that they need to run applications on the VPS.
More expensive than OpenVZ servers due to better isolation.
For people selling hosting, KVM is harder to set up.
Can host both Linux and Windows operating systems
Completely isolates each individual VPS account. Each account has a dedicated kernel.
More isolated and dedicated solution than OpenVZ.
Includes the ability to schedule CPU resources and provide a disk quota to users.
Allows for strictly guaranteed resources to each user on the system.
Provides the best support for game servers.
What to Look For in an OpenVZ Host
Some web hosts may oversell their resources. This means that they allocate more resources to their customers than the server allows, hoping that not everyone will use up all of their resources. This is similar to how airlines will overbook flights in the hopes that a few people won’t show up.
Typically only shady web hosting companies will engage in this. So if you’re using a popular web host, you shouldn’t have to worry.
Watch Out For This
When you’re shopping for VPS plans and you’re looking at OpenVZ servers, make sure they’re not putting you on a system with too many containers. One thing to look for is that your hosting provider can give you resource guarantees.
You can talk to support from the web hosting company in question, or look up reviews before committing to a VPS plan if you’re concerned about this. Most good hosting companies won’t oversell their resources but you can never be too careful.
Find Out More
If you want more information about OpenVZ, check out OpenVZ.org. Here you can find useful information about installation and usage of the virtualization technology on their wiki-based website.
What are the Pros and Cons of Using OpenVZ?
We’ve talked about the good, the bad, and the ugly. Here is a quick break down of all the pros and cons of OpenVZ. Make sure you consider each of these before making your final decision.
Pros of OpenVZ
Good CPU performance for users
The host needs fewer resources due to a shared kernel
Users get their own dedicated resources
Uncomplicated to set up and maintain
Will provide the cheapest VPS options
Cons of OpenVZ
One VPS can temporarily take up resources from another when they are not being used
When there are no spare resources on the server, the server can terminate these processes
Not great for game servers or web projects that require heavy resource use
Not as reliable and stable as other options such as KVM
Can only run the Linux operating system
Top 3 Hosts for OpenVZ
With so many hosts, it can be overwhelming to figure out which one has the features you need. We suggest starting with the hosts below when looking for OpenVZ hosting.
A2 Hosting has some of the cheapest VPS options available.
We’re always happy with their blazing service on their 20x-faster Turbo Servers. Experienced developers can get ultra-cheap, unmanaged VPS plans from A2 with full root access and plenty of resources.
Inexperienced users will pay more for managed servers, but these prices are still much more affordable than LiquidWeb’s. One thing we love about A2 hosting is their amazing anytime money-back guarantee.
Liquid Web‘s VPS plans are built on some of the most powerful and secure architecture available.
Though their prices are steeper than you can find elsewhere, you’re paying for enterprise-level stability and a 100% uptime guarantee.
Their managed virtual server plans include full root access so developers can have complete control over the hosting environment. Because they use cloud VPS, your resources can be guaranteed and completely dedicated.
HostDime deserves a spot as a recommended virtual private server host. Their VPS plans come with smaller amounts of resources, allowing them to offer much cheaper rates than Liquid Web and A2 Hosting.
Though, you should note that all of their plans are unmanaged. Using your choice of Linux distribution, these virtual servers run Virtuozzo and OpenVZ. Get highly scalable resources, instant VPS deployment, and full root access.
The biggest reason OpenVZ is good is that its open source. While it lacks some of the flexibility of its commercial competitors for virtualization, OpenVZ is as good as the major market leaders at serving multiple Linux virtual machines on a Linux server like CentOS or Red Hat Enterprise. The overall savings and the comparable performance are a tough combination to beat for new developers or hosting providers.
Are there any reasons not to use OpenVZ?
If you are not familiar with containerization or virtualization, or even lacking in web server management in general, then OpenVZ is probably not the best solution for you to use for creating virtual machines. The biggest flaw with OpenVZ is that it restricts access to any devices that are not already virtual. Because of that, no real (or physical) devices will interact with OpenVZ.
What are the alternatives to OpenVZ?
OpenVZ is actually an open source alternative to Virtuozzo, which is a commercial server software developed by Odin for enterprise-scale virtualization when the operating systems are open source agnostic. Open source alternatives to OpenVZ include VirtualBox from Oracle, QEMU for open-source hosted hypervisors that perform hardware virtualization. Other alternatives to OpenVZ are commercial virtualization technologies like Xen from Citrix and VMware.
Do I have to know how to program to use OpenVZ?
Yes. While you might not need to be a well-skilled web developer to operate OpenVZ as your virtualization platform, you will need to know how to program on Linux servers. Because of the complexity of setting up server software, it is highly recommended that website owners or bloggers looking to setup OpenVZ contract a pro server developer before trying to directly set up the server. Consult with your hosting provider if you need a suggestion for who to contact regarding this highly technical service.
What are the requirements for OpenVZ hosting?
In order to deploy OpenVZ, you are going to need a server compatible with Linux – CentOS or Scientific Linux are the preferred platforms. There are Debian installation instructions on the official wiki, but the preferred method CentOS or Scientific Linux using RHEL 6. You will need to setup a separate partition for your containers. Once that is formatted properly, you need to download the OpenVZ repository file and upload it to your designated repository on the server. Once you have imported a specific key to your server, OpenVZ should be successfully installed and you will be ready to move on to Kernal installation and system configuration.
Are there any additional specific hosting recommendations?
Once you install OpenVZ, install the kernels, configure the system, install the tools and reboot – you still might not have much to look at when the setup is complete. OpenVZ has never had a very successful graphical user interface (GUI). While a GUI was introduced in 2007, it never evolved past version 0.1. Instead of a GUI included for system administration, you will need to download Linux OS templates to help operate your OpenVZ installation as well as the virtual machines you deploy through OpenVZ.
Do I need to be concerned about installation?
If you fully intend on installing OpenVZ yourself and have no experience with installing and configuring virtualization solutions, then yes installation of this software should be a bit concerning. Because OpenVZ is an open source platform, setup and installation is going to require more manual work than one of the commercial alternatives. Consult with your preferred dedicated hosting provider to see if they have a list of server management specialists you may contact prior to starting this project.
What does self-hosted mean? I don’t have to run a server myself, do I?
Self-hosted servers and their associated platforms do not require YOU to personally own the server and manage it to host your site. Instead, self-hosted simply means that hosting is not provided directly by the development team that created the software and systems you are using to run your virtualization platform. In order to use a self-hosted open source virtualization platform, you will need to contract a hosting provider before building your platform and make sure they offer dedicated hosting as an option with their packages.
Do I need managed hosting in order to use OpenVZ as my virtualization platform?
The answer to this question depends on your answer to the question “how much responsibility are you willing to accept for the maintenance of your website?” The more complex your virtualization environment becomes, the greater your need will be for professionally managed services. Shared hosting often comes with some managed services included. If you have a dedicated hosting solution, however, managed services are likely required as part of your agreement. To be fair, this is the case with any self-hosted virtualization platform – not just open source platforms like OpenVZ.
Can I host OpenVZ on a shared hosting plan?
Shared hosting plans are likely incapable of hosting OpenVZ because of the complexity of hosting virtualization platforms that require a considerable amount of resources to scale the reproduction of servers. Instead of using shared hosting for your own personal virtualization projects, you should probably consider deploying a Linux dedicated server.
How does OpenVZ compare to Virtuozzo as a virtualization platform?
OpenVZ is the open-source version of Virtuozzo. While the core framework of the two applications is similar, there are some unique features for each that you should consider before simply selecting one over the other. According to multiple reports from experienced web hosting professionals, Virtuozzo has a better control panel and better kernel hacks – which makes sense given its status as a commercial software. Because of the financial commitment a hosting provider needs to invest with Odin to acquire licensing for Virtuozzo, many hosting providers who offer Virtuozzo have an infrastructure that is more stable. Virtuozzo does a better job of providing memory management and reporting memory usage compared to OpenVZ. Another big benefit to Virtuozzo over OpenVZ is the I/O limiter, which will keep your server from overloading.