Instructor: When it comes time
to install and configure your virtual machines
when you're using virtualization,
it's important to understand
the different resource requirements that exist.
When it comes to resource requirements,
we really focus on four main areas.
The CPU and its virtualization extensions,
the system memory, storage and networking.
Let's take a look at each of these.
First, we have the CPU and its virtualization extensions.
Now, when we talk about CPUs,
each manufacturer, such as Intel and AMD,
uses different technology for virtualization.
If you're using Intel-based chips,
you're going to be looking for VT-x,
which is its virtualization technology,
which stands for VT.
If you're using an AMD processor,
they call their virtualization extension AMD-V
for AMD virtualization.
Now whether you're using a hosted hypervisor
or a bare metal hypervisor,
both them will get significant performance gains
if you have a CPU that supports virtualization.
Now, some virtualization software
does not require that a CPU
have virtualization support enabled
for you to be able to use virtualization.
But if you don't have virtualization enabled
as a processor extension,
it is going to significantly slow down your performance.
And you're going to have a very unusable virtual machine
when it comes to doing some real production work.
Now, if your processor supports virtualization
and most modern processors do,
you're going to have to go into the BIOS or UEFI
to be able to enable those virtualization extensions.
Usually, if you try installing
a virtual machine in something
like VirtualBox or VMware,
and it doesn't detect that there
is virtualization enabled,
it will give you an error message
telling you you need to enable VT-x or AMD-V.
Now, in addition to these two
virtualization technology extensions,
there's another one out there called SLAT,
which stands for the second level address translations.
And this is a processor feature
in a lot of modern processors
that'll help improve the performance
of virtual memory when you're running
multiple virtual machines
on a single physical host.
Now, if you're using an Intel processor,
they call SLAT as EPT,
which is the extended page table.
If you're using an AMD processor,
they call SLAT as RVI,
which is rapid virtualization indexing.
Either way, if you see the term SLAT, EPT or RVI,
you're really talking about the ability
to access virtual memory in a faster method,
and be able to get better performance
out of your CPU.
And it is something that your processor
has to support for you to be able
to use these extensions.
Now, in addition to talking
about virtualization extensions
inside of our processors and CPUs,
we also want to talk about the CPU themselves.
If you want to have a very high performance machine
when you're dealing with virtualization,
you're going to want to seek out
a processor that supports multi-core
hyper threading or multiple physical processors
on your given system.
By having additional cores available,
that means you have additional processing capability.
If you have multiple processors,
that means you have two or more physical processors
installed on that motherboard.
Now, this is fairly rare,
unless you're using a server-based technology
but in your desktop at home or your laptop,
you're more likely to find
either multicore or hyper threading
on your processor to give you virtual cores.
And that way it gives you additional ability
to assign processors to your individual virtual machines
running those guest operating systems
and giving them more dedicated resources
that will increase their performance.
Now, one other side note
when it comes to CPUs,
remember, CPUs really come
in three different mechanisms
that you're going to find in the market these days.
The first is the old school x86.
Now, when we talk about x86-based processors,
we're really talking about a 32-bit processor.
And this means you're going to be significantly limited
in your system's ability to use other things.
Because when you're dealing
with a 32-bit operating system,
you can only access four gigabytes of RAM,
which is a very small amount
when you want to deal with hosting
multiple virtual machines
on a single physical server.
Instead it's better to run an x64 base processor,
which gives you access to up to 16 exabytes
of RAM for your given system,
depending on whether or not your underlying
host operating system will support that.
This 16 exabytes compared
to the four gigabytes means
we have over 4 billion times more RAM available
if we're using an x64 base processor.
Now, if you're running a 64-bit processor,
you can still run 32-bit programs
and 32-bit operating systems
as guest operating systems on that physical server
if you'd like to.
The real limitation though
is if you have a 32-bit processor,
you cannot run 64-bit applications
or 64-bit operating systems
as virtual machines in a guest operating system.
So again, it's better to go
with an x64-based processor instead.
Now the third type of processor
you might come across is what's known as an ARM.
And an ARM is reduced instruction
set computer architecture
for your computer processor.
Now, where are you going to come across ARM
processors in the fields these days?
Well, if you're using any modern Mac,
they all use ARM processors.
And this is important because if you're running
one of the modern systems, like a MacBook Pro
or one of the new iMACs
that's running one of these M1 or M2 processors,
these are all ARM-based.
And because they're ARM-based,
they cannot natively host guest operating systems
that are not running on ARM.
Because there's got to be a translation that occurs.
So for example, if you buy a Mac or a MacBook Pro
that's using an M1 or an M1 Pro processor,
that is an ARM-based processor.
And if you try to install Windows 11
or Windows 10 into a guest operating system,
and those are x86 or x64-based operating system versions,
they're not going to run and you're going to get errors.
So if you're using an ARM-based processor
on your physical system
that you're going to be hosting
your different virtual machines on,
this is going to significantly limit
your choices of guest operating systems
because not all operating systems
have an ARM-based version.
At the time of this filming,
Windows 11 is currently making
a version for ARM-based processors
and those will work on those ARM chips.
And there's also Linux versions
that are ARM-based that you can run
on a MacBook or other ARM-based processor.
But I just wanted to point this out
to you because it is a limitation
you're going to come across.
Now, the second area we need
to talk about in terms of resources
is your system memory.
When we talk about system memory,
we're really talking about the amount
of physical memory that's installed
in your physical server or workstation
that's acting as the host operating system.
So for example, if I have eight gigabytes
or 16 gigabytes or 32 gigabytes more
is always better when it comes
to hosting virtual machines,
because if I only have eight gigabytes
of RAM on my laptop, for example,
and I want to run four different
guest operating systems,
well, if each one takes two gigabytes of RAM,
I've already used up all
of my physical memory and that didn't leave
any for my underlying host operating system.
Just to put this in perspective,
if you're running something like Mac OS,
this takes roughly about eight gigabytes of memory
just to boot up Mac
and be able to do what it needs to do.
If you're using a Windows machine,
generally, it takes around four gigabytes
to be able to run Windows sufficiently
as a host operating system.
So if you have eight gigabytes
and you want to run Windows 11
as your guest inside of a Windows 10 host,
that is going to take four plus four
or all eight gigabytes of your memory.
So again, when you talk about your resources,
you really want to be looking
at how much memory you can dedicate
towards those guest operating systems
and the more physical memory you have,
the more you'll be able to do that.
The next consideration for resources is our storage.
And we're talking about where are you going to store
all these virtual machine images.
Remember, all of these virtual machines
we're creating with their guest operating systems
are going to take up disk space on your physical server.
So if you have a laptop
that only has 256 gigabytes of space,
and you want to install a Windows 10
guest operating system on that system,
that's probably going to take you
about 50 gigabytes of space.
So you just used one fifth
of your total hard drive
on that one virtual machine image.
Now, if you had three or four different copies
of that you now have taken up
three or four times 50,
which is now 150 to 200 gigabytes,
which is almost your entire disk drive.
And so mass storage becomes
something you really have to be aware of.
Typically, when you're doing a Windows installation
a barebones Windows installation
is going to take about 20 gigabytes of space,
but you want to use probably 40 or 50
because you need to have additional space
when you want to store files on there,
install applications and things like that.
If you're using Linux, generally,
they are much more lightweight
and you can find most distros will install
in about four to eight gigabytes of space,
which is significantly less than windows.
If you're dealing with a Mac environment
as a guest operating system,
this, again, takes up usually
around 20 to 40 gigabytes worth of space.
So keep that in mind,
and if you have a very limited amount
of disk space on your physical device,
you may want to upgrade that
and increase your amount of storage.
That way you can host more guest operating systems
on that same physical server.
And the final area we need to consider is networking.
And this is because the hypervisor
that's operating on the host operating system
is going to be creating a virtual network environment
for all of the other virtual machines
that are being hosted on that system
to communicate through.
But if they all want to get out to the internet
or out to your local area network to download files,
they're all doing that
through your same network interface card
on the physical device.
So if you're using an older networking card
that only operates at a hundred megabits per second
and you're running five virtual machines on that server,
each one is effectively getting
only 20 megabits per second.
In this case, you would definitely
want to upgrade your network interface card
on the physical server
that's hosting these guests
and put in a gigabit networking card
or even a 10 gigabit networking card
if you're hosting multiple virtual machines.
This will allow you to have additional throughput
and bandwidth to be able to host
all these virtual machines without
the network becoming your slowdown.
In addition to this as you'll learn
in your networking studies later on,
you can also put in multiple network interface cards
and place them into what's known
as a teaming configuration.
This allows multiple cards to be working together
in tandem to give you higher speeds.
So if you have two, one gigabit networking cards
and they're working in a team,
you now have two gigabits
of throughput that you can use
to connect to the network.
Often, if you're working on a server
that's hosting lots of virtual machines
in a corporate or enterprise environment,
you will see they will have up
to four network interface cards,
all working in a team
so they can get up to four gigabits per second
or even up to 40 gigabits per second.
If they're using 10 gigabit per second network
interface cards on that particular server.
So remember when it comes to resource requirements
it's important to consider the CPU and the processor
and its capabilities, as well as how much memory you have,
how much storage you have and how much network you have.
These four areas are all areas you want to consider.
As you're deciding how many virtual machines
you be able to host on a given server or workstation
as well as how you can increase the performance
of those guest operating systems that are being run
inside your virtual machines on that particular hypervisor.