Two technical representatives of data center Virtualization: Containers and virtual machines
Nowadays, virtualization technology has taken root in the data center and is widely used, both in servers, networks, storage and other devices. Virtualization Technology originated from servers, and later appeared in network devices. Although it is called virtualization technology, the implementation principle is completely different, the Virtualization of network devices cannot Virtualize hundreds or thousands of virtual devices like the virtualization of servers, and the Implementation Technology is completely different. This article focuses on the virtualization technology in servers. The server is the most important component of the data center. All application services must be installed and run on the server. Therefore, the virtualization technology on the server is most closely related to applications. From the early years of virtual machine technology to today's container technology, it is a typical representative of virtualization technology.
Virtual Machine technology, many people may be familiar. Many people have installed virtual machines on their own PCs, which is also a practice of virtualization. Virtual Machine technology can be divided into two categories: hardware virtualization technology and Instruction Set virtualization technology. The typical representatives of hardware virtualization technology are VMware and Xen. The typical representatives of Instruction Set virtualization technology are Qemu and Boch. Virtual Machine technology has long been widely used in data centers and has been widely used in data centers for many years. It is widely used and many subdivision technologies can be derived, it has become one of the important representatives of the data center virtualization technology. Through virtual machine technology, one or more virtual computers can be created on a physical server. These virtual machines work exactly like real computers, for example, you can install the operating system, install applications, and access network resources. For users, it is only an application running on your physical computer, but for applications running on a virtual machine, it is like working on a real computer. Therefore, when evaluating software in a virtual machine, the system may crash, but the only thing that crashes is the operating system on the virtual machine, not the operating system on the physical computer, in addition, the recovery function of the virtual machine can immediately restore the status of the virtual machine to the status before the software is installed.
Container technology manages code and applications through virtual operating systems. It Was A virtualization technology that emerged and rapidly emerged in 2013, container technology is mainly designed and developed by some technical innovation enterprises, such as BlueData, CoreOS, Docker, Kismatic, and PortWorx. Among them, the most famous is Docker technology, docker has almost become a representative of container technology. Container technology enables you to add more computing workloads to a single server, and allows you to increase the capacity for new computing tasks in an instant. Theoretically, this means you can purchase less hardware, build or lease less data center sites, and hire less people to manage these devices. Each container contains an exclusive user environment space, and changes in one container do not affect the running environment of other containers. To achieve this, container technology uses a series of system-level mechanisms, such as using Linux namespaces for space isolation. The mount point of the file system determines which files the container can access, cgroups is used to determine how many resources each container can use. In addition, containers share the same system kernel, so that when the same library is used by multiple containers, the memory usage efficiency will be improved.
The Virtual Machine and container technologies aim at Virtualization in terms of description, but the technical hotspots and implementation methods are completely different. Virtual machines provide security and stronger logical boundaries for dedicated operating systems. If it is a virtual machine, the virtual machine hypervisor and the hardware dialog is like the virtual machine's operating system and applications constitute a separate physical machine. The operating system in the virtual machine can be completely different from the operating system of the host. The container has the lightweight feature and requires less memory space, providing a very fast start-up speed. The Container creation speed is much faster than that of virtual machines, that is because the VM must retrieve 10 Gb to 20 GB operating systems from the storage system. The workload in the container uses the operating system kernel of the host server to avoid this step. The container can be started within 1/20 seconds. With such a high speed, developers can activate project code, test code in different ways, or launch additional e-commerce capacity on their websites-all this is fast. Both virtual machines and containers are highly portable, but in different ways. Virtual machines can be transplanted between multiple systems running the same Virtual Machine hypervisor (usually VMware ESX, Microsoft Hyper-V, or open source Zen or KVM. The container does not need a virtual machine management program because it is bound to an operating system of a certain version. But the application in the container can be moved anywhere, as long as there is a copy of the operating system. Container technology allows applications to be formatted in a standard way before being placed in the container. Developers can use the same tool and workflow regardless of the target operating system. Once in a container, each type of application moves on the network in the same way. In this way, containers are similar to virtual machines, and they are package files that can be moved through the Internet or internal network. Of course, container technology is not as mature as virtual machine technology. Virtual machines are a highly developed and mature technology. It turns out that they can run on the most critical business workloads. Container technology has also begun to be applied to Internet companies such as Google and Alibaba. With the maturity and stability of the technology, it is likely to replace virtual machine technology. Of course, the container technology faces some unsolved problems. For example, security issues, neighboring containers share resources such as processors, memory, and disks. This behavior worries security professionals deeply. Container technology can run only one application on a computer, which limits the processing scale of the application. Therefore, containers are a technology worth using. However, you must use them with caution and think carefully, instead of rashly taking actions.
In the virtualization process of the data center, are virtual machines or containers used? It depends on your needs. If you only want to isolate the running instances of an application, it is an extremely efficient tool for managing the application runtime environment, starting application instances, and controlling resource overhead. If you look for the best environment isolation solution from the perspective of server virtualization, system-level virtualization is a better solution: Compared with containers, the impact of neighboring tenants on the system is not a problem in the virtualization solution. Although many containers are focusing on improving their isolation capabilities, the isolation of virtual machines is better than that of containers. The transition from a physical server to a virtual server is a natural process, and the Management ecosystem for virtual servers is also perfect. Of course, the two are not opposite. We can run a virtual machine in a container, a container in a virtual machine, or multiple containers in a virtual machine, the integration of the two technologies enables the two Virtualization Technologies to play a greater role in the data center.