The Problem with Hardware VSS Providers and Cluster Technologies like CSV and DAG

In solutions like DAG and CSV you can have issues with VSS backups completing if you are attached to a SAN and using a hardware provider.
The reason for this is because the LUN needs to pause the processes accessing the LUN but if another server is the one in control  of data on that LUN its unable to do that on a single host.
Here are some details as well as ways to resolve this issue.


1. CSV Issue

  • imageimageMultiple Servers with a shared CSV Volume and VMS distributed across nodes may fail if you are using hardware VSS providers because it wants to snapshot the entire LUN but the node you are running the snap shot from doesn’t have access to all the VMS in order to pause them before committing the snapshot.
  1. You can resolve this in one of 2 ways.
    1. Move all the VMs to a single node or host until the backup is completed.
    2. Disable or remove your hardware based VSS provider.




2. DAG Issue


This issue may come up not because you are sharing LUNS and have active data  on separate nodes (as above) but because you may use a separate provider for Active and Passive backups. When you try to backup a LUN that has both active and passive databases a hardware provider may try to use two different writers to snapshot the LUN. You can verify this by moving all active databases to one node to backup.

  1. You can resolve this in one of 3 ways.
    1. Do not put multiple databases on a single LUN.
    2. Move all Databases to one node before running backup
  2. 3. Disable you hardware based VSS provider


NOTE: Disabling your hardware provider will likely cause your backups to take much longer


  • Disable Equal Logic VSS Writer – Run C:\Program Files\EqualLogic\bin>eqlvss /unregserver”
  • Disable Hardware VSS in DPM – Add the following key to the registry [Software\Microsoft\Microsoft Data Protection Manager\Agent\UseSystemSoftwareProvider]
  • How VSS Works
  • If you know how to disable other providers please let me know and I will add it to this document!

Installing Windows mobile into a VM (With Network Access)


I posted this ages ago and Recently had reason to need it again so here it is

Window Hyper-v
(I have not been able to get networking to work without docking on any other VM software, Tried: ESX 3.5, Vmware Workstation, Vmware Server, MS Virtual Server)
Guest OS Windows XP with all the updates (might work with Vista not tested)

1.       Install Virtual PC 2007 Sp1 in the guest (needed for network connectivity)

a.       Install Integration Components on the VM

b.      Use the Hyper-V synthetic NIC.

2.       Install  Windows Mobile Emulator

3.       Install Windows Mobile 6.1.4 Images

4.       Start WM 6.1.4 Professional

5.       On the mobile emulator

a.       click file

b.      configure

c.       network tab

d.      enable NE200 PCMCIA

e.       select Microsoft Virtual Machine Bus Network Adapter

f.        Click OK


6.       On the windows mobile device

a.       Click Start

b.      Settings

c.       Connections tab

d.      Connections

e.      Advanced Tab

f.        Select Networks

g.       Set Both network to “My Work Network”

7.       If you have DHCP available you now have network access from you emulator in the VM

8.       If DHCP is not available the configure you static IP in the emulator

a.       On the windows mobile device

                                                               i.      Click Start

                                                             ii.      Settings

                                                            iii.      Connections tab

                                                           iv.      Network Cards

                                                             v.      Select NE2000 compatible Ethernet Driver

                                                           vi.      Click Edit

                                                          vii.      Configure IP & Gateway on the IP address Tab

                                                        viii.      Configure DNS on Name servers tab

If you do not have access to Hyper-v or just want to use a different virtualization method you will need to use the “Dock Method”

Guest OS Windows XP with all the updates (might work with Vista not tested)

1.       Replace Step 5 With

a.       Install ActiveSync 4.5 in the XP Guest OS

                                                               i.      Run active Sync

                                                             ii.      Click File

                                                            iii.      Connection Settings

                                                           iv.      Allow Connections to one of the following

                                                             v.      Click the Drop Down Button and change to DMA

                                                           vi.      Click ok


b.      In the XP guest Navigate to C:\Program Files\Microsoft Device Emulator\1.0

c.       Run dvcemumanager.exe

d.      Right click the GUID of your device and select “Cradle”


e.      Active Sync Will now Connect the device to the VM and you will have network connectivity that way

SCVMM Powershell Scripts

I have been working on setting up a shared VMM configuration where I have multiple servers that are shared with multiple developers (they each have their own server but all ties into the same SCVMM.

I copied over VMs, ISO, and Templates to the individual servers but I wanted the resources on each server to be defined as belonging to the developer using it.

But when you copy them they all show as unknown…… now I am lazy and don’t want to go to the properties of each object and set the owner, and powershell being the wonderful thing it is made this easy so here is my “owner script”

You can run as individual 1 liners or save all together as a single .ps1 file



Get-vmmserver localhost


Get-Template | ? {$_.LibraryServer -EQ "SERVER1.LAB.LOCAL"} | Set-Template -Owner USER_ONE | FT name, owner

#Set all ISO on SERVER1 to USER_ONE

Get-iso | ? {$_.LibraryServer -EQ "SERVER1.LAB.LOCAL"} | Set-iso -Owner USER_ONE | FT name, owner


get-VM | ? {$_.LibraryServer -EQ "SERVER1.LAB.LOCAL"} | Set-VM -Owner USER_ONE | FT name, owner

get-VM | ? {$_.VMHOst -EQ "SERVER1.LAB.LOCAL"} | Set-VM -Owner USER_ONE | FT name, owner


Get-VirtualHardDisk | ? {$_.LibraryServer -EQ "SERVER1.LAB.LOCAL"} | Set-VirtualHardDisk -Owner USER_ONE | FT name, owner



Compress Every powered off VM’s VHDs

Well its not exchange related but I run all my labs in hyper-v and I recently wanted to compress all the dynamic disks in my hyper-v lab and me being lazy did not want to go to the options on EVERY VM to compress the drives, so I started my google search to find a Powershell script to do them all for me…… well I couldn’t find it so I made one of my own and figured I would share 🙂

FYI- you need SCVMM to run this

Get-VMMServer –ComputerName localhost -TCPPort  8100 (8100 is default)

get-vm | where {$_.status -eq “POwerOFf”} | Get-VirtualDiskDrive |where {$_.status -eq “POwerOFf”}| ForEach-Object {Compress-VirtualDiskDrive -RunAsynchronously -VirtualDiskDrive $_}

Note: this will compress everything that’s “shutdown” so make sure you have the Disk I/O to do this.