Archive for December, 2010

VMware how to check VAAI

December 31, 2010 Leave a comment

How do I know if VAAI is enabled on ESX/ESXi?

In the vSphere Client inventory panel, select the host.
Click the Configuration tab, and click Advanced Settings under Software.
Check that these options are set to 1 (enabled):


Note: These options are enabled by default.
To determine if VAAI is enabled service console in ESX or the RCLI in ESXi, run the commands and ensure that the value is 1:

# esxcfg-advcfg -g /DataMover/HardwareAcceleratedMove
# esxcfg-advcfg -g /DataMover/HardwareAcceleratedInit
# esxcfg-advcfg -g /VMFS3/HardwareAcceleratedLocking

Categories: Uncategorized

EMC FAST Tiering and Cache first thoughts

December 30, 2010 Leave a comment

This week we have deployed our first EMC CX with flare 30, FAST and SSD’s. The customer has a CX 240 with 5 x 100GB SSD’s, and a heap of 600GB Fibre Channel and 2TB SATA. Matt Taylor discussed his highlights and I thought I would add mine.

FAST Cache

Existing RAID Groups, Storage Pools and LUN’s do not get fast cache enabled automatically when you load the enabler, but it is enabled by default for all new storage devices.

With traditional RAID Groups, FAST Cache is enabled on a per LUN basis. Storage pools FAST is enabled on the pool and not the LUN.

Monitor workloads specifically the Cache Miss Rate metric to idetify which workloads will most benefit from FAST cache.

EMC CX and Celerra FAST cache whitepaper

Categories: EMC

EMC Storage rename certificate error

December 30, 2010 Leave a comment

Post conversion of an EMC CX 240 (flare 30) from being a CX120 both the System name and Storage processors were renamed to reflect the upgraded system. The SSL certificate using is updated to reflect the new name and this caused a certificate error in the web browser blocking access to the system. When the certificate is regenerated the date/time on the ceritificate valid from date used UTC time which in Australian eastern standard timezone was in the future by around 10 hours.

To get around this issue you can put your time and date forward on the workstation you are using to manage the CX storage until the certificate becomes valid.

Categories: EMC

VMware ESX Multipath scripts

December 24, 2010 4 comments

Sets all devices on all hosts in a Cluster to Round Robin and enables un optimised paths.  

#ESX host username
$Username = “root”
#vSphere CLI esxcli.exe path
$esxcli = “C:\Program Files\VMware\VMware vSphere CLI\bin\esxcli.exe”
#Prompt for vCenter Server
$viServer = Read-Host “Enter vCenter server Name: ”
Connect-VIServer $viServer
#Prompt for vCenter Server Cluster
$viCluster = Read-Host “Enter vCenter Cluster: ”

#list of ESX and ESXi host to perform operation against
$vihosts = Get-Cluster $viCluster | Get-vmhost | sort Name | % {$_.Name}

#prompt user for username
$UsernameInput = Read-Host -AsSecureString:$true “Please enter your common username for ESX hosts”

#prompt user for password
$passwordInput = Read-Host -AsSecureString:$true “Please enter your common password for ESX hosts”

#convert secure password to normal string
$Ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($passwordInput)
$Password = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($Ptr)

