Error 26147 while unregistering a LUN in Virtual Machine Manager


When you delete a VM checkpoint and then delete the VM, you receive the following error when you try to unregister the LUN formerly containing the VHD and checkpoint files:

Error (26147)
Storage logical units <LUN ID> are in use by one or more virtual machines.


When you delete a checkpoint, Virtual Machine Manager (VMM) deletes the virtual drive records for the checkpoint from the virtual drive table but does not update or delete corresponding VHD records from the virtual disk table. Therefore, the VHD is no longer associated with a virtual drive which means it is not associated with a VM. If you later delete the VM, the VHD remains in the database. The VHD is still associated with the host drive, which causes VMM to detect that the LUN is still in use.


The issue is resolved in System Center 2012 Virtual Machine Manager Service Pack 1 (SP1).

More Information

Below is an example of what will appear in a VMM stack trace when this issue occurs:

00000251 3.86910009 [4576] 11E0.11BC::08/19-10:14:27.220#04:StoragePrechecks.cs(49): Running precheck - IsHostHyperVPrecheck
00000252    3.87139416    [4576] 11E0.11BC::08/19-10:14:27.222#14:StoragePrechecks.cs(705): Running precheck - StorageLunsInUsebyVMsPrecheck   
00000253    3.87730837    [4576] 11E0.11BC::08/19-10:14:27.229#09:HostVolume.cs(476): Retrieved all HostVolume rows for HostDiskID=c994ebf6-31e0-4cac-8926-f473fe1ad93d   
00000254    3.87834644    [4576] 11E0.11BC::08/19-10:14:27.229#14:StoragePrechecks.cs(714): StorageLunsInUsebyVMsPrecheck Luns <LUN ID> is already in use   
00000255    3.87852120    [4576] 11E0.11BC::08/19-10:14:27.230#19:RunningTaskDbWriter.cs(502): AddInformationalMessage --> StorageLogicalUnitsInUseByVM (26147)|TaskID=47CF9FD2-B6A7-410B-843F-C381B4739DD2   
00000256    3.88100696    [4576] 11E0.11BC::08/19-10:14:27.232#19:Task.cs(270): Task failed error StorageLogicalUnitsInUseByVM (26147) with exception Microsoft.VirtualManager.Utils.CarmineException: Storage logical units <LUN ID> are in use by one or more virtual machines.    
00000257    3.88100696    [4576] Remove the virtual machines and retry the operation.    
00000258    3.88100696    [4576]    at Microsoft.VirtualManager.Engine.Deployment.PreCheck.ExecutePrechecks(List`1 prechecks, ITaskContext taskContext)    
00000259    3.88100696    [4576]    at Microsoft.VirtualManager.Engine.Adhc.UnregisterStorageLunSubtask.AcquireNecessaryLocks()    
00000260    3.88100696    [4576]    at Microsoft.VirtualManager.Engine.Adhc.SetHostTask.RunSubtask()    
00000261    3.88100696    [4576]    at Microsoft.VirtualManager.Engine.TaskRepository.SubtaskBase.Run()    
00000262    3.88100696    [4576]    at Microsoft.VirtualManager.Engine.TaskRepository.Task`1.SubtaskRun(Object state)   
00000263    3.88100696    [4576] *** Carmine error was: StorageLogicalUnitsInUseByVM (26147)   
00000264    3.88100696    [4576] *** <LUN ID> ** |TaskID=47CF9FD2-B6A7-410B-843F-C381B4739DD2


ID d'article : 2804293 - Dernière mise à jour : 29 janv. 2013 - Révision : 1