Virtual Machines 2 (TestTrack Unplugged)

I’ll assume you read the first post in the series or saw the list of all of the scenarios.

Virtual Machines 2


Things to note:

  • “Ensure RAM can be added to the App virtual machine without downtime.” = Hot Plug.
  • “maximum storage performance for …high storage I/O load” = Hmm.
  • “create the virtual machine using any means necessary” = Sounds like we could delete the VM and recreate if needed.

Step 1: Enable Memory Hot Plug

but the option isn’t available.


Ok, so there is a OS requirement, lets check there.


Better update the OS to one that allows Hot Plug.  The actual OS isn’t listed in the scenario, probably better stick to what we know, a 64-bit Win 2003 that allows HotPlug.

But, setting to Win2003 64-bit Datacenter doesn’t enable hot plug so time to look for other requirements.

Step 2: Upgrade VM Compatibility




Ok, so there’s Hot Plug now.


Step 3: Update storage

So the parameters are a “high storage I/O load” and “maximum storage performance” plus “can remain thin-provisioned”

So thick provisioning isn’t a consideration and there is nothing about contention so we don’t need to configure shares.

There is no information about exiting arrays or paths or hosts, all you have is the VM so sticking with that there is really only one change you can make.

IOPS whitepaper
SCSI controller performance

Switch the controller type to Paravirtual.



Is paravirtual selected?
$found = get-vm app | get-scsicontroller
if ($found.type -eq "ParaVirtual") {$one = 1}

Hot swap enabled?
if ((get-vm app).extensiondata.config.memoryhotaddenabled) {$two = 1}

Posted in Certification, PowerShell, Scripting, Storage, Virtualization, VMware | Tagged , , , , | Leave a comment

Moving VMs from ESX to Workstation (pt2)

Back in 2011 I posted screen shots for using the fat client to download a VM from an ESX/ESXI host to use in VMware Workstation. I never updated that post when Workstation added a download feature, so here is the screen shots for downloading with Workstation 12.5 Pro.

The old version is still relevant if you’re using Workstation Player, although I plan on another update with new screen shots from the web client.

Moving VMs using Workstation Pro
Launch Workstation Pro and connect to your ESXi server


Right click on the VM in question and choose download.


Note that if the VM can’t be powered off or if you only want to download some of the disks, clone the original VM, modify it as needed, and download the clone.



Power on and enjoy!


Posted in Computing, Virtualization, VMware | Tagged | Leave a comment

Virtual Machines 1 (TestTrack Unplugged)

I’ll assume you read the first post in the series.

Virtual Machines 1

scenarioThings to note:

  • “Another administrator has already started by creating the VM” = Don’t make a new one and don’t delete the existing one.
  • “using any means necessary” = There is troubleshooting involved.
  • “Create a text file on the student desktop containing the information required to identify this virtual machine’s storage traffic on the production FCP network.” = You need to figure out what vSphere feature solves this business need.

Step 1: Check DB

Ok, so DB only has one CPU.

No problem, we’ll just add another.

Oops. We’re only allowed one CPU.

Ok, so maybe the host only has one CPU.


Nope, host has 2.

Ok, so if the host is capable, what would restrict the VM from being allocated as many CPUs or cores as the host has?

Two possibilities: VM hardware version and VM Operating System selection.

The issue isn’t VM HW version (you’d need to go back to pre-SMP-support days to hit a max of 1) so lets check the OS selected.


Found the problem. Some joker picked Win98 which will limit the VM to 1 CPU and 2GB of RAM plus if the VM was created on an older version of vSphere it will have IDE hard drives.

Step 2: Fix OS setting and increase CPU to 2

Step 3: Research

Ok so we need a vSphere feature that will identify specific VM traffic on a FCP network. Normally any FCP storage traffic will get the host’s WWN attached. Meaning all VM traffic will look the same.

We need something that will uniquely identify this VMs traffic regardless of the host it’s on (since we don’t know which prod host it will be placed on).

Searching “virtual machine WWN” in the vSphere docs pops a reference to configuring NPIV as the third match.

“This capability lets you control virtual machine access to LUNs on a per-virtual machine basis.” ok, perfect

