VMWorld Europe 2013

January 10th, 2013 No comments

Dates and locations have been announced.
It will be back in Barcelona – Fira Barcelona Gran Via – North Entrance, October 15-17

It is worth getting hotels and flights booked up early – they get quite expnsive at the last minute!

http://www.vmworld.com/community/conference/europe

Categories: Uncategorized Tags:

Last boot time with PowerShell

November 14th, 2012 No comments

Has to retrieve a bunch of boot times for a list of servers – quickly put together a function (I know there are many equally easy ways – but felt like retrieving info via PowerShell as part of a bigger report)

Function get-lastboot { 
 param($computername)
$date = Get-WmiObject Win32_OperatingSystem -ComputerName $computername | foreach{$_.LastBootUpTime}
$RebootTime = [System.DateTime]::ParseExact($date.split('.')[0],'yyyyMMddHHmmss',$null) 
$RebootTime

} #end function

Like so:

PS C:\scripts\Powershell> get-lastboot winhost7

20 October 2012 20:20:11
Categories: Powershell, Toolbox Tags:

Finding an unsused IP address on a subnet using Powershell

October 12th, 2012 No comments

I have been doing a bunch of P2Vs lately and sometimes when VMWare converter decides to not play along, I resort to offline conversions using Platespin convert.
Platespin likes to have about 4 IPs allocated for different reasons per conversion, so I decided to wroite a quick function to find unused IPs.

First of all, I alreday had some subnetting functions available (I found these online) – so all I had to do was write the extra bit of code.

Historically, I used to do this each time:

1..254 | %{$ip = "10.2.25.$_"; test-connection $ip -count 1 -ea 0}

This of course becomes a pain after a while, so this is where I went (the following all lives in my proifile, so is accesible each time I open a new Shell)

I have tried to track down the source of my original IP Subnetting function – I *think it was

function Get-UnusedIPAddress ($hostname, $subnet, $mask="255.255.255.0",$IPCount,[switch]$verbose,[switch]$all,$skip)
{
if ($verbose.IsPresent) {
  $VerbosePreference = 'Continue'
  Write-Verbose "Verbose Mode Enabled"
}
Else {
  $VerbosePreference = 'SilentlyContinue'
}

If ($hostname)
	{
	write-host "Attempting to access host NIC for accurate Subnet / Mask info" -fore green
	$hostdetails =  get-nics $hostname | ?{$_.DefaultIPGateway} |  select -first 1
	if ($hostdetails)
		{
		$subnet = $hostdetails | %{$_.IPAddress} | select -first 1
		$mask = $hostdetails | %{$_.IPsubnet} | select -first 1
		}
	else
		{
		write-host "No WMI access - will use NSLookup and simply scan the /24 address"
		}
	}
	if (!($subnet))
		{
		$subnet = [Net.Dns]::GetHostEntry("$hostname") | %{$_.Addresslist} | select -first 1 | %{$_.IPAddressToString}
		If (!($subnet)){return "Invalid request - please revise your query"}
		}
	$range = Get-NetworkSummary -IP $subnet -Mask $mask | %{$_.Range}
	write-host "Finding available IP(s) on $subnet/$mask - range $range" -fore green
	$range = Get-NetworkRange $subnet $mask
	$returnIPs = 1
	If ($skip){$range = $range | select -skip $skip}
	ForEach($rangeIP in $range)
		{
		If (!(test-connection $rangeIP -count 1 -ea 0))
			{
			write-host "Testing $rangeIP"
			If (($returnIPs -lt $IPcount) -OR ($all))
				{
				write-host $rangeIP -fore yellow
				$returnIPs++
				}
			Else
				{
				write-host $rangeIP -fore yellow
				return
				}
			}
		}
	return
}

The idea is that you can simply say

Get-UnusedIPAddress

The Function runs a WMI wuery against the specified hostname (or IP) and uses the IP and SM to find the first available IP after this.

