So we've mentioned the concept of virtual machines or VMs, but what exactly are
these? Well, when we're thinking about it, this is simply a set of software and
it's a presentation of resources to the application that we're installing,
meaning that it's going to appear to have CPU, it's going to appear to have
memory and all of these other hardware components that we've talked about
belonging to a PC or a server. Now this is meant to simulate again having WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
belonging to a PC or a server. Now this is meant to simulate again having
physical server resources. So I install an application onto this operating
system,
but it's all part of a virtual machine that once again is in software. So this
operating system that we're installing onto the virtual machine, again, it
needs
to think that it has access to all of these different resources. And so when we
see what's actually happening here, part of the responsibility of the
hypervisor is to take a portion of the real amount of let's just say memory WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
hypervisor is to take a portion of the real amount of let's just say memory
here and carve some amount of it up and deliver it to this virtual machine. But
then we've got another virtual machine over here with an operating system and
an application. And so we're going to need to carve some amount of it and
deliver
it over here as well. But this is why we can actually improve the efficiency of
our overall network and virtual space because remember what we said was one of
the problems of the bare metal environment. And that was that if this
server let's say was running at 90% utilization and this server over here is WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
server let's say was running at 90% utilization and this server over here is
running at 10% of the resources, well there was no way for this server to
access the resources that are over here on the server that is not very highly
loaded. But in this situation we absolutely can manage it this way. And so
we can have virtual machines on the host that are running at 10% virtual
machines that are running at 90% and in the end it's the physical resources WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
machines that are running at 90% and in the end it's the physical resources
that
matter more so than the virtual resources. So how many virtual machines can run
on
a single host? Well the answer with all good questions is it depends. It
depends
because this virtual machine over here is consuming a real amount of memory a
real amount of CPU cycles and all of these different resource components. And
so once we've exhausted the physical resources by deploying virtual machines WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
so once we've exhausted the physical resources by deploying virtual machines
that's what defines the limit. So I might see a host that supports 10 to 15
virtual machines. I would say in my experience this is a pretty common number
that we might expect to see. But I might also have a very large server with an
enormous number of CPU and memory types of resources and so maybe we've got 30
to
40 virtual machines on here and we could even go as low as one virtual machine
on
the host. Say well why in the world would we do that at that point we're back WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
the host. Say well why in the world would we do that at that point we're back
to a
one-to-one relationship between applications and hosts and there's
actually a few reasons for this. First of all the application might require it
but
second of all we actually get benefits tied to virtual machines that we could
accomplish this way rather than installing the application and operating
system directly to the hardware we install it as a virtual machine even
though it will be the only virtual machine that runs. One of those advantages WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
though it will be the only virtual machine that runs. One of those advantages
that we can take it will take advantage of I suppose is the idea of migration.
Virtual machines are software meaning that we can just move this software
around we
can move it around because it's just a bunch of zeros and ones on my desk and
in memory. So when we think about having multiple hosts I might have a virtual
host here but I'm probably going to have more than one virtual host it's pretty
common to have at least a handful if not potentially even dozens of virtual WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
common to have at least a handful if not potentially even dozens of virtual
hosts depending on the size of the data center. And so maybe this virtual host
is sitting here running at 90% resource utilization and this host over here is
running at let's just actually use more realistic like a 30% utilization. So
this is that same situation where we couldn't do anything about this when it
was a bare metal architecture. Well now we have let's say 15 virtual machines
running on this host over here and 15 virtual machines running over here. And WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
running on this host over here and 15 virtual machines running over here. And
not all virtual machines are created equal some of them are going to consume
more resources and so even though we have the same number where you see that we
're
consuming vastly different amounts of resources assuming these hosts are
built identically. There's nothing saying that they have to be for example
this could have maybe 256 gig of memory on the left and this one over here
might have 512 gig. We just don't know how exactly it's going to be built out
but we've got all kinds of factors to consider in all of this. So what might we WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
but we've got all kinds of factors to consider in all of this. So what might we
do in this situation? Well what we could do is consider migrating maybe two to
three virtual machines from one host to the other. Can we do this? Well
absolutely in fact we support two different options we could do a cold
migration which requires us to shut the virtual machine down and then we spin
it back up we turn it on on a new host. The idea here is that the virtual
machine technically lives off of the servers here on the storage array. This WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
machine technically lives off of the servers here on the storage array. This
is where the files the ones and zeros for the virtual machines are stored and
so
as long as they both have access to the same storage array then these two hosts
can both access that virtual machine so I could turn it off on this host I
could
turn it on on this host over here and that's known as a cold migration it
involves again shutting down the virtual machine. But here's the crazy
thing even better than this and feels like black magic is we can actually do a WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
thing even better than this and feels like black magic is we can actually do a
live migration. Forget the idea of shutting the virtual machine down simply
move the virtual machine from one host to the other while staying online the
entire time. How on earth do we do this? Well the way this works is again the
virtual machine is going to live from a ones and zeros perspective up here on
the storage array but it also is going to live here in memory in RAM and so if
I
can move these ones and zeros over to this host and in and in a as real time as WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
can move these ones and zeros over to this host and in and in a as real time as
possible shut the virtual machine down on this side and spin it back up on the
other side well at that point the virtual machine has not stopped running that
entire time and this is the concept of a live migration. Very cool and very
powerful it allows me to move virtual machines around and in a way that we
barely drop a ping in a lot of cases we don't even drop a ping and so this is a WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
barely drop a ping in a lot of cases we don't even drop a ping and so this is a
seamless migration to our end users. If they're using the application that's
hosted by this virtual machine they shouldn't even know that it moved from
one physical host to another physical host. Pretty crazy stuff when we think
about it and so because of this again we see some very big benefits to running
as
virtual machines as opposed to just deploying on to bare metal and this is WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
virtual machines as opposed to just deploying on to bare metal and this is
again why we might consider doing something like this even though it might
be silly at first to think about running a single virtual machine on a physical
server a physical host but instead now we've converted to a virtual machine and
we get these benefits. For example if I'm going to perform an upgrade or even
just a standard maintenance on the host itself well then I can move all the
virtual machines to other hosts perform that upgrade or perform the maintenance
and then migrate the virtual machines back and again it was seamless to the WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
and then migrate the virtual machines back and again it was seamless to the
users. I can also perform this concept of dynamic resource management so what
we just described where we had a situation where one of our hosts was
heavily loaded the other one was lightly loaded. Some of the virtual machine
software packages out there will do this on its own dynamically without us
intervening. They'll just slide the virtual machines around and make sure that
we're maximizing our resources and lastly we do have the concept of surviving WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
we're maximizing our resources and lastly we do have the concept of surviving
hardware failure as well. Now depending on how the hardware fails if we just
all
of a sudden lose one of these hosts we might have to rely on cold migration for
this other host to spin up the virtual machine but again a lot of software
packages that exist out there will help us to do this even in this situation in
a seamless live migration style using this concept of high availability. To run
essentially a backup instance of the virtual machine over here so that if this WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
essentially a backup instance of the virtual machine over here so that if this
host goes down we immediately activate this backup instance. So some pretty
crazy technology that exists here in the virtual space but again virtual
machines enable all of this simply by converting the idea of our physical
servers physical bare metal servers to software and then we think about all
the things we can do with software we can even copy and paste virtual machines
and use them for templates and all kinds of things everything that ties back to WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
and use them for templates and all kinds of things everything that ties back to
the fact that now that's represented by software.