“NPIV is supported only for virtual machines with RDM disks.” Hey, some joker didn’t make RDM disks on the VM we are working on! This won’t actually work!
Yeah, sorry about that. A correct solution would include the VM having an RDM or you adding an RDP or text about “RDM will be added”.  I used this as a talking point for candidates working with TT.

Step 3: Enable NPIV on the VM
Uncheck “Temporarily disable” (which is an interesting choice for a description since it’s the default and 99.999% of installs never change it) and select “Generate New” then close and reopen settings.


Step 3: Copy and paste the WWN to a text file on the desktop.



Two CPUs for DB?
if ((get-vm db).numcpu -eq 2) {$one = 1}

WWN file on the desktop?
$found = dir "C:\Users\Administrator\Desktop" | select-string -pattern "\w\w:\w\w:\w\w:\w\w:\w\w:\w\w:\w\w:\w\w"
if ($found.length -ge 1) {$two = 1;$three = 1}

This one only had two scoring points. You might look here for my take on how performance based exams are scored.

Posted in Certification, Computing, PowerShell, Scripting, Virtualization, VMware | Tagged , , , , | Leave a comment

Networking 3 (TestTrack Unplugged Series)

I’ll assume you read the first post in the series.

Networking 3


Things to notice:

  • “Storage and vSphere management traffic will co-exist for the test.” = Enable Management traffic. This question was written before VSAN, that traffic type is not expected to be enabled.
  • “Storage traffic must support Jumbo frames” = Note that there are two places to set MTU: the switch and the vmkernel port.

Step 1: Make new switch, add hosts, set switch MTU
Step 2: Make new portgroup, add VLAN
Step 3: Add vmkernel ports with IPs, set MTU on both vmkernel ports

VLAN is set properly
$Vlans = get-vdportgroup | select Name, vdswitch, @{n="Vlan"; e={$_.vlanconfiguration.vlanid}}
If ($vlans | where {$_.vlan -eq 99}) {$one = 1}

host 02 is on the new switch?
$myVDSwitch = Get-VDSwitch
$HostNames = (Get-VMHost -DistributedSwitch $myVDSwitch) | % { $_.Name }
if ($HostNames -contains "esxi02.dca.vclass.local") {$two = 1 }

Is MTU set on the switch?
$ActivedvSwitch = Get-VMHostNetworkadapter | where { $_.IP -eq "" }
If ($ActivedvSwitch.mtu -ge 9000) { $three = 1 }

Posted in Certification, Computing, Network, PowerShell, Scripting, Virtualization, VMware | Tagged , , , , | Leave a comment

Networking 2 (TestTrack Unplugged Series)

I’ll assume you read the first post in the series.

Networking 2

Things to note:

  • “network administrator is in the process of setting the physical network” = This will likely not work if tested between hosts. In actuality it will usually work because Workstation ignores and just passes VLAN tags along.
  • “cannot send or receive traffic regardless of changes to the OS or virtual machine properties” = However you achieve this it won’t be in the OS or VM. Pretty much narrows it down to on the virtual switch. Only way to block sent/receive for a VM connected to a VDS from the VDS is to block the port.

Also note it doesn’t list which hosts to add to it. This was an oversight during writing, but as written you’d only be expected to add the host the Batch VM is on.

Step 1: Create the VDS

Very straightforward, make the VDS and portgroup and add the two hosts (see note above).

Step 2: Migrate Batch to TestDev

No notes on IP changes so no worries there, just move the VM.

Step 3: Block the port

The text doesn’t include limits like “make sure this doesn’t affect other VMs” so you could block at the port group level:


Or you can take the more precise route and just block the port for Batch



Is there a VDS on the host Batch is on with the right vmnic in use?
$esxcli = Get-EsxCli -VMhost esxi02.dca.vclass.local
$switchlist = $
$switch = $switchlist | where {$_.uplinks -match "vmnic3"}
if ($switch){$one = 1}

Is the portgroup set to the right VLAN?
$pg = $null
$numvms = $null
$vlan = $null
$pg = (get-vm batch).networkadapters[0].networkname
$vlan = (get-vdportgroup -name $pg).vlanconfiguration.vlanid
if ($vlan -eq 101) {$two = 1}

