Introduction to Virtualization
Virtualization is everywhere! Exactly what is it and how should you make use of it?
The "Virtualization and Infrastructure Migration Technical Overview" course will help you discover the benefits of open source virtualization, how to better manage your virtualization assets, and the best way to move traditional workloads from one virtualization provider to an open virtualization.
In this course, you will learn to:
- Easily define infrastructure mappings.
- Create migration plans to confidently balance your workloads.
- Build migration plans to reduce your expenditure on virtualization.
Welcome back to the Technical Overview course on Virtualization and Infrastructure Migration. We are going to talk about Introduction to Virtualization, to know a bit more on what are we going to use for workloads in these series of videos. And first of all, what is the origin of everything. We used to have workloads running on servers and servers used to have and still have, of course, CPU, Memory, Storage, Network. I mean all these resources that go together that you can use in a server that connects to the rest of the world and provides this service that the application running on it is intended to do.
So we have these resources and when we need more resources normally, we add CPU, we add memory to the server, we add disks to the server, and we may add also a network interface to the server to increase its capacity and its capabilities. So sometimes the services grow too big and we needed to have several services running on the same server. So what do we do? Let’s slice it. I mean not like really slice it like with an ax or a knife, but slicing it logically. Like use an amount of memory and an amount of storage and an amount of network for one task and making this task independent, one from the other. So this is how we started creating virtual machines.
To slice the capabilities of a server, what you do is that you create a virtual hardware so you can install your operating system on that virtual hardware and then use a percentage of the capabilities of that server. So let us say that in this case we have three virtual machines. Machine A will have like 10% of the resources. Machine B will have like 40% of the resources. Machine C will have like 20% of the resources. So this is great. But normally for critical applications, we wouldn’t have a server. We would have a cluster.
We will have several servers with capabilities such as CPU, memory, storage, network and so on. And things that once one of the nodes in the cluster, one of the servers in the cluster fails, these workloads could run or keep running on the other servers. So this is very useful to keep available the services that are running on top of them.
So once we have a cluster, we can also slice it and then use part of the capabilities of the cluster for virtual machines. The same way we create a structural layer in which we create virtual hardware, we put an operating system inside and we put the application on the top of the operating system.
So we share the resources. So this is neat. What else can we do? Well, we can have many servers. We can have plenty of servers like 10 or 20 or 25 or 100 servers in a cluster. And we have this slicing, and then we can move one virtual machine from one hypervisor, which is a server in a cluster in a virtualization environment, to another hypervisor. So whenever we need to do something to one of the servers, it is pretty straightforward to move all the machines to all the hypervisors, go to this machine and, for example, fix a disk that is broken. To just remove it, add a new disk, rebuild a raid, and you are running again.
The thing is that when you have different platforms it is not that easy to move the VMs from one place to another. But this is what we’re working on. So the good thing about this is that this virtualization, modern virtualization, adds some goodies that have become like a must for operations. For example, Snapshots. You have a VM. You need to upgrade it so you just take a picture of it and then if something goes wrong, you roll back to the previous state. This is, I mean, completely necessary. And then the VM migration. To be able to move one VM from one hypervisor to the other without having to stop it, completely live, without losing service. And also VM Storage Migration because sometimes the storage gets full and you have the storage but they are not connected one to the other. So you can move the storage of that VM to the new storage easily and then balance that storage.
You have of course, Simple Network Management. You create VLANs. Assign them to networks within the virtualization. And then you connect the VMs with virtual network interfaces cards to the right VLANs by selecting them easily. You can do also Load Scheduling which is pretty convenient when you have a cluster of a service like, let’s say an application server, that you have like three virtual machines running the same thing. So you want them not to be running on the same physical server. So you can schedule them and you can do deployments much much faster by creating virtual machine images that you can use as templates to create new virtual machines, which speeds up all provisioning. So this is what makes virtualization a great improvement over traditional clusters with bare metal machines. And with this is what we want to work, to be able to move these workloads running on our virtual machines from one platform to another.
So that concludes the Introduction to Virtualization. We will see you in the next video.
About the Author
Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.
Jeremy holds professional certifications for both the AWS and GCP cloud platforms.