Scripts for Yellow Bricks’ advise: Thin Provisioning alarm & eagerZeroedThick

On the Yellow Bricks blog there was today a very interesting entry called Performance : Thin Provisioning. Besides the link to the excellent VMware document called Performance Study of VMware vStorage Thin Provisioning, Duncan also included some tips and tricks.

Since I’m in favour of automating as much as possible in my vSphere environment, I decided to have a look how all this could be scripted.

Continue reading Scripts for Yellow Bricks’ advise: Thin Provisioning alarm & eagerZeroedThick

My PS snapins & modules

In the My PS … series of blog entries this entry lists the SnapIns and Modules I use (regularly).

Note that the following list is my personal list and that it is definitely not my aim to list all available PowerShell snapins and modules. That would be a sheer impossible task, seen the abundance of the currently available  snapins and modules.


Previous entries in this series were My PS toolbelt and My PS library. Continue reading My PS snapins & modules

CreateAlarm not (always) compatible with the vSphere client

In a recent PowerCLI Community thread someone asked how he could create Alarms with the current PowerCLI build. Since there is no PowerCLI cmdlet (yet) to create Alarms I had to fall back on the CreateAlarm method from the SDK.

The procedure as described in the vSphere Web Services SDK Programming Guide, chapter 15, is quite simple. The script I wrote created the alarm, but to my amazement I couldn’t use the Edit Settings option in the vSphere client. The option was grayed out.

alarm-edit-settingsFirst I doubted the correctness of my script but after some tests I could confirm that the alarm worked correctly. Continue reading CreateAlarm not (always) compatible with the vSphere client

Thick to Thin with PowerCLI and the SDK

One of the interesting new features in vSPhere is vStorage Thin Provisioning. I’m not going to explain what Thin Provisioning is all about. For that you can consult several knowledgeable blogs (for example this entry on Virtual Geek) and/or books (for example Scott Lowe’s excellent Mastering VMware vSphere 4.0).

The problem I have with Thin Provisioning, is that there are a lot of existing guests and templates out there that were created with Thick VMDKs in the past. The only documented way I could find to convert these Thick VMDKs to Thin VMDKs was to use svMotion from the vSphere client.

Now that is not a solution I want to (or can) use in an automated environment. Continue reading Thick to Thin with PowerCLI and the SDK

Assign a vCenter license

An interesting question arrived in my mailbox recently. The user was trying to find out how he could assign a vCenter license. The vSphere API Reference clearly pointed to the UpdateAssignedLicense method.

But the value that should be provided in the entity parameter was a bit of a mystery.  An entity ID for a vCenter was new for me.


Continue reading Assign a vCenter license

dvSwitch scripting – Function index

Over the last few weeks I have published a number of blog entries that showed how you could use PowerShell, PowerCLI and the SDK to automate the management of the vNetwork Distributed Switch.

To facilitate the use of the functions I provided in these posts I created a table that lists all the dvSwitch related functions together with a link to the post where they were published.

Functionname Description Link
New-dvSwitch Creates a new dvSwitch Part 1
Get-dvSwHostCandidate Find hosts that can be connected to a dvSwitch Part 1
Add-dvSwHost Add a host to a dvSwitch Part 1
Get-dvSwitch Find a dvSwitch by name Part 2
New-dvSwPortgroup Create a new dvPortgroup Part 2
Get-VLANRanges Internal function ! Do not use directlu. Part 2
Set-VM2dvPortgroup Connect a VirtualMachine to a dvPortgroup Part 2
New-InternaldvSwvNic Internal function ! Do not use directly. Part 3
New-dvSwConsole Create a Service Console on a dvSwitch Part 3
New-dvSwvmKernel Create a vmKernel on a dvSwitch Part 3
Set-dvSwPgvMotion Enable vMotion on a vmKernel dvPortgroup Part 3
Set-dvSwPgFTLogging Enable FT logging on a vmKernel dvPortgroup Part 3
Set-dvSwUplink Update the number of uplinks on a dvSwitch Part 4
Add-dvSwHostpNic Add pNics to a dvSwitch Part 4
Set-dVSwPgTeam Set up Nic Teaming on a portgroup on a dvSwitch Part 4
<script> Clone a guest and connect to a dvPG Part 5
New-dvSwPVLAN Create PVLAN Part 6
Set-dVSwPgPVLAN Assign a PVLAN to a portgroup Part 6
Get-dvSwPg Find a portgroup Part 7
Set-dvSwPgVLAN Change the VLAN Id of a portgroup Part 7
Get-dvSwNetworkAdapter Get network adapter information Part 8
Set-dvSwNetworkAdapter Change portgroup connection of a network adapter Part 8
Get-dvPgTrafficShaping Get the traffic shaping settings of a portgroup Part 9
Set-dvPgTrafficShaping Set the traffic shaping settings of a portgroup Part 9
New-dvSwNetworkResourcePool Create a user-defined network resource pool Part 10
Remove-dvSwNetworkResourcePool Remove a user-defined network resource pool Part 10
Get-dvSwNetworkResourcePool Retrieve user-defined network resourcepool(s) Part 10
Set-dvSwSIOC Enable/disable NetIOC on a dvSw Part 10
Get-dvSwSIOC Retrieve the NetIOC status Part 10
Get-dvVmPort Get port used by VM NIC Part 11

dvSwitch scripting – Part 4 – NIC teaming

The previous parts (Part1, Part2 & Part 3) in the dvSwitch series showed how to create a dvSwitch, a portgroup for Virtual Machines and a Service Console & vmKernle portgroup. The test setup now looks something like this:

dvSw-part4-startThe double Service Consoles and vmKernel connection might look confusing at first. But when you select one these connections, the vSphere client will show you to which uplink a specific connection is going.

Continue reading dvSwitch scripting – Part 4 – NIC teaming

dvSwitch scripting – Part 3 – Service Console & vmKernel

In the previous dvSwitch posts (see Part1 & Part2) I created a dvSwitch with a dvPortgroup, and we migrated some guests to this dvSwitch .

In this part I’ll show you how to create Service Console and vmKernel portgroups over the dvSwitch. Again, all the shown scripts will do a minimal configuration of the new portgroups. More advanced configurations will be discussed in future posts in the dvSwitch series.

This is the schematic view of the configuration that we currently have.dvSw1-config3

Continue reading dvSwitch scripting – Part 3 – Service Console & vmKernel

Scheduled Tasks – MethodAction

With the introduction of vSPhere the types of Tasks you can select when you create a new Scheduled Task has increased. This is a very useful feature that allows you to schedule for example your (s)vMotions, your Snapshots, your Imports and Exports and so on.


In the PowerCLI Community there was a recent question on how these Scheduled Tasks can be created from PowerShell (see relocate vm’s from csv file and create schedule task in VC).

Being able to create a Scheduled Task for a svMotion for several guests from a PowerShell script, instead of clicking away in the vSphere Client, would be another step on the path of vSphere automation. Continue reading Scheduled Tasks – MethodAction

dvSwitch scripting – Part 2 – dvPortgroup

In Part 1 of the dvSwitch scripting series I created a simple dvSwitch with 2 uplinks, which I connected to all the ESX hosts that were returned as possible candidates. In this part I will show you how to add a dvPortgroups and how you can connect Virtual Machines to this dvPortgroup.

This is the schematic of what we have so far.

dvSw1-general1 Continue reading dvSwitch scripting – Part 2 – dvPortgroup