Operating System-Level Virtualization
This is a concept that Linux administrators are familiar with that because it’s born in Unix-Like operating systems. That is not new technology, and this method is older than most of us.
What is “Operating System-Level Virtualization”?
This technology as an advanced implementation of the standard chroot mechanism.
Operating-system-level virtualization is a server-virtualization method where the kernel of an operating system allows for multiple isolated user-space instances, instead of just one. Such instances, which are sometimes called containers and software containers.
Operating-system-level virtualization is commonly used in virtual hosting environments, where it is useful for securely allocating finite hardware resources amongst a large number of mutually-distrusting users. System administrators may also use it, to a lesser extent, for consolidating server hardware by moving services on separate hosts into containers on the one server.
Other typical scenarios include separating several applications to separate containers for improved security, hardware independence, and added resource management features. The improved security provided by the use of a chroot mechanism, however, is nowhere near ironclad. Operating-system-level virtualization implementations capable of live migration can also be used for dynamic load balancing of containers between nodes in a cluster.
Operating-system-level virtualization usually imposes little to no overhead, because programs in virtual partitions use the operating system’s normal system call interface and do not need to be subjected to emulation or be run in an intermediate virtual machine.
Some of popular implementations are as follows:
- Solaris Containers
- FreeBSD jail
LXC is most popular in the above list and you can find more information about that on this link: https://linuxcontainers.org/
LXD is the new LXC experience. It offers a completely fresh and intuitive user experience with a single command line tool to manage your containers. Containers can be managed over the network in a transparent way through a REST API. It also works with large scale deployments by integrating with OpenStack. Ubuntu server is the best of Linux server to implementing LXD containers and it’s also integrated with OpenStack.
You can try LXD on this link: https://linuxcontainers.org/lxd/try-it/
Now, what is different between containers and virtual machines?
Containers are extremely popular, doesn’t mean virtual machines are out of date. They’re not.
Yes, containers can enable your company to pack a lot more applications into a single physical server than a virtual machine (VM) can. Container technologies, such as Docker, beat VMs at this part of the cloud or data-center game.
VMs take up a lot of system resources. Each VM runs not just a full copy of an operating system, but a virtual copy of all the hardware that the operating system needs to run. This quickly adds up to a lot of RAM and CPU cycles. In contrast, all that a container requires is enough of an operating system, supporting programs and libraries, and system resources to run a specific program.
What this means in practice is you can put two to three times as many as applications on a single server with containers than you can with a VM.
In addition, with containers you can create a portable, consistent operating environment for development, testing, and deployment.
What about other operating systems and virtualization platforms such as VMware vSphere or Microsoft Windows or Microsoft Hyper-V?
There is some options to have containers on your OS or virtualization platform, you can use Docker Engine or Docker machine on this regard. You can find the procedure on Docker documentation center.
Also virtualization leader are working on their solutions, Microsoft has introduced Windows Containers, you can use Windows Containers on Windows Server 2016 (Full and Core) or Nano server.
Read this blog for more information: http://www.thomasmaurer.ch/2015/09/first-steps-with-windows-containers/
Now, what about a solution and mixing containers and virtual machines together?
The leaders (HP, VMware, RedHat and Microsoft) are working on another solution to mixing virtual machine and containers. They have introduced Cloud Native platforms. Microsoft has introduced Hyper-V containers and VMware has introduced Photon and vSphere Integrated Container on this regard.
I’m studying about these platforms, and I want to share some information about them on the next post.
Seems, IT moves faster every day! We have to move faster to discover new technologies.