MicrosoftDocs / Windows-Admin-Center-Ideas-and-Feedback

Windows Admin Center's hub for ideas and feedback.
Creative Commons Attribution 4.0 International
20 stars 9 forks source link

Storage Migration Service fails if there are duplicate MSFT_PhysicalDisk UniqueIDs #253

Open KaneTW opened 1 year ago

KaneTW commented 1 year ago

Gateway Version: 1.3.2204.19002 Extension Version latest as of 2022-09-04 (will fill in later)

To Reproduce Steps to reproduce the behavior:

  1. Create a VMWare ESXi VM with two NVMe controller attached hard disks.
  2. Attempt to use Storage Migration Service to transfer from a source to the destination
  3. Press scan. DiskInfo step fails and scan fails.

Expected behavior Scan succeeds

Screenshots & Additional context DIskInfo fails in Microsoft.StorageMigration.Proxy.Service.Discovery.DeviceDiscoveryOperation.CollectWindowsDeviceInfo. private IList<DiskInfo> GetDisks(CimSession cimSession) { IList<DiskInfo> diskInfoList = (IList<DiskInfo>) new List<DiskInfo>(); Dictionary<string, MediaType> dictionary = new Dictionary<string, MediaType>(); foreach (MSFT_PhysicalDisk msft_physicalDisk in MSFT_PhysicalDisk.Enumerate(cimSession)) dictionary.Add(msft_physicalDisk.UniqueId, DiscoveryUtils.GetMediaType(msft_physicalDisk));

msft_physicalDisk.UniqueId is not actually unique in this configuration. This might be an upstream bug, but they're both "15ADVmware Virtual NVMe Disk"

KaneTW commented 1 year ago

I believe this is an ESXi bug, but I figured I'd file it here since that's where I ran into it.

Workaround: don't have two NVMe disks, merge them into one instead

Symptoms for people googling this: In Event Log under StorageMigrationService\Debug [Erro] GetTaskStatus request failed job=share error=-2147024809: System.ArgumentException: Value does not fall within the expected range. at Microsoft.StorageMigration.Service.DeviceInventoryTask.GetDevice() at Microsoft.StorageMigration.Service.StorageMigrationService.CompleteDeviceInventoryTask(String jobName, Guid taskId) [d:\os\src\base\dms\service\StorageMigrationService.ITransfer.cs::CompleteDeviceInventoryTask::3630]

There's also an error under Event Log under StorageMigrationService-Proxy\Debug, but I lost it. It ends up pointing to Microsoft.StorageMigration.Proxy.Service.Discovery.DeviceDiscoveryOperation.TryStage

There will additionally be an obscure error in WAC when the scan fails (something about exceptions not shown)

KaneTW commented 1 year ago

Sorry, i just realized i forgot to set the title. Please change it to something suitable as I can't edit it myself, eg "Storage Migration Service fails if there are duplicate MSFT_PhysicalDisk UniqueIDs"