Miscellaneous 1 (TestTrack Unplugged)

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

Miscellaneous 1

Things to note:

  • “Create a file . to set up the new . hosts . configuration matches . existing hosts.” = Ok, business need w/o a specific feature listed?
  • “new hosts will not receive any iSCSI configuration” = make sure no iSCSI config

Step 1: What did that mean?

So we need a file that can be used to easily set up new hosts with a config to match an existing host (minus iSCSI).

While one method might be to create a powershell script, VMware has a host-config function available – Host Profiles.

Step 2: Create a profile off an existing host

You can create a new profile off an existing host in Web Client under Rules and Profiles\Host Profiles

Pick a host and click finish.

Step 3: Edit the profile to remove iSCSI

If you didn’t set a name in the wizard the default is “Host Profile.” Use the Actions menu to Edit the Settings

uncheck iSCSI under Storage (you could also uncheck all of storage) and Next/Finish

Step 4: Export the profile to the desktop

Use the Actions menu again to export the edited profile to the desktop as a .vpf file.


Does an exported profile exist?
$found = dir "C:\Users\Administrator\Desktop\*.vpf"

Does the exported profile contain the iSCSI software initiator identifier?
$found = dir "C:\Users\Administrator\Desktop\*.vpf" | select-string "vmhba33"

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

Virtual Machines 3 (TestTrack Unplugged)

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

Virtual Machines 3

Things to note:

  • “noticed several snapshots on the datastore for the VM named Snapshot” = note no GUI reference, wonder if it doesn’t show in the GUI?
  • “Recover the Revision 1.3 environment” = DevOps by snapshot. Whoo hoo!
  • “Remove all snapshots” x2 = Ok, good marhcing orders.

Step 1: Check Snapshot VM

Who names these things?  Oh, me. Right.

Hey wait, there are no snapshots.  Cool, we must be done!

Or are we?  The description says the noticed on the datastore, I wonder…

Oops, there they are.  There are a few ways to fix it, but the fastest is probably via the GUI

Step 2: Consolidate 

Ok, so lets consolidate …

Hmm, I could have sworn there was a consolidate option available?

Ah, fat client to the rescue.  You could also create a snap in the WebClient and then use Delete All in Snapshot Manager.

Step 3: DevApp set to 1.3  

Ok, so time to revert DevApp to a prior state.  Only the prior state doesn’t seem to be an option.

until you twirl Version 1.1

Ok, select that and hit “Revert to” then watch the progress in the background

However, at this point you’ll hear a ding, notice the task has paused and an “!” has appeared on the VM name.

Closing the Snapshot Manager and looking at the VM summary we see

which says:
The features supported by the processors in this machine are different from the features supported by the processors in the machine on which the virtual machine state was saved.
Resume on a machine with similar processors.
An error occurred while restoring the CPU state from file "/vmfs/volumes/blah/,vm name>/<vm name>-Snapshot19.vmsn".
An error caused the restore operation to fail. Cancel the restore operation and correct the error, or discard the snapshot's state and power off. The saved snapshot will not be affected.
and gives us two options, cancel or discard.

Step 4: Answer the question 

The issue is because we captured a snapshot with memory of a running VM when the VM was running on a different host with a different CPU instruction set.

The only option to meet the stated requirements is to “discard” and get a crash-consistent state instead of a live one.

Step 5: Answer the question 

Don’t forget to go back into Snapshot Manager and delete all the other snapshots!


Were the snaps consolidated on Snapshot?
if (Get-Datastore -name iSCSISharedVMs | get-harddisk |where {$_.filename -eq "[iSCSISharedVMs] Snapshot/Snapshot-000001.vmdk"}) {} Else {$VM3Snapshot = 1}

Was the correct snap set on DevApp?
if ((get-vm devapp).MemoryGB -eq .75) {$VM3DevApp1 = 1}

Were all other snaps deleted on DevApp?
if (!(get-snapshot -vm devapp)) {$VM3DevApp2 = 1}

Bonus round:
Note the scoring on the second point. The VM had .5GB of RAM for every snapshot except for 1.3 where RAM was changed to .75. That is a very simple way to verify that the correct snap was selected.

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

How to write a certification exam question

On piece of advice I always give about studying for certification exams is to write your own questions for any exam you are studying for. It’s a great exercise to put yourself in the mindset of the SMEs writing the questions and will give you a new angle on studying.

But it begs the question, how do you go about writing an exam question?

/start tl;dr

  • Take one objective from the list of Exam Topics.
  • Look at the bullet points and tools listed in Exam Topics and determine one piece of information to test on.
  • Write a question with either 4 possible answers (where either 1 or 2 are correct) or 5 possible answers (where 3 are correct).
  • The question should be “understanding” or “applying” knowledge not just rote memorization.
  • All answers must be plausible (not made up).
  • No responses should include key words from the question unless they all do
  • Look at VMware’s sample items for suggestions but realize those items were not good enough to be used on the live exam.
  • Post your own questions in the comments for feedback

/end tl;dr

A good exam question (and thus a good exam) is reliable, fair and valid. A reliable question means those candidates expected to pass the exam usually get the question right, a fair question means there are no biases inherent in the question, and a valid question is one that fitsthe criteria for the exam and is useful to determine if the right people pass.

The phases of exam design are:
JTA = Job Task Analysis
IDW = Item Development Workshop
Beta = Initial evaluation of items

Continue reading

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

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