Is the port blocked?
$found = get-vdport -VDPortgroup (get-vm batch | get-networkadapter).NetworkName -key ((get-vm batch | get-networkadapter).extensiondata.backing.port.portkey)

if ($found.isblocked) {$three = 1}

Posted in Certification, Computing, Network, PowerShell, Scripting, Virtualization, VMware | Tagged , , , , | Leave a comment

Storage 3 (TestTrack unplugged series)

I’ll assume you read the first post in the series.

Storage 3
scenarioThings to note:

  • “created on the array in the future” = Don’t change PSP on any current LUN, just change the default for the array so new ones are RR.
  • “IP address is available for use.” = Hey, looks like we need to add an IP address somewhere.

Note also, this item was not updated for the DCA550 TestTrack and doesn’t have the “Requirements” section. You will also note the host named and IPs dont match. Otherwise it all works.

Step 1: Check networking




We can see that there is one vmk that can hit the iSCSI target and there is one additional NIC on the same subnet which is also where the spare IP address sits.

So, either make a new switch with the spare NIC, or add the NIC to vSwitch0. Then create the new vmk with the new IP. If you didn’t make a new switch, you’ll need to allocate only one NIC per vmk using the failover settings.

Step 2: Configure the NICs, vmks and then configure port binding.

(You’ll want to do it to both vmk ports)

Step 3: Configure the default PSP

Make sure you know which SATP is in use for the array:

Then set the PSP for that SATP:


Check your work:

I don’t have powercli for the first two handy but I’ll work on it.

Verify there are two port bindings for iSCSI for the host in question
Verify there are the correct number of paths for the LUNs in question

Verify the default PSP is set to RR for the SATP
$esxcli = Get-EsxCli -VMhost esxi02.dca.vclass.local
$switchlist = $ |where {$_.Name -eq "VMW_SATP_DEFAULT_AA"}
if ($switchlist.DefaultPSP -eq "VMW_PSP_RR") {$three = 1}

Posted in Certification, Computing, PowerShell, Scripting, Storage, Virtualization, VMware | Tagged , , , , | 2 Comments

Storage 2 (TestTrack Unplugged series)

I’ll assume you read the first post in the series.

Storage 2

The initial note to delete Payroll is only seen on TestTrack – you won’t want to undo anything on the real exam as no scoring is done until the exam is completed.

Things to note:

  • “requires a 16 GB system drive that has the space pre-allocated and zeroed” = you will need 16GB of space
  • “must run on iSCSI” “storage administrator has stated that enough iSCSI storage already exists for your needs.”
  • “any means necessary” “short of deleting other virtual machines” = all these mean don’t get on the iSCSI appliance, don’t use NFS and don’t delete – but you can do anything else

Step1: Check the storage

Actually from the last question we know iSCSI0 only has 10GB after being extended, so we need the space to come from somewhere else.


And we know there are no extra LUNs


Step 2: Make space

So we need the space to come from somewhere. There are two iSCSI datastores other than iSCSI0 – iSCSI1 with one VM (177KB in use) and iSCSISharedVMs with 5 VMs and two templates.

The easiest way to get more space for iSCS0 is to move the one VM off of iSCSI1 and onto any other datastore, delete iSCSI1 and add that LUN as an extent to iSCSI0.

This makes iSCSI0 ~20GB and the new VM can then be created. Note that the new VMDK needs to be thick eager to get all the points.


Make sure the VM has a 16GB vmdk
$found = (get-vm e* |get-harddisk)
if (($found.capacitygb -ge 14) -and ($found.storageformat -eq "EagerZeroedThick") ) {$one = 1}

Make sure the VM’s VMDK is on iSCSI0
$found = ((get-vm e*)|get-harddisk).filename
if ($found -match "iSCSI0") {$two = 1}

Make sure Capture wasn’t deleted
$found = (get-VM capture)
if (($one -or $two) -and $found) {$three = 1}

Note that the third point requires the completion of one of the other points as well .  This prevent it being a free point if the item is skipped.

Posted in Certification, Computing, PowerShell, Scripting, Storage, Virtualization, VMware | Tagged , , , , | Leave a comment