VIRTUALIZATION TECHNOLOGIES INTRODUCED BY CLOUD COMPUTING
INTRODUCED BY CLOUD COMPUTING_
Virtualization is a broad term. According to the Oxford Dictionary, “virtual” refers to something that is “physically non-existent, but implemented and presented through software.” Put another way, a virtual element is a specific abstraction of an element. Virtualization simplifies the expression, access, and management of computer resources, including infrastructures, systems, and software, and provides standard interfaces for these resources. Virtualization also reduces the dependency of service software on the physical environment, enabling enterprises to achieve higher stability and availability based on simplified operation processes, improve resource utilization, and reduce costs.
Throughout the years, virtualization technologies have flourished in the computing, network, and storage domains, and have become interdependent on one another. The development of computing virtualization technologies is undoubtedly critical, while the development of network and storage virtualization technologies is intended to adapt to the changes and challenges introduced by the former. In computing virtualization, one physical machine (PM) is virtualized into one or more virtual machines (VMs) using a Virtual Machine Manager (VMM), which increases utilization of computer hardware resources and improves IT support efficiency.
A VMM is a software layer between physical servers and user operating systems (OSs). By means of abstraction and conversion, the VMM enables multiple user OSs and applications to share a set of basic physical hardware. Consequently, the VMM can be regarded as a meta OS in a virtual environment. It can allocate the correct amount of logical resources (such as memory, CPU, network, and disk) based on VM configurations,
FIGURE 1.1 Virtualization.
load the VM’s guest OS, and coordinate access to all physical devices on the VM and server, as shown in Figure 1.1.
The following types of VMMs are available:
- • Hypervisor VM: runs on physical hardware and focuses on virtual I/O performance optimization. It is typically used for server applications.
- • Hosted VM: runs on the OS of a PM and provides more upper-layer functions such as 3D acceleration. It is easy to both install and use, and is typically utilized for desktop applications.
While multiple computing virtualization technologies exist, they often use different methods and levels of abstraction to achieve the same effect. Common virtualization technologies include the following:
1. Full virtualization
Also known as original virtualization. As shown in Figure 1.2, this model uses a VM as the hypervisor to coordinate the guest OS and original hardware. The hypervisor obtains and processes virtualization-sensitive privileged instructions so that the guest OS can run without modification. As all privileged instructions are processed by the hypervisor, VMs offer lower performance than PMs. While such performance varies depending on implementation, it is usually sufficient to meet user requirements. With the help of hardware-assisted virtualization, full virtualization gradually
FIGURE 1.2 Full virtualization.
Introduction to Cloud DCNs ■ 5
overcomes its bottleneck. Typical hardware products include IBM CP/C MS, Oracle VirtualBox, KVM, VMware Workstation, and ESX.
2. Paravirtualization
Also known as hyper-virtualization. As shown in Figure 1.3, paravirtualization, similar to full virtualization, uses a hypervisor to implement shared access to underlying hardware. Unlike full virtualization, however, paravirtualization integrates virtualization-related code into the guest OS so that it can work with the hypervisor to implement virtualization. In this way, the hypervisor does not need to recompile or obtain privileged instructions, and can achieve performance close to that of a PM. The most well-known product of this type is Xen. As Microsoft Hyper-V uses technologies similar to Xen, it can also be classified as paravirtualization. A weakness of paravirtualization is its requirement that a guest OS be modified, and only a limited number of guest OSs are supported, resulting in a poor user experience.
3. Hardware emulation
The most complex virtualization technology is undoubtedly hardware emulation. As shown in Figure 1.4, hardware emulation creates a hardware VM program on the OS of a PM in order to emulate the required hardware (VM) and runs this on the VM program. If hardware-assisted virtualization is not available, each instruction must be emulated on the underlying hardware, reducing operational performance to less than one percent of that of a PM in some cases. However, hardware emulation can enable an OS designed for PowerPC to run on an ARM processor host without any
FIGURE 1.3 Paravirtualization.
FIGURE 1.4 Hardware emulation.
FIGURE 1.5 OS-level virtualization.
modifications. Typical hardware emulation products include Bochs and quick emulator (QEMU).
4. OS-level virtualization
As shown in Figure 1.5, this technique implements virtualization by simply isolating server OSs. As a result, OS-level virtualization can achieve smaller system overheads, preemptive compute resource scheduling, and faster elastic scaling. However, its weaknesses include resource isolation and security. Container technology, as a typical OS-level virtualization technology, is becoming increasingly popular.
5. Hardware-assisted virtualization
Hardware vendors such as Intel and AMD improve virtualization performance by implementing software technologies used in full virtualization and paravirtualization based on hardware. Hardware- assisted virtualization is often used to optimize full virtualization and paravirtualization, rather than operating as a parallel. The best-known example of this is VMware Workstation which, as a full-virtualization platform, integrates hardware-assisted virtualization in VMware 6.0 (including Intel VT-x and AMD-V). Mainstream full virtualization and paravirtualization products support hardware-assisted virtualization and include VirtualBox, KVM, VMware ESX, and Xen.
While the above computing virtualization technologies are not perfect, driven by the changing upper-layer application requirements and hardware-assisted virtualization, they have seen widespread application for a number of years. In 2001, VMware launched ESX, which reshaped the virtualization market. Two years later, Xenl.O was released and open-sourced. In 2007, KVM was integrated into Linux 2.6.20. And in 2008, Microsoft and Citrix joined forces to launch Hyper-V, while Kubernetes was developing into a mature container technology. Today, these virtualization technologies are still developing rapidly, having not yet reached maturity. In terms of business models, the competition between open source and closed source continues unabated.
Table 1.1 describes the strengths and weaknesses of each virtualization technology.
In addition to computing virtualization, DCN virtualization technologies are also evolving rapidly due to the changes in computing and storage. Virtualization technologies evolved from N-to-1 (horizontal/vertical virtualization) and 1-to-N (virtual switch) technologies to overlay technologies, resulting in large-scale virtual Layer 2 networks (multiple Layer 2 networks combined) capable of delivering extensive compute resource pools for VM migration. SDN was then developed, which associates computing and network resources to abstract, automate, and measure network functions. This technological advancement is driving DCNs toward autonomous driving networks or intent-driven networks. The following chapters will elaborate on these technologies.