Intro to Hypervisor!
Hi there, and thanks for coming by today! My name is Jatin Salve,
and the question that we’re trying to help you solve today is:
What is a hypervisor?
And this is a question that we actually get fairly often, and it’s one that sometimes people are maybe a little embarrassed to ask, and I want to encourage you that there’s nothing wrong with ever asking this question.
For someone who’s early in their career, or maybe a college student, or a high school student, that’s just starting out, understanding these basic concepts is key to success because you’re going to build on top of these for the rest of your career. And so, what is a hypervisor?
A hypervisor is software that runs on a computer host that virtualizes it.
Lots of big buzzwords, but not a terribly helpful answer.
And so, I’d like to illustrate that for you, right? So, if we take and we draw this box.
This is a compute host. A compute host has 3 essential components in it, right? The first one is going to be a CPU … or CPUs, singular or plural. This is where the processing happens. The second is that compute host is going to have RAM, and the third is that compute host is going to have a network. Because you’ve got to be able to process things, you’ve got to be able to store them short term, and you’ve got to be able to send that data someplace. The compute host will probably have the fourth piece but isn’t guaranteed to have one. So, we’ll put it out here, and we’ll callthis storage. So, why do we put our storage over to the side? It’s because that hypervisor doesn’t necessarily virtualize the storage, and that’s okay. There are no problems with that. So, this is our compute host. This could be a server in a data center, it could be a desktop, or a laptop sitting on your desk. So, you’ve got one box that can be used by one person. Well, if it’s a very, very, powerful box, how do you then take and spread that power out among multiple users, multiple people, and multiple workloads, so that they can take advantage of it? That is where our hypervisor comes into play. So, the hypervisor is a software layer, that sits on top of the compute host, that virtualizes all of the functions of that host. It’s going to take your CPU or your processors, and divide them into subparts. It’s going to take your RAM and slice the RAM up into subparts, and it’s going to take your network and it’s going to divide it into subparts. Why do you need to divide them up? Because that hypervisor is going to allow you to schedule multiple virtual servers, right? This is a physical server. That hypervisor lets you schedule multiple virtual servers on top of it, so a virtual server, or VSI, “Virtual Server Instance”, has virtual compute, right? It has vCPUs. It has virtual RAM, VRAM, and it has a virtual network, a vNIC, and so, because you’re dividing these resources up, you are then going to be able to do it many times, right? You aren’t limited to just a single virtual server. You can have a second, and you can have a third, and you can have a fourth, and you can continue adding virtual servers until you saturate the performance of that underlying host. And that hypervisor, that’s that software layer that runs in the middle, this is what makes the magic happen. It’s what ensures that only the data that needs to be seen by that VSI is seen by that VSI, and that’s maybe the most important part. So, if we think about multiple virtual servers running on a physical server, how do we ensure that my data, that’s in this kind of orange one here, isn’t visible by data from these other guys? That’s data security 101, right? My data shouldn’t ever be visible to somebody else. And we’re all running on the same box, so there’s a risk that we might be. Well, part of what that hypervisor does, is it creates a line of demarcation between every virtual server so that the virtual servers cannot crash through this line and see what other virtual servers are doing. This is the security piece that’s incredibly important. And then, finally, we talked before about storage, right? We said that storage is important because, obviously, after you’ve ingested your data, put it on RAM, computed it, and then written it back down to RAM again, you’ve got to send it somewhere and you’ve got to store it long-term somewhere, otherwise, what’s the point? And so, storage can be attached to a virtual server in a couple of ways. One way is it can go through the hypervisor, right? So, your storage can come in through the network, and it can go into the hypervisor, and then be attached to that virtual server. That’s one way. A second way would be for it to be attached directly but for it to be local, right? So, our storage isn’t going to transit through the network because there’s no reason for that. It’s going to go right to the hypervisor, because it’s already plugged into the physical server, and then it’s going to get attached. And then the third way is: to imagine network storage like an NFS share. In this case, your storage can bypass that hypervisor entirely and connect directly to that virtual server. Now it’s still going to go through the network, and it’s still going to go through that vNIC, but the hypervisor isn’t going to control anything other than routing that data. So, that hypervisor really is the magic, right? That’s the magic layer that makes virtualization possible, that makes multi-tenancy possible, and it’s important because multi-tenancy is what has driven the cost of computing down. If you consider a compute host might be 5 or 5 thousand dollars a month by itself, virtualization allows us to sell you a virtual server for fifty dollars a month, or maybe it’s free.
There are two main types of hypervisors: type 1 and type 2. Type 1 hypervisors, also known as bare-metal hypervisors, run directly on the host’s hardware. This allows them to provide a high level of performance and isolation between virtual machines. Type 2 hypervisors, on the other hand, run on top of a host operating system. While this is less efficient than a type 1 hypervisor, it does have the advantage of being easier to install and manage.
Hypervisors are used in a variety of contexts, including cloud computing, data centers, and enterprise IT environments. They allow organizations to run multiple applications and operating systems on a single physical machine, which can help to save on hardware costs and improve resource utilization. In addition, hypervisors provide a level of flexibility and agility that can be useful in rapidly changing IT environments.
So, that’s the beauty of the hypervisor, that’s how it works at a very high level and, as always, if you have any questions, just let us know.
If you have any questions, please drop a line below.
Thank you for reading this!