The structure of a cloud with open source (Part 1)
Cloud computing is no longer a booming industry. It is so valuable and important that fundamentally changes the way we use and develop applications. As you expect, Linux® and open source have provided the foundation for the cloud (for public and private infrastructure). Let's study the cloud structure, its architecture, and the open source technologies used to build scalable and dynamic computing and storage platforms.
Building blocks for Infrastructure as a Service (IaaS)
Using the cloud as an abstract concept is quite widespread with distributed systems being the Internet, but over the past few years, this abstract concept is highly virtualized to integrate infrastructures, easily provided as a service (either locally or remotely).
Cloud computing architecture
Let's start by looking at the core abstract concepts of cloud architecture (from infrastructure as a service – IaaS), then step outside the building blocks to other integration solutions.
Although virtualization technology is not a requirement, it offers the unique benefits of building dynamically expandable architectures. In addition to scalability, virtualization technology also includes the ability to migrate virtual machines (VMs) between physical servers for load balancing purposes. Virtualization components are created by a software layer. This layer provides the ability to run multiple operating systems simultaneously (and their applications) on a single physical computer. On the super monitoring layer is the object called the virtual machine, which contains operating system, applications and configuration. Optionally, device emulation can be created in the super supervised layer or as a virtual machine. Finally, due to the new dynamic nature of the virtualization technology and the new capabilities it brings, we need new management schemas. This management is best done in the layers, taking into account local management at the server, as well as managing the higher level infrastructure, creating a virtual overall synergy.
If you take the nodes and multiply them over a physical network with shared storage, coordinate the management over the entire infrastructure, then provide the initial load balancing of the links. Connected to (whether public or private) with fast storage and filtering, you have a virtual infrastructure called a cloud. This new structure is show in the picture below. Inactive machines can be turned off until more computing power is needed (with better performance), with virtual machines balanced (On the nodes depending on their own load.
With the underlying architecture of a defined cloud, let's find out where open source is being applied to build dynamic cloud infrastructures.
Main open source technologies
Background Linux is witnessing a wave of growth focused on virtualized infrastructures for virtualization, management, and larger-scale integration of cloud packages. Let's start looking at open source at the individual network node level, then move on to the whole infrastructure to see what's going on here.
Super monitoring layers
The basis of the cloud at the network node level is the super monitoring layer. Although virtualization is not a requirement, it provides an indispensable capability for scalable and efficient architectures. There are a number of open source virtualization solutions, but there are two major solutions that transform the Linux operating system into a super supervised layer: KVM (Linux Kernel Virtual Machine) and Lguest. KVM is the official super supervised flooring solution, deployed in a production environment. Lguest is a Linux-centric solution that only runs Linux virtual machines, but built into the kernel and used more extensively.
In addition to transforming Linux into a super supervised layer, there are also other solutions that focus on guest VMs. UML (User-Mode Linux) is an approach that modifies the Linux client kernel to run on Linux operating systems (without the super-super-layer extension). Since most users want to run an unmodified kernel, full virtualization solutions (such as KVM) are preferred.
This UML approach is also very popular, but requires virtualization hardware (such as consoles, virtual disks, and networking).
The super monitoring layer provides the means to share CPUs with multiple operating systems (virtualized CPUs), but to provide full virtualization technology, the entire environment must be virtualized for virtual machines. The machine, or platform emulation can be done in a number of ways, but a popular open source package supports some of the super monitoring layers called QEMU. QEMU is a full-fledged simulator and supervisor. KVM uses QEMU to simulate the device as a separate process in the user area (see Figure 1 above). An interesting feature of QEMU is that as it provides disk emulation (via the QCOW format), QEMU offers other advanced features such as snapshots and moving live VMs.
Since kernel 2.6.25, KVM uses virtio as a means of optimizing I / O virtualization performance. Virtio does this by incorporating partially virtualized drivers into the super supervised layer with client hooks to deliver near-native performance. This is only possible when the operating system modified for this purpose, but find out how to use it in Linux clients in Linux super configurations.
Currently, the virtio and QEMU work together so that simulated device transactions can be optimized between the Linux client and the QEMU emulator in the user area.
Virtual network connection
Because virtual machines are integrated in physical servers, the network needs of the platform increase. Instead of forcing all networked virtual machines to the physical layers of the platform, internal networking internal communications can be virtualized themselves. To optimize network communication between virtual machines, put into virtual switch. Virtual Switch - vSwitch acts like a physical switch, but is virtualized in this platform. In this figure, virtualized interfaces (VIFs) are linked to virtual machines that communicate through virtual switches to physical interfaces (PIFs).
Open source is also addressing this issue, with a very interesting solution called Open vSwitch. In addition to providing a virtual switch for virtual environments, vSwitch can also integrate across physical platforms and deliver enterprise-class features such as local area networks (VLANs), Quality of Service (QoS) based on priority, transfer, and hardware acceleration support (such as IOV-single-root I / O virtualization adapters). Open vSwitch is now available for 2.6.15 and supports a variety of Linux-based virtualization solutions (Xen, KVM, VirtualBox) and Remote Switched Port Analyzer Remote [RSPAN], NetFlow, etc.).
By: Alex Murphy