Additional switches allow for the following:
$subnet – Specify the subnet to trawl (where you do not yet have a host in place) – Example : 10.2.1.0
$mask – If the function is unable to hit your specified host, it will defaul to a /24 Subnet mask – you may want to check a small / bigger range – Example 255.255.255.240
$IPCount – The Number of IPs that you would like returned
$all – Instructs the script to find all IPs in the range that are currently unused

I was surprised just how much I use this, once I had created it.

Supporting and useful functions that enable this script:


Function ConvertTo-BinaryIP {
  <#
    .Synopsis
      Converts a Decimal IP address into a binary format.
    .Description
      ConvertTo-BinaryIP uses System.Convert to switch between decimal and binary format. The output from this function is dotted binary.
    .Parameter IPAddress
      An IP Address to convert.
  #>
 
  [CmdLetBinding()]
  Param(
    [Parameter(Mandatory = $True, Position = 0, ValueFromPipeline = $True)]
    [Net.IPAddress]$IPAddress
  )
 
  Process {
    Return [String]::Join('.', $( $IPAddress.GetAddressBytes() |
      ForEach-Object { [Convert]::ToString($_, 2).PadLeft(8, '0') } ))
  }
}

Function ConvertTo-DecimalIP {
  <#
    .Synopsis
      Converts a Decimal IP address into a 32-bit unsigned integer.
    .Description
      ConvertTo-DecimalIP takes a decimal IP, uses a shift-like operation on each octet and returns a single UInt32 value.
    .Parameter IPAddress
      An IP Address to convert.
  #>
 
  [CmdLetBinding()]
  Param(
    [Parameter(Mandatory = $True, Position = 0, ValueFromPipeline = $True)]
    [Net.IPAddress]$IPAddress
  )
 
  Process {
    $i = 3; $DecimalIP = 0;
    $IPAddress.GetAddressBytes() | ForEach-Object { $DecimalIP += $_ * [Math]::Pow(256, $i); $i-- }
 
    Return [UInt32]$DecimalIP
  }
}

Function ConvertTo-DottedDecimalIP {
  <#
    .Synopsis
      Returns a dotted decimal IP address from either an unsigned 32-bit integer or a dotted binary string.
    .Description
      ConvertTo-DottedDecimalIP uses a regular expression match on the input string to convert to an IP address.
    .Parameter IPAddress
      A string representation of an IP address from either UInt32 or dotted binary.
  #>
 
  [CmdLetBinding()]
  Param(
    [Parameter(Mandatory = $True, Position = 0, ValueFromPipeline = $True)]
    [String]$IPAddress
  )
 
  Process {
    Switch -RegEx ($IPAddress) {
      "([01]{8}\.){3}[01]{8}" {
        Return [String]::Join('.', $( $IPAddress.Split('.') | ForEach-Object { [Convert]::ToUInt32($_, 2) } ))
      }
      "\d" {
        $IPAddress = [UInt32]$IPAddress
        $DottedIP = $( For ($i = 3; $i -gt -1; $i--) {
          $Remainder = $IPAddress % [Math]::Pow(256, $i)
          ($IPAddress - $Remainder) / [Math]::Pow(256, $i)
          $IPAddress = $Remainder
         } )
 
        Return [String]::Join('.', $DottedIP)
      }
      default {
        Write-Error "Cannot convert this format"
      }
    }
  }
}

Function ConvertTo-MaskLength {
  <#
    .Synopsis
      Returns the length of a subnet mask.
    .Description
      ConvertTo-MaskLength accepts any IPv4 address as input, however the output value
      only makes sense when using a subnet mask.
    .Parameter SubnetMask
      A subnet mask to convert into length
  #>
 
  [CmdLetBinding()]
  Param(
    [Parameter(Mandatory = $True, Position = 0, ValueFromPipeline = $True)]
    [Alias("Mask")]
    [Net.IPAddress]$SubnetMask
  )
 
  Process {
    $Bits = "$( $SubnetMask.GetAddressBytes() | ForEach-Object { [Convert]::ToString($_, 2) } )" -Replace '[\s0]'
 
    Return $Bits.Length
  }
}

