Quick ping of VM guests
get-vm | sort name | Foreach {Write-Output "Guest $($_.name) up: $(Test-Connection $_ -count 1 -quiet)"}
Guest vmtest01 up: True
Guest vmtest02 up: True
Guest vmtest03 up: True
Guest vmtest04 up: True
Guest vmtest05 up: True
Guest vmtest06 up: True
Guest vmtest07 up: True
Guest vmtest08 up: True
Guest vmtest09 up: True
Guest vmtest10 up: False
Guest vmtest11 up: True
Guest vmtest12 up: True
Guest vmtest13 up: True
Guest vmtest14 up: True
Guest vmtest15 up: True
You may want to use -count 2 if your network has a tendency to drop the first ping.
Sunday, September 13, 2015
Friday, September 4, 2015
Restarting all VMs in one line (AKA, why vCenter admins shouldn't leave their workstations unlocked)
We live in an interesting IT world. A former employer once took away my second AD 'admin' account because I wasn't a Windows admin and the auditors insisted that the only people who should have separate admin accounts were Windows admins. How backwards is that? After they took away my separate account, I had only one AD account with all my permissions, which included highly privileged access in vCenter. That's right - I had one account to login with, and that account had the ability to reboot, shut down, or delete every VM in the company with one line of code. (Ok, 2 lines of code if I wasn't already connected to the vCenter servers.) And yes, I did express my concern to management, who agreed that this change actually decreased security. However, since the change was something that was brought up by auditors and the appearance of security is often more important than actual security, nothing was ever done to separate my privileges on the virtual side.
Get-VM | Restart-VMGuest -confirm:$false
Get-VM | Stop-VM -confirm:$false
Get-VM | Remove-VM -DeletePermanently -runasync -confirm:$false
In the first command, Restart-VMGuest requires a supported version of vmtools to be installed and running in the VM. It will use vmtools to use the guest operating system's graceful shutdown routine. Use Restart-VM if you want to just pull the rug out under the OS more like a hardware power cycle.
In the second command, there is no graceful shutdown and no requirement for vmtools. It's like holding in the power button and crashing down the VM hard. Use Stop-VMGuest if you want to try a graceful shutdown using vmtools instead.
In the last command, the -DeletePermanently flag removes the VM files from the storage instead of just removing the VM from vCenter inventory. -RunAsync lets it run much more quickly, as it will start the delete process and move to the next delete, instead of waiting for the current delete to finish before starting the next one.
Get-VM | Restart-VMGuest -confirm:$false
Get-VM | Stop-VM -confirm:$false
Get-VM | Remove-VM -DeletePermanently -runasync -confirm:$false
In the first command, Restart-VMGuest requires a supported version of vmtools to be installed and running in the VM. It will use vmtools to use the guest operating system's graceful shutdown routine. Use Restart-VM if you want to just pull the rug out under the OS more like a hardware power cycle.
In the second command, there is no graceful shutdown and no requirement for vmtools. It's like holding in the power button and crashing down the VM hard. Use Stop-VMGuest if you want to try a graceful shutdown using vmtools instead.
In the last command, the -DeletePermanently flag removes the VM files from the storage instead of just removing the VM from vCenter inventory. -RunAsync lets it run much more quickly, as it will start the delete process and move to the next delete, instead of waiting for the current delete to finish before starting the next one.
Sunday, May 31, 2015
CIMC Storage log filled with Unexpected sense errors
We have many standalone Cisco UCS C240 M3S hosts, and on all of them the CIMC storage log is being filled with 'Unexpected sense' errors every 5 minutes.
According to the release notes (http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/release/notes/OL-32046-01.html), this is due to VMware treating all storage devices the same way, regardless of whether they are SAS disks or just enclosures. They list a manual workaround that will stop these messages from being logged in the vmkernel.log and in the CIMC storage log that involves ssh'ing into the host and running an esxcli command.
Of course, I don't want to turn on ssh and remote to the host to run the commands one host at a time - PowerCLI to the rescue!
These steps will "disconnect" the enclosure from the viewpoint of ESXi. The parameter set is correct for ESXi 5.5. You may need to adjust the parameters for different ESXi versions.
connect-viserver myhost.mylab.com
$esxcli = get-esxcli -vmhost myhost.mylab.com
$device = ($esxcli.storage.core.device.list() | where-object {$_.DeviceType -match "enclosure"}).device
$esxcli.storage.core.device.set($null,$device,$false,$null,$false,$null,$null,$null,"off")
As always, watch the line breaks when you copy/paste. From here, it should be easy to script an automated solution for an entire environment. Note that if you have lockdown mode enabled there may be other steps required to allow you to connect via get-esxcli.
According to the release notes (http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/release/notes/OL-32046-01.html), this is due to VMware treating all storage devices the same way, regardless of whether they are SAS disks or just enclosures. They list a manual workaround that will stop these messages from being logged in the vmkernel.log and in the CIMC storage log that involves ssh'ing into the host and running an esxcli command.
Of course, I don't want to turn on ssh and remote to the host to run the commands one host at a time - PowerCLI to the rescue!
These steps will "disconnect" the enclosure from the viewpoint of ESXi. The parameter set is correct for ESXi 5.5. You may need to adjust the parameters for different ESXi versions.
connect-viserver myhost.mylab.com
$esxcli = get-esxcli -vmhost myhost.mylab.com
$device = ($esxcli.storage.core.device.list() | where-object {$_.DeviceType -match "enclosure"}).device
$esxcli.storage.core.device.set($null,$device,$false,$null,$false,$null,$null,$null,"off")
As always, watch the line breaks when you copy/paste. From here, it should be easy to script an automated solution for an entire environment. Note that if you have lockdown mode enabled there may be other steps required to allow you to connect via get-esxcli.
Saturday, May 30, 2015
Get boot time of ESXi host in local time with PowerCLI
A co-worker came to me yesterday with a request for something that seemed quite easy but came with an unexpected twist. He needed to get the boot time for a group of ESXi hosts. Finding the code for this wasn't hard with a quick google search.
For a single host:
PowerCLI C:\script> (get-vmhost esxhost01.example.local).extensiondata.runtime.boottime
Tuesday, March 31, 2015 1:13:07 AM
Using select makes it easier to report on a group of hosts:
PowerCLI C:\script> get-vmhost | select name,@{Name="BootTime";Expression={$_.extensiondata.runtime.boottime}}
Name BootTime
---- --------
esxhost01.example.local 5/1/2015 2:57:32 PM
esxhost02.example.local 5/29/2015 1:54:30 PM
Piece of cake! Except this was UTC time, and it makes more sense for us to report our boot time in local time. Here's the thing - a [datetime] object in Powershell has a method toUniversalTime() but there is no reverse method to convert UTC to local time.
What's the answer? Use New-Timespan to determine your offset from UTC time and the addhours() method of the [datetime] object. Your offset from UTC can be calculated as:
$offset = (new-timespan -start (get-date).touniversaltime() -end (get-date)).hours
For one host:
(get-vmhost esxhost01.example.local).extensiondata.runtime.boottime.addhours((new-timespan -start (get-date).touniversaltime() -end (get-date)).hours)
For a group of hosts:
get-vmhost | select name,@{Name="BootTime";Expression={$_.extensiondata.runtime.boottime.addhours((new-timespan -start (get-date).touniversaltime() -end (get-date)).hours)}}
Sorry for the line breaks :)
For a single host:
PowerCLI C:\script> (get-vmhost esxhost01.example.local).extensiondata.runtime.boottime
Tuesday, March 31, 2015 1:13:07 AM
Using select makes it easier to report on a group of hosts:
PowerCLI C:\script> get-vmhost | select name,@{Name="BootTime";Expression={$_.extensiondata.runtime.boottime}}
Name BootTime
---- --------
esxhost01.example.local 5/1/2015 2:57:32 PM
esxhost02.example.local 5/29/2015 1:54:30 PM
What's the answer? Use New-Timespan to determine your offset from UTC time and the addhours() method of the [datetime] object. Your offset from UTC can be calculated as:
$offset = (new-timespan -start (get-date).touniversaltime() -end (get-date)).hours
For one host:
(get-vmhost esxhost01.example.local).extensiondata.runtime.boottime.addhours((new-timespan -start (get-date).touniversaltime() -end (get-date)).hours)
For a group of hosts:
get-vmhost | select name,@{Name="BootTime";Expression={$_.extensiondata.runtime.boottime.addhours((new-timespan -start (get-date).touniversaltime() -end (get-date)).hours)}}
Sorry for the line breaks :)
Tuesday, May 12, 2015
One-Liner to get the VMs restarted by HA after an ESXi host PSOD
PSODs suck. We know that. We've been getting the occasional PSOD after going to 5.5 U2, and when a prod host crashes the first thing everyone wants to know is: Which VMs were affected?
I put together a one-liner to get this information based on the event that is recorded on the VM when HA restarts it on another host.
Breakdown:
get-vmhost : get the vm host object of the host that went down with a PSOD
get-cluster : gets the cluster that host was in
get-vm : gets all the VMs in that cluster
Get-VIEvent -Start (Get-Date).AddHours(-24) -types warning : gets all the events of type 'warning' within the past 24 hours (adjust the # according to how long ago the PSOD was.
where-object {$_.fullformattedmessage -match "restarted"}: filters the events for those that match 'restarted'.
I'm working on turning this into an actual function that would save some typing.
I put together a one-liner to get this information based on the event that is recorded on the VM when HA restarts it on another host.
get-vmhost ProdHost01.example.local | get-cluster | get-vm | Get-VIEvent -Start (Get-Date).AddHours(-24) -types warning | where-object {$_.fullformattedmessage -match "restarted"} | select objectname,createdtime,fullformattedmessage
Breakdown:
get-vmhost : get the vm host object of the host that went down with a PSOD
get-cluster : gets the cluster that host was in
get-vm : gets all the VMs in that cluster
Get-VIEvent -Start (Get-Date).AddHours(-24) -types warning : gets all the events of type 'warning' within the past 24 hours (adjust the # according to how long ago the PSOD was.
where-object {$_.fullformattedmessage -match "restarted"}: filters the events for those that match 'restarted'.
I'm working on turning this into an actual function that would save some typing.
Sunday, June 22, 2014
One-liner to list names, NAA ids of the boot luns in a cluster
One-liner to list hosts, datastore names, and NAAs of the boot luns in a cluster.
Broken down:
Not all the fields may display completely on your screen. You can always pipe to out-file to dump the info to a text file or pipe to format-list
Sample output:
host Name NAA
---- ---- ---
hostab01 hostab01-boot naa.6005076801818...
hostab02 hostab02-boot naa.6005076801818...
hostab03 hostab03-boot naa.6005076801808...
hostab04 hostab04-boot naa.6005076801808...
hostab05 hostab05-boot naa.6005076801808...
get-cluster "cluster01" | get-vmhost | sort-object name | get-datastore | where-object {$_.CapacityGB -lt 100} | select @{n="host";e={($_ | get-vmhost | select name).name}}, name, @{n="NAA";e={($_ | get-scsilun | select canonicalname).canonicalname}}
Broken down:
- Get-cluster "cluster01" - start by getting the cluster
- get-vmhost - get all the ESXi hosts in the cluster
- sort-object name - optional to sort the hosts by name
- get-datastore - get the datastores attached to the hosts
- where-object {$_.CapacityGB -lt 10} - filters only the small datastores*.
- Select-object - pick the properties to display
- @{n="host";e={($_ | get-vmhost | select name).name}} - shows the name of the vmhost
- name - shows the name of the datastore object
- @{n="NAA";e={($_ | get-scsilun | select canonicalname).canonicalname}} - shows the naa of the datastore
Not all the fields may display completely on your screen. You can always pipe to out-file to dump the info to a text file or pipe to format-list
Sample output:
host Name NAA
---- ---- ---
hostab01 hostab01-boot naa.6005076801818...
hostab02 hostab02-boot naa.6005076801818...
hostab03 hostab03-boot naa.6005076801808...
hostab04 hostab04-boot naa.6005076801808...
hostab05 hostab05-boot naa.6005076801808...
Sunday, June 8, 2014
Storage vMotion just one hard disk using PowerCLI
I was looking for a quick way to storage vMotion some of a VMs hard disks but not all of them. I found a pretty quick one-liner at ict-freak.nl
These can be combined into a one-liner like so:
Worked perfectly for me.
Get-HardDisk -vmHowever, I found that Set-HardDisk is deprecated. Move-HardDisk is the preferred method. The help file for Move-Hard disk had some simple examples.| Where {$_.Name -eq "Hard disk <#>"} | `
% {Set-HardDisk -HardDisk $_ -Datastore "" -Confirm:$false}
$vm = get-vm "MyVM"
$mydisk = $vm | get-harddisk -name "Hard Disk 3"
$mydatastore = get-datastore -name "SAN2"
move-harddisk -harddisk $mydisk -datastore $mydatastore
These can be combined into a one-liner like so:
Move-HardDisk -harddisk (get-vm "MyVM" | get-harddisk -name "Hard Disk 3") `
-datastore (get-datastore -name "SAN2") -confirm:$false -runasync
Worked perfectly for me.
Wednesday, May 14, 2014
I changed my password and now linked mode doesn't work!
My co-worker changed his password today, and suddently when he launched vCenter he couldn't see any of our linked vCenters. He could connect to the linked vCenters just fine and see all of them, but whenever he connected the vCenter client to our main vCenter server it would not connect any of the linked vCenters.
It took a bit of snooping around in security logs in various vCenter servers, but the resolution was to connect to the main vCenter server, look at Home/Administration/Sessions and kill all of my co-worker's sessions. After that, he was able to connect his vCenter client to the main vCenter server and see all of our linked vCenters as well.
It took a bit of snooping around in security logs in various vCenter servers, but the resolution was to connect to the main vCenter server, look at Home/Administration/Sessions and kill all of my co-worker's sessions. After that, he was able to connect his vCenter client to the main vCenter server and see all of our linked vCenters as well.
Friday, January 31, 2014
The case of the disappearing LUNs!
The case of the disappearing LUNs!
We ran into an interesting situation at work this week. For one cluster of ESXi hosts, LUNs were disappearing seemingly at random. Now, we had been using this cluster as a 'Jump' cluster to facilitate moving from one environment to another, so it had lots and lots of LUNs attached. (162, in fact).
We found that every time we would 'Rescan' for new storage, some LUNs would be discovered and others would disappear. It seemed pretty obvious that we were running into some sort of storage maximums, but we were well below the ESXi published maxiums of 256 attached LUNs and 1024 physical paths. We had previously run into another issue with VMFS heap, so every host in this cluster already had VMFS3.MaxHeapSizeMB set to its maximum. A real stumper.
A call to VMware and we found that we were, in fact, running into a heap issue, but it was not the VMFS heap that was filling. The lvmdriver also has a heap setting, which by default is 42000KB (~42MB). This lvmdriver heap was completely full. From the hosts' consoles, this was easily fixed by running an esxcli-module command. That's great, but not going to work in an environment with 100s of hosts. PowerCLI to the rescue!!
For today's fun, I wrote a quick function to get the lvmdriver heap size for ESXi 5.0 hosts. Since I know the default from the VMware case, if the option in the lvmdriver is not explicitly set then the function returns the default value.
function Get-lvmDriverHeapSize {
<#
.SYNOPSIS
Gets the lvmDriverHeapSize configured for a 5.0 host
.DESCRIPTION
This function will get the lvmDriverHeapSize for a 5.0 host if it
has been configured.
.NOTES
Author: Cheryl L. Barnett
.PARAMETER VMhost
The host object to check
.EXAMPLE
PS> Get-lvmDriverHeapSize -VMhost (Get-VMHost Test01.fqdn.local)
.Example
PS> Get-VMHost Test01.fqdn.local | Get-lvmDriverHeapSize
#>
param(
[parameter(valuefrompipeline = $true, mandatory = $true,
HelpMessage = "Enter a VMHost entity")]
[VMware.VimAutomation.ViCore.Impl.V1.Inventory.VMHostImpl] `
$VMhost)
process{
#Note that if multiple options are set then this entire function breaks
if (!($_.extensiondata.config.product.version -match "5.0"))
{
Throw "$($VMHost) is not an ESXi 5.0 host! Please use this function for` 5.0 hosts only!"
}
$maxHeapSizeString = (get-vmhost $_ | get-vmhostmodule ` lvmdriver).options.tostring()
if($maxHeapSizeString -match "maxHeapSizeKB=")
{
$maxHeapSizeKB = [int]($maxHeapSizeString.split("="))[1]
}
else
{
$maxHeapSizeKB = 42000
}
$maxHeapSizeKB
}
}
So, with this function you can sweep through your environment relatively quickly and get the configured lvmdriver heap size. Note the caveat in the code - if the lvmdriver has multiple options set then this code will break. That's not an issue I want to tackle right now, since it's way beyond the scope of what I need to do to fix my problem. Also, watch the line breaks there. I think I put all the backticks in the right place but no guarantees.
If all goes well, next week I'll have a function to set the lvmdriver heap size.
We ran into an interesting situation at work this week. For one cluster of ESXi hosts, LUNs were disappearing seemingly at random. Now, we had been using this cluster as a 'Jump' cluster to facilitate moving from one environment to another, so it had lots and lots of LUNs attached. (162, in fact).
We found that every time we would 'Rescan' for new storage, some LUNs would be discovered and others would disappear. It seemed pretty obvious that we were running into some sort of storage maximums, but we were well below the ESXi published maxiums of 256 attached LUNs and 1024 physical paths. We had previously run into another issue with VMFS heap, so every host in this cluster already had VMFS3.MaxHeapSizeMB set to its maximum. A real stumper.
A call to VMware and we found that we were, in fact, running into a heap issue, but it was not the VMFS heap that was filling. The lvmdriver also has a heap setting, which by default is 42000KB (~42MB). This lvmdriver heap was completely full. From the hosts' consoles, this was easily fixed by running an esxcli-module command. That's great, but not going to work in an environment with 100s of hosts. PowerCLI to the rescue!!
For today's fun, I wrote a quick function to get the lvmdriver heap size for ESXi 5.0 hosts. Since I know the default from the VMware case, if the option in the lvmdriver is not explicitly set then the function returns the default value.
function Get-lvmDriverHeapSize {
<#
.SYNOPSIS
Gets the lvmDriverHeapSize configured for a 5.0 host
.DESCRIPTION
This function will get the lvmDriverHeapSize for a 5.0 host if it
has been configured.
.NOTES
Author: Cheryl L. Barnett
.PARAMETER VMhost
The host object to check
.EXAMPLE
PS> Get-lvmDriverHeapSize -VMhost (Get-VMHost Test01.fqdn.local)
.Example
PS> Get-VMHost Test01.fqdn.local | Get-lvmDriverHeapSize
#>
param(
[parameter(valuefrompipeline = $true, mandatory = $true,
HelpMessage = "Enter a VMHost entity")]
[VMware.VimAutomation.ViCore.Impl.V1.Inventory.VMHostImpl] `
$VMhost)
process{
#Note that if multiple options are set then this entire function breaks
if (!($_.extensiondata.config.product.version -match "5.0"))
{
Throw "$($VMHost) is not an ESXi 5.0 host! Please use this function for` 5.0 hosts only!"
}
$maxHeapSizeString = (get-vmhost $_ | get-vmhostmodule ` lvmdriver).options.tostring()
if($maxHeapSizeString -match "maxHeapSizeKB=")
{
$maxHeapSizeKB = [int]($maxHeapSizeString.split("="))[1]
}
else
{
$maxHeapSizeKB = 42000
}
$maxHeapSizeKB
}
}
So, with this function you can sweep through your environment relatively quickly and get the configured lvmdriver heap size. Note the caveat in the code - if the lvmdriver has multiple options set then this code will break. That's not an issue I want to tackle right now, since it's way beyond the scope of what I need to do to fix my problem. Also, watch the line breaks there. I think I put all the backticks in the right place but no guarantees.
If all goes well, next week I'll have a function to set the lvmdriver heap size.
Friday, October 11, 2013
IAAS - Objective 1.1
Objective 1.1- Install vCloud components
Identify required vCloud components and pre-requisites for installation
This post by Frank Denneman hits the nail on the head and includes a very helpful diagram.
To run a VMware vCloud environment, the minimum components to run are:
• VMware vCloud Director (vCD)
• VMware vShield Manager
• VMware Chargeback
• VMware vCenter (supporting the Resource groups)
• vSphere infrastructure
• Supporting infrastructure elements (Networking, SAN)
And these might be worth printing
http://www.hypervizor.com/diags/Hypervizor-com-VMware-vCloud-Suite-Architecture-Diagram-v1.pdf
http://www.hypervizor.com/diags/Designing-your-Private-Cloud-With-vCloud-Director.pdf
Trainsignal has a free video "Everything you need to know about installing vCloud Director 5.1"
KB Article 1026339 'VMware vCloud Director components' sounds like it would cover this objective, but it doesn't really because it's more of a description of the parts of the cloud after it has been installed. It's based on vCD 1.5, but I'm including it anyways because in general you still need to know these things.
Identify required vCloud components and pre-requisites for installation
This post by Frank Denneman hits the nail on the head and includes a very helpful diagram.
To run a VMware vCloud environment, the minimum components to run are:
• VMware vCloud Director (vCD)
• VMware vShield Manager
• VMware Chargeback
• VMware vCenter (supporting the Resource groups)
• vSphere infrastructure
• Supporting infrastructure elements (Networking, SAN)
And these might be worth printing
http://www.hypervizor.com/diags/Hypervizor-com-VMware-vCloud-Suite-Architecture-Diagram-v1.pdf
http://www.hypervizor.com/diags/Designing-your-Private-Cloud-With-vCloud-Director.pdf
Trainsignal has a free video "Everything you need to know about installing vCloud Director 5.1"
KB Article 1026339 'VMware vCloud Director components' sounds like it would cover this objective, but it doesn't really because it's more of a description of the parts of the cloud after it has been installed. It's based on vCD 1.5, but I'm including it anyways because in general you still need to know these things.
Monday, March 25, 2013
Monday, September 17, 2012
Quick links
Just 2 links I came across I want to peruse more later.
http://blog.mwpreston.net/vcp-5/vcp-5-objective-4-3-manage-virtual-machine-clones-and-templates/
http://virtuallymikebrown.com/2012/02/05/a-small-virtual-machine-for-a-test-lab/
http://blog.mwpreston.net/vcp-5/vcp-5-objective-4-3-manage-virtual-machine-clones-and-templates/
http://virtuallymikebrown.com/2012/02/05/a-small-virtual-machine-for-a-test-lab/
Wednesday, September 12, 2012
Info on adding a datastore to multiple hosts in a cluster via PowerCLI:
http://www.vmware.com/support/developer/PowerCLI/PowerCLI41/html/New-Datastore.html
I should be able to modify the code in example 2 to add NFS storage to a group of hosts:
Get-VMHost | New-Datastore -Nfs -Name NFS1 -Path "/mnt/nfs1/nfs11/test1" -NfsHost 10.91.246.21
Looks easy, right? How hard could that be? ;)
http://www.vmware.com/support/developer/PowerCLI/PowerCLI41/html/New-Datastore.html
I should be able to modify the code in example 2 to add NFS storage to a group of hosts:
Get-VMHost | New-Datastore -Nfs -Name NFS1 -Path "/mnt/nfs1/nfs11/test1" -NfsHost 10.91.246.21
Looks easy, right? How hard could that be? ;)
Sunday, September 9, 2012
Licensing
3 editions of vCenter Server:
VMware vCenter server for Essentials (bundled with kits)
VMware vCenter Server Foundation (up to 3 vSphere hosts)
VMware vCenter Server Standard (limited only by sizing limits; includes vCenter Orchstrator)
3 editions of vSphere
vSphere Standard Edition
vSphere Enterprise Edition
vSphere Enterprise Plus Edition
Note: version 4 had an edition called VMware vSphere Advanced. It no longer exists, and users who purchased Advanced Edition licenses are entitled to use Enterprise Edition in vSphere 5
Physcial CPU cores and Phsycial max of 256GB of RAM limits go away in vSphere 5. However, they introduced vRAM entitlements
vRAM entitlements:
Standard: 32GB
Enterprise: 64GB
Enterprise Plus: 96 GB
These entitlements are per license. vSphere 5 is licensed on a per-processor basis. So, a physical server with 2 physical CPUs needs 2 licenses. There is no limit on the number of cores or the amount of RAM that can be physically installed in the server. If you use 2 licenses of Enterprise Plus, you get a vRAM entitlement of 192 GB of RAM.
vRAM entitlements can be pooled across all the hosts being managed by one vCenter server
basic idea is to help organizations move closer to usage-based cost and chargeback models that are more typical of cloud computing or IaaS models.
Memorize the table on pp 18-19 on vRAM entitlement, vCPUs per VM, and what functions are included in each product edition.
All editions of vSphere 5 include support for thin provisioning, vSphere Update Manager, and storage APIs for Data Protection.
On all editions except Essentials, VMware requires at least one year of Support to be purchased.
Essentials kits are all-in-one solutions for small environments (up to 3 hosts with 2 CPUs each and a 32GB RAM entitlement)
You can't buy Essentials kids on a per-CPU basis; they are bundled solutions for three servers
You can buy Acceleration Kits as well. (allows customers an easier way to purchase necessary licenses in one step
**Note: I am aware that VMware has ditched its vRAM licensing as of August 27, 2012. My notes are based on the book.
VMware vCenter server for Essentials (bundled with kits)
VMware vCenter Server Foundation (up to 3 vSphere hosts)
VMware vCenter Server Standard (limited only by sizing limits; includes vCenter Orchstrator)
3 editions of vSphere
vSphere Standard Edition
vSphere Enterprise Edition
vSphere Enterprise Plus Edition
Note: version 4 had an edition called VMware vSphere Advanced. It no longer exists, and users who purchased Advanced Edition licenses are entitled to use Enterprise Edition in vSphere 5
Physcial CPU cores and Phsycial max of 256GB of RAM limits go away in vSphere 5. However, they introduced vRAM entitlements
vRAM entitlements:
Standard: 32GB
Enterprise: 64GB
Enterprise Plus: 96 GB
These entitlements are per license. vSphere 5 is licensed on a per-processor basis. So, a physical server with 2 physical CPUs needs 2 licenses. There is no limit on the number of cores or the amount of RAM that can be physically installed in the server. If you use 2 licenses of Enterprise Plus, you get a vRAM entitlement of 192 GB of RAM.
vRAM entitlements can be pooled across all the hosts being managed by one vCenter server
basic idea is to help organizations move closer to usage-based cost and chargeback models that are more typical of cloud computing or IaaS models.
Memorize the table on pp 18-19 on vRAM entitlement, vCPUs per VM, and what functions are included in each product edition.
All editions of vSphere 5 include support for thin provisioning, vSphere Update Manager, and storage APIs for Data Protection.
On all editions except Essentials, VMware requires at least one year of Support to be purchased.
Essentials kits are all-in-one solutions for small environments (up to 3 hosts with 2 CPUs each and a 32GB RAM entitlement)
You can't buy Essentials kids on a per-CPU basis; they are bundled solutions for three servers
You can buy Acceleration Kits as well. (allows customers an easier way to purchase necessary licenses in one step
**Note: I am aware that VMware has ditched its vRAM licensing as of August 27, 2012. My notes are based on the book.
High availability, Fault Tolerance, Storage APIs
High Availability (HA)
automated process for restarting VMs that were running on an ESXi host at a time of complete server failureVMs are migrated to an ESXi host that is part of the HA-enabled cluster (does not use vMotion!!)
Intended to address unplanned downtime, not planned outages
Improved in v5
- scalability (up to 512 VMs per host and 3000 VMs per cluster)
- integrates more closely with DRS, giving Ha greater ability to restart VMs in the event of a host failure
- rewrite of the architecture to Fault Domain Manager, eliminating many of the contraints in earlier versions
Remember that HA will have service interruptions. If vSphere HA restarts the VM, the applications or services provided by that VM are unavailable during the restart
vSphere Fault Tolerance (FT)
Even greater level of high availability than HA can provide.Eliminates any downtime in the event of a host failure
uses vLockstep technology
utilizes a mirrored secondary VM on a separate physical host that is kept in lockstep with the primary VM.
If the physical host on which the primary VM is running fails, the secondary VM can immediately step in and take over without any loss of connectivity.
Also, if the physical host on which the secondary VM is running fails, the mirrored secondary VM will be automatically recreated on another host.
In the event of multiple host failures, vSphere HA will reboot the primary VM on another available server and recreate the secondary VM
In this version, vSphere FT can work in conjunction with vMotion and is integrated with DRS, but it does require EVC
vSphere Storage APIs for Data Protection and VMware Data Recovery
Two key components:- vSphere Storate APIs for Data Protection (VADP)
- VMware Data Recovery (VDR)
enables functionality like file-level backup and restore; support for incremental, differential, and full-image backups
supports multiple storage protocols
provides for native integration with backup software
NOT a backup solution, it just provides the framework for making backups possible.
VMware Data Recovery (VDR) is VMware's backup tool that leverages VADP to provide a full backup solution for smaller vSphere environments
Storage DRS, Storage/Network I/O Control, Profile-driven storage
Storage DRS
helps balance storage capacity and performance across a cluster of datastoresIncludes choosing the best datastore when placing a new VM
Also includes storage vMotion to reblance storage resource utilization dynamically
Storage I/O Control and Network I/O Control
allows admins to assign relative priority to storage I/O and limit storage I/O.Settings are enforced cluster-wide
Works for VMFS and NFS datastores in 5.0 (4.1 included only VMFS datastores)
Similarly, network I/O has extensive controls so admins can ensure that VMs that need priority access to network resources get the resources they need
Profile-Driven Storage
New to vSphere 5storage profiles ensure that VMs are residing on storage that can provide the capacity, performance, availability, and redundancy they require.
Key components:
- Storage capabilities, leveraging vSphere's storage awareness APIs
- VM storage profiles
admins can provide the storage capabilities as well
profiles are created that specify the storage capabilities that must be present in order for the VM to run.
vSMP, vMotion/Storage vMotion, DRS
Virtual Symmetric Multi-Processing
Technology that allws the use of multiple processors inside a VM.v5 lets you specify multiple cores (e.g. dual socket VM with 2 cores per socket)
vMotion and Storage vMotion
vMotion also known as 'live migration'moves a running VM from one physical host to another with no downtime
Allows easy maintenance of a physical host that needs to be brought down for repair or maintenance
Allows easy migration to new physical hardware
Helps when multiple VMs are in contention for the same resources
Storage vMotion migrates a VM's storage while the VM is running
doing both vMotion and storage vMotion at the same time requires the VM to be powered off
vSphere DRS
leverages vMotion to provide automatic distribution of resource utilization across multiple ESXi hostsAt startup, DRS tries to put the VM on the physical host that is best suited to run that VM at that time (also known as intelligent placement)
While VM is running, DRS tries to provide 'load balancing' and moves VMs to the physical hosts that can provide the best resources without contention.
vSphere client, vShield Zones, and vCenter Orchestrator
VMware vSphere Client and vSphere Web Client
Windows-based application that facilitates management of ESXi hosts, either directory or via a vCenter ServerBrowse to the URL of an ESXi host or vCenter Server to install it
Connect to a vCenter Server for the full set of management capabilities
Web client is a dynamic, web-based UI
No client installation necessary
Not all functionality of the full vSphere Client is available
VMware vShield Zones
virtual firewall functionalitylet admins see and manage network traffic flows occurring on the virtual network switches
Apply network security polies that survive vMotion and vSphere DRS
Other items in the vShield family of products
- vShield App (guest-level firewall)
- vShield Edge (network edge security/DHCP/NAT/VPN/Load-balancing)
- vShield Endpoint (AV solution for third-party AV vendors to leverage)
VMware vCenter Orchestrator
workflow automation enginebuild automated workflows
plug-ins extend functionality to include manipulating AD, UCS, and vCloud Director
vCenter Server features - more notes and things to read
VM templates
http://www.vmware.com/pdf/vc_2_templates_usage_best_practices_wp.pdf
VM customization
http://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vsphere.vm_admin.doc_50%2FGUID-2481FF43-8C73-41FE-9BA0-D2676E5BC781.html http://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vsphere.vm_admin.doc_50%2FGUID-1D9EFBFA-A8CD-4091-90A9-7151B4724FB3.html
rapid provisioning and deployment
role-based access controls
http://www.trainsignal.com/blog/vmware-access-control-101-roles-and-permissions http://pubs.vmware.com/vsphere-50/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-50-security-guide.pdf
fine-grained resource allocation controls
vSphere vMotion
https://www.vmware.com/products/datacenter-virtualization/vsphere/vmotion.html#glance
vSphere distributed resource scheduler
https://www.vmware.com/products/datacenter-virtualization/vsphere/drs-dpm.html
vSphere High Availability
https://www.vmware.com/products/datacenter-virtualization/vsphere/high-availability.html
http://www.vmware.com/files/pdf/VMware-High-Availability-DS-EN.pdf
vSphere Fault Tolerance
http://www.vmware.com/files/pdf/VMware-Fault-Tolerance-FT-DS-EN.pdf
Enhanced vMotion Compatibility (EVC)
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003212
Host Profiles
http://www.vmware.com/files/pdf/techpaper/VMW-Host-Profiles-Tech-Overview.pdf
Storage I/O control
http://www.vmware.com/files/pdf/techpaper/VMW-vSphere41-SIOC.pdf http://blogs.vmware.com/vsphere/2012/03/debunking-storage-io-control-myths.html
vSphere Distributed Switches
http://www.vmware.com/files/pdf/VMware-vNetwork-Distributed-Switch-DS-EN.pdf http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1010555
Network I/O Control
http://www.vmware.com/files/pdf/techpaper/VMW_Netioc_BestPractices.pdf
vSphere Storage DRS
http://www.vmware.com/files/pdf/techpaper/vsphere-storage-drs-interoperability.pdf
http://www.vmware.com/pdf/vc_2_templates_usage_best_practices_wp.pdf
VM customization
http://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vsphere.vm_admin.doc_50%2FGUID-2481FF43-8C73-41FE-9BA0-D2676E5BC781.html http://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vsphere.vm_admin.doc_50%2FGUID-1D9EFBFA-A8CD-4091-90A9-7151B4724FB3.html
rapid provisioning and deployment
role-based access controls
http://www.trainsignal.com/blog/vmware-access-control-101-roles-and-permissions http://pubs.vmware.com/vsphere-50/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-50-security-guide.pdf
fine-grained resource allocation controls
vSphere vMotion
https://www.vmware.com/products/datacenter-virtualization/vsphere/vmotion.html#glance
vSphere distributed resource scheduler
https://www.vmware.com/products/datacenter-virtualization/vsphere/drs-dpm.html
vSphere High Availability
https://www.vmware.com/products/datacenter-virtualization/vsphere/high-availability.html
http://www.vmware.com/files/pdf/VMware-High-Availability-DS-EN.pdf
vSphere Fault Tolerance
http://www.vmware.com/files/pdf/VMware-Fault-Tolerance-FT-DS-EN.pdf
Enhanced vMotion Compatibility (EVC)
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003212
Host Profiles
http://www.vmware.com/files/pdf/techpaper/VMW-Host-Profiles-Tech-Overview.pdf
Storage I/O control
http://www.vmware.com/files/pdf/techpaper/VMW-vSphere41-SIOC.pdf http://blogs.vmware.com/vsphere/2012/03/debunking-storage-io-control-myths.html
vSphere Distributed Switches
http://www.vmware.com/files/pdf/VMware-vNetwork-Distributed-Switch-DS-EN.pdf http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1010555
Network I/O Control
http://www.vmware.com/files/pdf/techpaper/VMW_Netioc_BestPractices.pdf
vSphere Storage DRS
http://www.vmware.com/files/pdf/techpaper/vsphere-storage-drs-interoperability.pdf
ESXi, vCenter Server, and Update Manager
ESXi
VMware documentation: http://www.vmware.com/files/pdf/techpaper/vSphere-5-ESXi-Operations-Guide.pdfCore of the vSphere product
Bare-metal hypervisor (http://en.wikipedia.org/wiki/Hypervisor)
From v 5.0, only the "i" version with no service console is available http://www.vmware.com/products/vsphere/esxi-and-esx/compare.html
Ultralight footprint (70MB OS)
Make sure to read the ESXi maximums documentation (http://www.vmware.com/pdf/vsphere5/r50/vsphere-50-configuration-maximums.pdf) and memorize the key maximums:
- # of virtual CPUs per host (2048)
- # of cores per host (160)
- # of logical CPUs per host with hyperthreading (160)
- # of virtual CPUs per core (25)
- Amount of RAM per host (2TB)
VMware vCenter Server
Centralized management utility for all ESXi hosts and their respective VMs.Allows IT admins to deploy, manage, monitor, automate, and secure a virtual infrastructure in a centralized manner
VMware documentation: http://www.vmware.com/products/vcenter-server/overview.html
Available as a Windows application or as a prebuilt vCenter Server appliance based on Linux
Provides numerous capabilities:
- VM templates
- VM customization
- rapid provisioning and deployment
- role-based access controls
- fine-grained resource allocation controls
- vSphere vMotion
- vSphere distributed resource scheduler
- vSphere High Availability
- vSphere Fault Tolerance
- Enhanced vMotion Compatibility (EVC)
- Host Profiles
- Storage I/O control
- vSphere Distributed Switches
- Network I/O Control
- vSphere Storage DRS
- vCenter Server Essentials (integrated into vSphere Essentials kits for small offices)
- vCenter Server Standard ('normal' version)
- vCenter Server Foundation (limited to 3 ESXi hosts and does not include vCenter Orchestrator)
vSphere Update Manager (VUM)
Helps keep ESXi hosts and VMs patched with the latest updatesScans to identify systems that are not compliant
User-defined rules for identifying out-of-date systems
Automated installation of patches for ESXi hosts
Full integration with other vSphere features
Subscribe to:
Posts (Atom)