#convert secure username to normal string
$Usr = [System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($UsernameInput)
$Username = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($Usr)
#loop through array of hosts and set default SATP policy to RoundRobin
for($i = 0; $i -le $vihosts.length -1; $i++) {
write-Host Executing set default PSP for ALUA_CX to RR on $vihosts[$i]
#insert esxcli parameters at the very end of the statement below
& $esxcli –server $vihosts[$i] –username $Username –password $Password nmp satp setdefaultpsp –satp VMW_SATP_ALUA_CX –psp VMW_PSP_RR

#loop through array of hosts and set PSP policy to RoundRobin
foreach ($viHost in $vihosts)
write-Host Executing set policy RR per device on $viHost
$lunList = get-vmhost $viHost | get-scsilun -CanonicalName “*” | % {$_.CanonicalName}
foreach ($lun in $lunList)
write-Host Executing set policy RR per device on $lun
#could not find a way to store the params in a variable you must
#insert esxcli parameters at the very end of the statement below
#write-host “$esxcli –server $viHost –username $Username –password $Password nmp device setpolicy –psp VMW_PSP_RR –device $lun”
& $esxcli –server $viHost –username $Username –password $Password nmp device setpolicy –psp VMW_PSP_RR –device $lun

#loop through array of hosts and disable the use of non-optimised paths
foreach ($viHost in $vihosts){
write-Host Executing disable unoptimized paths on $viHost
foreach ($lun in $lunList){
#could not find a way to store the params in a variable you must
#insert esxcli parameters at the very end of the statement below
#write-host “$esxcli –server $viHost –username $Username –password $Password nmp roundrobin setconfig –useANO 0 –device $lun”
& $esxcli –server $viHost –username $Username –password $Password nmp roundrobin setconfig –useANO 0 –device $lun

Upgrading to Domain Controller 2008 R2 checklist

December 23, 2010 Leave a comment

Just using this as a checklist for my AD upgrades to Windows Server 2008 R2

Ensure DNS, set loopback as primary with other DNS Servers as teriary DNS Servers

Configure PDC emmulator to point to external time source

Modify Registry settings on the PDC emulator for the forest rootdomain:
Change TypeRED_SZvalue from NT5DSto NTP
Change NtpServervalue from,0x1to an external stratum 1 time source, i.e.,,0x1
Change AnnounceFlagsREG_DWORD from 10 to 5
Stop and restart Time Service: net stop w32time, net start w32time
Manually force update:  w32tm /resync/rediscover

Enable Strict replication consistency

repadmin /regkey * +

Protect OU’s from accidental deletion

Enable AD Recycle Bin

Categories: Uncategorized

Outlook 2003 connectivity issues with Exchange 2010

December 22, 2010 1 comment

Although this error message has multiple causes one I have seen recently is due to Exchange 2010’s Default Throttling Policy with Outlook 2003. You may notice this error occur when opening additional shared mailboxes or calendars from Outlook.

The connection to the Microsoft Exchange is unavailable. Outlook must be online or connected to complete this action.

Using this command you can see the number of current RPC connections for a user. By default Exchange 2010 Throttling Policy allows 20 RPC connections per user so if you start receving this error once you hit 20 connections you know the Throttling Policy is causing your problems.

Get-LogonStatistics -Identity “username” | fl applicationid

The current resolution options include creating a less restrictive throttling policy and applying it to the effected users. There are reports that Outlook 2003 establishes more RPC connections than Outlook 2007/2010 as they are more efficient with their connections.

New-ThrottlingPolicy –name NewPolicy

Set-ThrottlingPolicy –identity NewPolicy -RCAMaxConcurrency 100

(I have used 100 here but any figure above 20, the default, may assist you depending on how many connections the client is establishing)

Set-Mailbox –Identity “user” –ThrottlingPolicy NewPolicy

It’s important to restart the throttling and rpcclientaccess services once you have applied to new policy as without this the changes won’t apply.

Thanks to the follow blogs for helping to point the way on making throttling policy changes apply.



In relation to working with Exchange 2010 and Outlook 2003 clients this is the article to read.

Categories: Exchange, Microsoft, Powershell

VMware bulk vMotion via PowerCLI

December 17, 2010 Leave a comment

Unfortunately VMware licesning for Enterprise and Enterprise Plus is not cheap. Some of the customers I work with cannot afford this licensing so they get Advanced and miss out on DRS. One of my biggest issues with this is putting hosts into Maintenance mode, although the host will start entering maintenance mode it cannot automagically move all the VM’s off onto other hosts. I get around having to manaully migrate each VM I use the following script. It’s limited to moving all the VM’s from one host to one other host, enjoy!

Get-VM -Location (Get-VMHost ‘sourcehostname’) | Move-VM -Destination (GetVM-Host ‘destinationhostname’)

PowerCLI rocks!

Categories: PowerCLI, Scripting, VMware