Function ConvertTo-Mask {
  <#
    .Synopsis
      Returns a dotted decimal subnet mask from a mask length.
    .Description
      ConvertTo-Mask returns a subnet mask in dotted decimal format from an integer value ranging
      between 0 and 32. ConvertTo-Mask first creates a binary string from the length, converts
      that to an unsigned 32-bit integer then calls ConvertTo-DottedDecimalIP to complete the operation.
    .Parameter MaskLength
      The number of bits which must be masked.
  #>
 
  [CmdLetBinding()]
  Param(
    [Parameter(Mandatory = $True, Position = 0, ValueFromPipeline = $True)]
    [Alias("Length")]
    [ValidateRange(0, 32)]
    $MaskLength
  )
 
  Process {
    Return ConvertTo-DottedDecimalIP ([Convert]::ToUInt32($(("1" * $MaskLength).PadRight(32, "0")), 2))
  }
}

Function Get-NetworkAddress {
  <#
    .Synopsis
      Takes an IP address and subnet mask then calculates the network address for the range.
    .Description
      Get-NetworkAddress returns the network address for a subnet by performing a bitwise AND
      operation against the decimal forms of the IP address and subnet mask. Get-NetworkAddress
      expects both the IP address and subnet mask in dotted decimal format.
    .Parameter IPAddress
      Any IP address within the network range.
    .Parameter SubnetMask
      The subnet mask for the network.
  #>
 
  [CmdLetBinding()]
  Param(
    [Parameter(Mandatory = $True, Position = 0, ValueFromPipeline = $True)]
    [Net.IPAddress]$IPAddress,
 
    [Parameter(Mandatory = $True, Position = 1)]
    [Alias("Mask")]
    [Net.IPAddress]$SubnetMask
  )
 
  Process {
    Return ConvertTo-DottedDecimalIP ((ConvertTo-DecimalIP $IPAddress) -BAnd (ConvertTo-DecimalIP $SubnetMask))
  }
}


