Find Communities by: Category | Product

With the growing trend of customers leveraging Windows Server 2012 Hyper V in the field, there is an expected corresponding trend in inquiries around data collection and identifying the performance requirements of Hyper V deployed on CSV targets.

At the time of this writing, the usual EMC SE reporting does not accurately report on the disk performance characteristics of CSV targets. The way these engagements typically go is:

  • PERFCOLLECT is collected from the Hyper V host
  • The  data is then uploaded for analysis
  • The report returned returns data only for the LOGICAL DISK counters identified in the PERFMON file (namely, the C: drive)


By golly, where is all that IO that I KNOW is there? The quick response is that there IS performance data in the collect. We are presently working to streamline the rendering that we are used to getting.

In the interim....


I am processing the BLG file collected via perfcollect using PAL ( – which will give  IOPS and response times. If you’d like to try, install PAL and open it. It’s wizard based. Point it at the PERFMON file and select the desired BLG file.


This will at least get us IOPS, read/write splits and the performance characteristics of the host in a pretty easy-to-read format. Probably something wrong with the way Mitrends is parsing the data – at least PAL will give us the state of the hosts.


Download and install PAL, and run it.


In the Counter Log page, browse to the BLG file in the PERFMON subfolder of the PERFCOLLECT data.


Then click Next.


Then select the Threshold File that you want to use. It has profiles for most of the Microsoft applications that PERFMON grabs counters for – in this case you are looking at a Microsoft Windows Server 2012 Hyper V host – so select that one.


If you keep hitting Next through the rest of the Wizard it will start processing the BLG and generate an HTML report with alerts and data in a report. It works pretty nicely – and each area of the report explains what the counter MEANS in the context of the application selected in the Threshold File that you selected.


Physical Disk\Disk Transfers Per Sec


This is probably the best counter (for now) to estimate IOPS. Check queue depths to see if the workload is being met – if there are sustained queue depths there may be a choke point – either with HBA queue settings or the spindles are not meeting the load.


Physical Disks/Bytes per Sec will give you the throughput.

There is a fantastic reference for Hyper V Performance Guidelines available for download from Microsoft. Storage gets interesting at around page 65...


Please remember that IOPS are CUMULATIVE for the cluster - capacity is NOT!


How are YOU doing it today for your Hyper V environment? Feedback and discussion is welcome - I would love to hear how the rest of the EMC Microsoft Community (customers, partners, and colleagues) is answering the call!

Cunningham's Law states: The best way to get the right answer on the internet is not by asking a question. It's to post the wrong answer!

Leveraging the power of Powershell, its easier than ever for an EMC customer to leverage their on-premise investment in Hyper V and EMC VNX, say, and the power of Microsoft's cloud offering, Azure. While many of our customers are leveraging Hyper V 2012 to manage their INTERNAL cloud, the embrace of a Hybrid model is still in the very early stages.

Here's how to get your feet wet and see how this thing drives.

Please note that you will need a Windows Azure account with an active subscription. You can start a free trial subscripting by visiting the following site:


It will require a credit card, but this is primarily for Identity Verification!


Once the account is active and you have an active subscription, you can proceed with your Powershell experimentation pretty easily. Download the powershell bits and bobs at the following location:


You are looking for Windows Powershell under the command line tools section. Once the installation has completed, you are ready to rock and roll! Open up the appropriate Powershell window by going to the Windows Azure folder in you start button programs and clicking on Windows Azure Powershell:

Screenshot (14).png

Execute a get-module command and you will see that there is a loaded module – appropriately named Azure – ready for business. Now, I want to connect it to my active Azure account. To achieve this, it’s as easy as typing:

PS C:\> Add-AzureAccount




Without parameters, it will open up an Authentication window that you enter your Windows Live Azure account credentials to:

That’s it. You are now ready to run some stuff against your Azure cloud account. Let’s say you want to see what locations are available to place my planned new VM. To see what’s available, I simply type:

PS C:\> $location = Get-AzureLocation


To see what VM Images are available in the service catalog, simply type:

PS C:\> $images = Get-AzureVMImage 


At the time of this blog post, there are over 209 VM base images that are available – right out of the gate. Windows and Linux are the available platforms (multiple flavors of each). Take a look at the list of whats available by typing something like the following:

              PS C:\> $imagelist | format-list label,description,imagename,os


This will list some descriptive fields of the object list. There are images with SQL Server 2012 Preview Edition pre-loaded, SQL 2014 Data Warehouse Preview Edition, etc. Obviously you could search the labels for what you need to make this very dynamic (but that’s outside of the scope of what we are doing today). Platforms and OS listed below:



Microsoft SQL

Oracle SQL

Windows 2008R2


SQL Server 2008

Oracle 11g

Windows 2012 and R2

Centos 6.3

SQL Server 2012

Oracle 12c


Ubuntu 12.04/12.10/13.04

SQL Server 2013

Weblogic 11g


SUSE Linux Enterprise 11SP3

BizTalk Server 2013

Weblogic 12c


Oracl Linux 64




Oracle 11 and 12 are available, running on the Windows Platform. We know this by checking the underlying OS in the list provided above. Very interesting seeing what’s available in the catalog. Now that I have an idea of what’s available in the catalog, as well as the possible locations for them to reside,  I need to start defining the service name and the password of the Administrative account. These can be simple strings.

PS C:\> $mySvc = "myservicename"

PS C:\> $myPwd = "yourpassword"

Ready to deploy a VM! Here is what the command line looks like:

PS C:\> New-AzureQuickVM -Windows -name "SomeVMName" -ImageName $imagelist[4].imagename -ServiceName $mySvc -Location $locations[0].name -Password $myPwd

Pretty simple, powerful – and ready to play with. I literally had this up and going in around 15 minutes – from opening the account, downloading the powershell bits, to deploying workstations in the “Cloud”.

You have the option of uploading your own sysprepped images to cloud BLOB storage, and leveraging your own optimized images as well. With Orchestrator Runbooks and System Center Operations Manager plugins, its an interesting approach to Hybrid Cloud.

During the MSpecialist Summit we had the opportunity to hear from our fantastic partner  Cisco and see what they are doing with UCS and PowerShell. With their UCS Emulator and PowerTools, any developer or administrator can quickly get up to speed with how to automate the COMPUTE resource in their environment. I threw together this quick jumpstart guide with download links to help us all get started.


First step… download the jiggly bits:

Cisco UCS Emulator OVA

Cisco UCS PowerTools

Cisco UCS Emulator Guide


There is a requirement for SOME type of VMware emulator on the desktop. I am using VMworkstation 9, but I believe that this works with the Player as well!


System Requirements are very modest:


Actual on-disk footprint weighs in around 5.25GB.


How to get started….

Download the emulator OVA from the link above. I imported the Cisco UCS Emulator by right-clicking on it in the extracted folder.



Complete the import of the OVA – a new VM will be in the list. I called mine “UCS Emulator”. The default setting of NAT for the network will suffice for playing with this fantastic rapid development tool.


Power on the virtual machine. Once it’s fully booted – allow it to complete the first boot – you will see a screen like the following:



Please note that by default, the emulator requires DHCP for IP assignment. To facilitate this, I selected the NAT option for networking on VMware Workstation and was assigned the address displayed above.


The IP address at the top is what you will be entering into the browser window on your desktop to log into UCS and start the automation fun. Open a browser on your desktop and enter in the IP address noted on the top of the screen.


Log into UCS with the following credentials:

Username: config

Password: config


Once you’ve logged in and have confirmed that your UCS Emulator is operational, you are ready to start framing out your PowerShell efforts.


How do I start to learn PowerShell on the UCS?

Once the OVA is deployed and powered on, install PowerTools for UCS. This will install the UCS specific extensions for PowerShell. So download and install it – and once complete and your UCS emulator is up and running, open it up and try attaching to your UCS via powershell.



Double click the UCS PowerTool shortcut or go open a PowerShell window and run the following:

                PS> get-module

This will give you a list of the module that you have available in the current session. If your output contains a list like the following, you are missing the PowerTools extensions in your powershell session:



To manually load it, run the following command:

PS> Get-modules –listavailable


If PowerTools has been installed, you should see the following in the list:



To load the extensions, run the following:

                PS > Import-Module CiscoUcsPS

To verify, run the get-module command again. The list should now resemble the following:


To connect, run the following powershell command with a single parameter – the IP address that is displaying in the emulator start screen.


For example, in my setup the command that I entered is:

                PS> Connect-Ucs IPAddressofEmulator


You will be prompted for credentials if you input the above command with YOUR assigned IP address. Enter the same login you used for the GUI:

Username: config

Password: config


“Cool – but how the heck does this help me learn PowerShell for UCS?”

This is where the coolest command in the PowerTools extensions comes into play – namely:

                PS> ConvertTo-UcsCmdlet

When coupled with the UCS connect session this will grab the commands that you click on in the emulator GUI and convert it to Powershell!


To test, I log into a desktop web browser entering (again) the IP address collected above. Then I start clicking on things….


Let’s create a new vlan – say, vlan 45. In the GUI I will select “New… VLAN….” As follows:


Set the name, etc – all of the desired parameters for the new VLAN creation. Remember that powershell window that you opened? The one that you connected to and started the trace on? Once you confirned the parameters in the GUI, take a look over in the powershell window… You’ll see something like the following:


If the operation is unsupported, it will tell you – otherwise it will demonstrate the powershell required to perform the operation that you did in the UCS GUI! This is a fantastic tool to start playing with UCS and powershell – to take inventories, ensure consistency of configurations across UCS domains, etc.


I hope that this guide is helpful in getting you started on your journey to automation!

Filter Blog

By date:
By tag: