Enthusiast
Enthusiast

Ошибка The object 'vim.Datastore:datastore-504273' has already been deleted or has not been completely created

Коллеги,

У меня некоторые VM выдают ошибку The object 'vim.Datastore:datastore-504273' has already been deleted or has not been completely created

Данного датастора в кластере нет, как избавится от ошибки?

Спасибо!

6 Replies
Champion
Champion

Добрый день!

Расскажите подробности - версии vcenter, esxi. При каких операциях вы получаете подобные сообщения? они как-то влияют на работоспособность ВМ\выполнении запланированных действий?

Есть ли у этих ВМ снапшоты, которые например были сделаны, когда ВМ располагалась на этом датасторе?

Плюс вы уверены, что у вас датастора такого нет? datastore-504273 - это MOID, а не имя датастора.

0 Kudos
Enthusiast
Enthusiast

Версии

vCenter 6.5

Хосты все 6.5

Данная проблема возникает при сборе статистики через API , выдает ошибку как только пытаешься запросить статистику с использованием датастора,

есть 1 VM со снапшотом, но вот когда он сделан непонятно, то что не имя это понятно, смотрел все MOID в кластере , данного MOID нету

0 Kudos
Champion
Champion

Попробуйте удалить снапшоты ненужные и повторить.

0 Kudos
Enthusiast
Enthusiast

Так же заметил 1 но

Диск VM лежит на 1 датасторе, при запуске скрипта он пишет совсем другой датастор

0 Kudos
Champion
Champion

Вы попробовали удалить снапшоты?

Если это не помогает, то для исследования нужно видеть ваш скрипт и логи. Если скрипт подключается к VC, то посмотреть для начала на vpxd лог, а также посмотреть логи хоста (hostd, vpxa)

0 Kudos
Enthusiast
Enthusiast

Помог скрипт, статистика снова собирается

$report = @()

$allvms = Get-VM -name * | Sort-Object $_.datacenter

foreach ($vm in $allvms) {

     write-host $vm.name

     $vmview = $vm | Get-View                    # get-view to see details of the FM

     foreach($disk in $vmview.Storage.PerDatastoreUsage){      # Disks for the VM

      $dsview = (Get-View $disk.Datastore)                    # Datastore used by the disks

      $dsview.RefreshDatastoreStorageInfo()                    # refresh to get the latest data

      $vmview.Config.Name                              # Echo to the screen to show progress

      $row = "" | select HOST, VMNAME, POWERSTATE, CPUS, RAM, DATASTORE, VMSIZE_MB, VMUSED_MB, PERCENT     # blank row

      $row.HOST = $vm.Vmhost

      $row.POWERSTATE = $vm.PowerState

      $row.CPUS = $vm.NumCpu

      $row.RAM = $vm.MemoryMB

      $row.VMNAME = $vmview.Config.Name                         # Add the data to the row

      $row.DATASTORE = $dsview.Name

      $row.VMSIZE_MB = (($disk.Committed+$disk.Uncommitted)/1024/1024)

      $row.VMUSED_MB = (($disk.Committed)/1024/1024)

      $row.PERCENT = [int](($row.VMUSED_MB / $row.VMSIZE_MB)*100)

      $report += $row       # Add the row to the structure

   }

}

$report | Export-Csv "virtual computers-all.csv"