Function Get-BroadcastAddress {
  <#
    .Synopsis
      Takes an IP address and subnet mask then calculates the broadcast address for the range.
    .Description
      Get-BroadcastAddress returns the broadcast address for a subnet by performing a bitwise AND
      operation against the decimal forms of the IP address and inverted subnet mask.
      Get-BroadcastAddress expects both the IP address and subnet mask in dotted decimal format.
    .Parameter IPAddress
      Any IP address within the network range.
    .Parameter SubnetMask
      The subnet mask for the network.
  #>
 
  [CmdLetBinding()]
  Param(
    [Parameter(Mandatory = $True, Position = 0, ValueFromPipeline = $True)]
    [Net.IPAddress]$IPAddress,
 
    [Parameter(Mandatory = $True, Position = 1)]
    [Alias("Mask")]
    [Net.IPAddress]$SubnetMask
  )
 
  Process {
    Return ConvertTo-DottedDecimalIP $((ConvertTo-DecimalIP $IPAddress) -BOr `
      ((-BNot (ConvertTo-DecimalIP $SubnetMask)) -BAnd [UInt32]::MaxValue))
  }
}


Function Get-NetworkSummary ( [String]$IP, [String]$Mask ) {
  If ($IP.Contains("/"))
  {
    $Temp = $IP.Split("/")
    $IP = $Temp[0]
    $Mask = $Temp[1]
  }
 
  If (!$Mask.Contains("."))
  {
    $Mask = ConvertTo-Mask $Mask
  }
 
  $DecimalIP = ConvertTo-DecimalIP $IP
  $DecimalMask = ConvertTo-DecimalIP $Mask
 
  $Network = $DecimalIP -BAnd $DecimalMask
  $Broadcast = $DecimalIP -BOr
    ((-BNot $DecimalMask) -BAnd [UInt32]::MaxValue)
  $NetworkAddress = ConvertTo-DottedDecimalIP $Network
  $RangeStart = ConvertTo-DottedDecimalIP ($Network + 1)
  $RangeEnd = ConvertTo-DottedDecimalIP ($Broadcast - 1)
  $BroadcastAddress = ConvertTo-DottedDecimalIP $Broadcast
  $MaskLength = ConvertTo-MaskLength $Mask
 
  $BinaryIP = ConvertTo-BinaryIP $IP; $Private = $False
  Switch -RegEx ($BinaryIP)
  {
    "^1111"  { $Class = "E"; $SubnetBitMap = "1111" }
    "^1110"  { $Class = "D"; $SubnetBitMap = "1110" }
    "^110"   {
      $Class = "C"
      If ($BinaryIP -Match "^11000000.10101000") { $Private = $True } }
    "^10"    {
      $Class = "B"
      If ($BinaryIP -Match "^10101100.0001") { $Private = $True } }
    "^0"     {
      $Class = "A"
      If ($BinaryIP -Match "^00001010") { $Private = $True } }
   }  
 
  $NetInfo = New-Object Object
  Add-Member NoteProperty "Network" -Input $NetInfo -Value $NetworkAddress
  Add-Member NoteProperty "Broadcast" -Input $NetInfo -Value $BroadcastAddress
  Add-Member NoteProperty "Range" -Input $NetInfo `
    -Value "$RangeStart - $RangeEnd"
  Add-Member NoteProperty "Mask" -Input $NetInfo -Value $Mask
  Add-Member NoteProperty "MaskLength" -Input $NetInfo -Value $MaskLength
  Add-Member NoteProperty "Hosts" -Input $NetInfo `
    -Value $($Broadcast - $Network - 1)
  Add-Member NoteProperty "Class" -Input $NetInfo -Value $Class
  Add-Member NoteProperty "IsPrivate" -Input $NetInfo -Value $Private
 
  Return $NetInfo
}

Function Get-NetworkRange( [String]$IP, [String]$Mask ) {
  If ($IP.Contains("/"))
  {
    $Temp = $IP.Split("/")
    $IP = $Temp[0]
    $Mask = $Temp[1]
  }
 
  If (!$Mask.Contains("."))
  {
    $Mask = ConvertTo-Mask $Mask
  }
 
  $DecimalIP = ConvertTo-DecimalIP $IP
  $DecimalMask = ConvertTo-DecimalIP $Mask
 
  $Network = $DecimalIP -BAnd $DecimalMask
  $Broadcast = $DecimalIP -BOr ((-BNot $DecimalMask) -BAnd [UInt32]::MaxValue)
 
  For ($i = $($Network + 1); $i -lt $Broadcast; $i++) {
    ConvertTo-DottedDecimalIP $i
  }
}
Categories: Powershell, Toolbox Tags:

VMWare’s revised education paths.

October 10th, 2012 No comments

Just attended a session at VMWorld on VCAP-DCD and figured I’d jot some notes on the revised VMware certification paths.

VMWare are changing the way they run their educational program.

Existing certs are being renamed
E.g. VCP5 being renamed to VCP5-DV – same qualification. This is because multiple solution tracks are now going to be available – as VMWare is of course expanding their offerings.

Changes to certification paths.
Each path will now have the achievement tracks : Professional, Advanced Professional, Expert.

There will be 5 solution tracks – these being:
Cloud, datacenter virtualised(DCD/DCA), end user computing(View), cloud application platform

This allows for role based certification I.e. engineer, administrator, architect or developers can chose paths that suit their specific requirements.
If you go to my learn.vmware.com you can actually search paths based on the roles specified above.
VCP-DV would be professional level, VCAP-DCA/DCD would be advanced professional and of course VCDx would be expert.

Currently 85000 VCPs and 2000 VCAPs and 100 VCDXs worldwide.

Resources:
As ever, information for each of the exams will be available in BluePrints.
For VCAP exams, there are ui demos on Mylearn.vmware.com
Use the VMWare communities
There are severals study guides and books available
You HAVE to have a lab use VmWare workstation, or buy an Hp Microserver or two for about £150
Attend a course if you can afford it

Exams are schedule via Pearson Vue

If you are at VMWorld – there is a lab sim where you can have a crack at a few simulations – definitely worth the time and effort!

Categories: VMWare, VMWorld Tags:

Europe’s biggest geek gathering – VCDX and vExperts unite

October 9th, 2012 No comments

A quick pic from the party hosted by Steve Herron to honor the VCDXs ad vExperts.

I have seen all the big guns already – Mike Laverick, Duncan Epping etc…

20121009-195620.jpg

Not quite sure how I can justify being in present company – I am no geek compared to these guys…

Categories: VMWare, VMWorld Tags:

Round table for UK customers with Steve Herrod

October 9th, 2012 No comments

Attended a roundtable with heavy hitters from the UK client base and Steve Herrod.

Companies present are:
Betfair
William hill
HSBC
NYSE
BUPA
BNP Paribas
AXA tech
Duetsche Bank
Nomura
Experian
John Lewis
Marks and Spencer
Thomson Rueters

Challenges facing clients.

Red global / UK bank – resilient virtual centres
Integration of products
Licensing modelling
Automation of networking
Active active dcs and IP address conflicts
VMware’s speed of movement after acquisitions
Consolidated views of data centres in geographically dispersed datacenters
Private cloud and cloud solutions providers
Licensing challenges due to offerings from other players in the market
Datacenter sprawl
Understanding VMWare’s strep ateliers going forward
Caching read/write for performance
Bringing together products from different vendors
Moving our VMware offerings from QA dev into out production environment
Compute critical apps
Using technology across security domains
Integration of virtual network solutions from external vendors
ITSM integration – not with the tools, but with the process

Steve says:
Many lab type projects in place at VMWare – Only about 8% of projects actually make it through the filters at VMWare – many projects fail.

Server virtualisation – Steve would give VMware an A
Storage virtualisation – B
Networking – C – despite possibly being the world’s third largest switch port provider bed on number allocated (all virtual of course in this case)

Looks to see VMWare focusing on these. Have been looking very aggressively in the networking space.
Network virtualisation is the next big step forward.
Microsoft is a big challenge, but VMWare accepts there will always be multiple players in the virtualisation market, but the value add should make the difference.
Yes strict server consolidation plays into Microsoft’s hands, but check you factor in automation, downtime costs etc. VMWare is a clear winner.

Outside VMWare, companies are working on the integration of physical and physical networks – see VXLan for VMWare.
Also look to see tighter integration with storage providers (hardware plugins/ storage management from vSphere etc)

Check out labs.vmware.com if you have great ideas for direction for VMWare.
To write web based apps – check out www.cloudfoundry.com

VM customers – things they have done:
95% virtualised for non Prod(M&S) – 75% for Prod
Clusters running on VMWare using VCS.
SDRS has solved storage issues where VMs have been thin provisioned – saved 90TB by enabling thin provisioning
BYOD (bring your own device) Horizon

Discussion comparing hyper v and ESX costs.
Hyper v setup time much longer
Hyper V bundled – but much more expensive when you add system center etc
Non windows VMs?

Categories: VMWare, VMWorld Tags:

Cloud infrastructure suite architecture with Duncan Epping

October 9th, 2012 No comments

Managed to snag a seat on Duncan’s Cloud Infrastructure Suite Architecture group session at VMWorld. Of course Duncan is a one of the biggest influences in VMWare’s direction and of course a real wizard – so real excited to get a spot ( I left my session selections a little late – seeing as I only managed to get a blogger’s pass 3 weeks ago)

I’ll update this as we go along . .

12:30 – game time…

20121009-123105.jpg

We have Michael Webster along for the ride (the only kiwi VCDX #66)

What kind of storage enables your cloud?
Legacy fibre?
Legacy IP (iscsi/NFS)?
All flash / SSD?
Hybrid? – most common

What the people are using:
Very few people using sDRS – varying reasons (mostly limitations like incompatibility with SRM etc. / compatibility with backup vendors due to VMS moving location)
Hybrid storage solutions
Some SSD
About 40% using vCloud Director
Jumbo Frames for lowering CPU requirements
Only 5% using network IO control
Almost everyone on Enterprise or enterprise plus.
VSwitches still rule – low uptake of vDS
Guys using Nexus 1000v to keep networks team happy?

vSphere 5 has removed the 8 host limitation for vmfs access.

Unfortunately, the session that is separated from us by only a curtain is sooooo loud, that the session with Duncan is almost unbearable :(

Categories: VMWare, VMWorld Tags:

My VMWorld schedule today

October 9th, 2012 No comments

20121009-122125.jpg

Categories: VMWare, VMWorld Tags:

VMWorld 2012 – performance, new features and best practices

October 9th, 2012 No comments

Just rushed into hall B2 , going to go through performance enhancements in vSphere 5.1. Ignore typos please – typing in an iPad and autocorrect is not the most uhhh tech friendly tool…

VSphere 5.1 targets
Big data
Low latency
Monster apps
Large scale deployments
View and vCloud director environments.

Big Data:
Monster VMs mean:
64vCpus (who does this with a Vm?)
1TB Ram (again – surely this would justify a physical?)
VMWare have managed to more than 1 million IOPs out of a single VM (cool and ridiculous)

Big new addition – exposure of new CPU counters in new techs like ivyBridge, SandyBridge and PileDriver

Low latency:
New dropdown available to label VMs as latency sensitive (VM behave accordingly) – use with caution . . And do NOT let the business know about this. Prioritises access to resource, but if overused, loses its effectiveness.

Platform recommendations:
Size VMs correctly
Use resource settings only if needed
Avoid affinity possible
Over provisioning is fine great!
Hyper threading is GREAT – use it.
Double check bios and power management settings

Reduced memory overhead:
VSphere 5.1 allows for swap file creation to reduce memory reservation for backed processes – saving about 1GB per host.
Can be configured from web client under system volumes – edit system swap settings.
Overcommit to about 20% as a guideline. Make sure to use ballooning, transparent page sharing, memory compression, host cache swapping and ESX or guest Level swapping.
When you start seeing the swapping use go up – reduce overcommitte.
Sizing VMs – use reservations as needed and try keep memory within NUMA domain.

Memory – consumed vs active:
Consumed – physical memory used by VM (good measure of actual usage at point in time)
Active is the amount recently touched.

Storage IO control enhanced in vSphere 5.1:
VSphere 5.1 can use percentage based thresholds instead of absolute latency values – this means better throughput on both slow storage as well as low latency for low latency storage,
SIOC monitors and controls the full storage stack latency

Storage DRS enhancements:
Interoperability with vCloud Director – including linked clone (with vCloud only)
Storage DRS correlation detector (so we won’t automatically move storage between data stores that are actually hosted on the same spindles – which would have no benefit)
Can be used with Auto-Tiering – but you would need to follow the storage vendor’s best practice.

Storage performance:
Now support 16Gb CPU – which has lower CPU cost / efficiency.

Adapters:
Jumbo Frames best case throughput improved by:
Hwscsi read 88% write 20%
Swscsi read 11% write 40%
NFS. Read 9% write 32%

Storage best practices:
Size accordingly and keep latency below 30ms
Snapshots are not free!
Use sioc and sdrs
Update storage firmware
Remember the old tricks (multipathing, block size, alignment, paravirtulaised scsi etc)

Networking virtualisation:
New features – VDS snapshots(snapshot your switch’s config), auto-Rollback of configs, port mirroring and net flow enhancements)

Use VDS – Network IO control (eg don’t let a vMotion kill the mic for everyone else)

New feature: SR-IOV – allow one nic to be presented as multiple separate logical adapters. This allows us to allow multiple VMs to directly use the physical NIC – reducing latency.

VXLAN – new feature
Deploy VMs where resources are available, then create a gigantic layer 2 network, making access ‘local’ – possibly a great tool for getting max use out of geographically dispersed vSphere networks that run business hours only – e.g. NY / London office

Networking best practice:
Be mindful of converged networks
Use distributed virtual switches

VMotion enhancements:
Shared nothing migration – no shared storage required and still able to migrate host and storage at the same time (cool)
Parallel storage vMotion – so we do a storage vMotion of a VM with 4 disks – possibly separated by affinity etc. this allows the copies of up to 4 vmdks at the SAME time (previously, copies were sequential) – there is only benefit when the vmdks are moving from different data stores, to different data stores.

vMotion best practices:
Use the latest version of vmfs. (5.x)
Keep vmknics on same subnet
Separate vmknics across multiple vmnics. VMotion will load balance the traffic

vCenter enhancements:
Web client WITH SSO
Wb client supports 300 concurrent connection
Can collect up to 80 million stats per hour – so max logging (level 4) for an environment of 1000 hosts, with 2000 data stores and 15000 VMs!

VCenter best practices:
Size correctly
Size the db correctly
Keep an eye logging levels, DB performance and networking connectivity between VC, DB hosts etc.
VM or physical is ok
32 hosts per cluster
Use resource pools and affinity rules in clusters as needed.

Categories: VMWare, VMWorld Tags:

VMWorld Barcleona 2012

September 19th, 2012 No comments

John Troyer (and Alex Maier) was kind enough to offer me a blogger’s pass (which as a contractor that has to take time off work to get to conferences etc is the only way I can afford to go) I have booked my flights and will be there for the Tuesday and Wednesday – couldn’t really afford 3 days unpaid – but here is my current schedule:

Subject Start Date Start Time End Date End Time
GS01  —  IT Transformation as the Enabler of Business Transformation and Delivering the Promise of the Software-defined Datacenter

09/10/2012

9:00 AM

09/10/2012

10:30 AM

GD41  —  vCloud Director Architecture, IntegraIon and Orchestration with Chris Knowles

09/10/2012

11:00 AM

09/10/2012

12:00 PM

INF-VSP1372  —  What’s New with vSphere

09/10/2012

12:30 PM

09/10/2012

1:30 PM

INF-VSP1329  —  PowerCLI Best Practices:  The Return!

09/10/2012

2:00 PM

09/10/2012

3:00 PM

INF-BCO1159  —  Architecting and Operating a VMware vSphere Metro Storage Cluster

09/10/2012

3:30 PM

09/10/2012

4:30 PM

GS02  —  Empowering the Workforce of Tomorrow, That’s Here Today

10/10/2012

9:00 AM

10/10/2012

10:30 AM

INF-VSP1353  —  vCenter: A Technical Deep Dive

10/10/2012

11:00 AM

10/10/2012

12:00 PM

VCAP Datacenter  —  VMware Quickstart: VCAP Datacenter

10/10/2012

12:30 PM

10/10/2012

1:30 PM

OPS-CIM2179  —  Transforming Your Cloud with VMware:  Day One – Building Your Cloud

10/10/2012

2:00 PM

10/10/2012

3:00 PM

INF-STO1545  —  Architecting Storage DRS Datastore Clusters

10/10/2012

3:30 PM

10/10/2012

4:30 PM

INF-VSP1252  —  What’s New with vSphere 5.1 – ESXCLI & PowerCLI

10/10/2012

5:00 PM

10/10/2012

6:00 PM

I am still toying with the extra day off as there are some sessions on Friday that I would like to attend and of course, I don’t really want to miss the party! If you haven’t booked – best get booking!!  

Categories: VMWare, VMWorld Tags: