Unable to enumerate all disks ошибка

Hello all!!!!! Home lab player. I have a VM that I was trying to move to a SSD that I installed rather than a regular HDD. I copied it from one data store to another with no luck then I tried the move to the new data store with no luck. I am new to this and would like some help saving my VM. I have ...

SupreetK

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

How are you trying to move the files? Using the migrate option or from using the move option from the datastore browser? Is the VM running on a snapshot?

Can you share the screenshot of the error you are getting while moving/migrating the disk? Also, are both source and destination datastore VMFS-5? Or on a different version?

Cheers,

Supreet

SupreetK

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

How are you moving the files (by using the migrate option or move option on the datastore)? What files are you moving? Can you get all the files back to the source datastore, navigate to the VM folder, run the below commands and share the output?

1) grep -i vmdk VM_name.vmx

2) ls -lrht *vmdk*

You can refer to the KB VMware Knowledge Base to know how to identify if a VM is running on snapshot.

Cheers,

Supreet

SupreetK

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

Can you run the below commands from the VM folder and share the output? I don’t see a flat.vmdk file in the above screenshot.

ls -lrht *vmdk*

grep -i vmdk «WINSvr.vmx»

vmkfstools -e «WINSvr-000002.vmdk»

vmkfstools -e «WINSvr-000001.vmdk»

vmkfstools -e «WINSvr.vmdk»

Cheers,

Supreet

SupreetK

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

Looks like three main files are missing — WINSvr-000001.vmdk, WINSvr.vmdk and WINSvr-flat.vmdk. The first two files can be recreated but, the flat cannot be. From the root folder of the ESXi, run the command <find . -iname *WINSvr* | grep -i vmdk> and share the output. This will help us identify if the above three files are residing in a different location.

Cheers,

Supreet

SupreetK

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

As I thought, WINSvr-flat.vmdk seems to be missing. Since it is a data disk (and not the descriptor), it cannot be recreated. Only option would be to restore it from the backup, if any. If WINSvr16 is the new VM you are talking about, I would say let’s go ahead and get it up.

Please consider marking this answer as «correct» or «helpful» if you think your questions have been answered.

Cheers,

Supreet

JR_G

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

I had this problem moving my VMs from an NFS DS to an iSCSI one in the ESXi 6.7 web ui. I found that if you choose the VM. Go to Actions. Snapshots. Manage Snapshots. Delete all snapshots. Then copy/move the VM to the other DS they work fine. Seems like an issue with snapshots and moving between DS. Not sure if this affects VMDS to VMDS moves. The drawback, of course, is that you lose your snapshots. You can take new ones afterwards. So if the system is in a good state then maybe this would work?

continuum

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

The problem here was a missing flat.vmdk and this problem was not solved at all.

Flat.vmdks can be recreated or recovered … a fake flat.vmdk can then be used to extract some user-data.

Anyway — it does not really make sense to suggest something without feedback from the OP.

And this an old post …. better forget about it.

________________________________________________
Do you need support with a VMFS recovery problem ? — send a message via skype «sanbarrow»
I do not support Workstation 16 at this time …

coastalitsuppor

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

Hi,

Seen this article and have pretty much same issue, however i still have the flat file. Keep getting the below error.

Failed — Unable to enumerate all disks.

Errors

0″

Unable to enumerate all disks.

A required file was not found

continuum

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

This post is about a missing flat.vmdk — you say you still have the flat.vmdk so your problem obviously is completely different.
Create a new post and provide details.

________________________________________________
Do you need support with a VMFS recovery problem ? — send a message via skype «sanbarrow»
I do not support Workstation 16 at this time …

scott28tt

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

Good day everyone. I changed HW for my esxi hosts, copied VM’s across, and I cannot start some anymore…Just getting Failed to power on virtual machine Nextcloud. Unable to enumerate all disks. Click here for more details.

I really would like to recover this VM…

ls :

[root@alien:/vmfs/volumes/5e493010-d9f2cbf0-c496-64006a66bf47/Nextcloud] ls -la
total 45525184
drwxr-xr-x    1 root     root         77824 Feb 17 06:18 .
drwxr-xr-t    1 root     root         73728 Feb 17 06:28 ..
-rw-------    1 root     root     115343360 Feb 16 13:16 Nextcloud-70d41263.vswp
-rw-------    1 root     root     2147483648 Feb 16 12:11 Nextcloud-Snapshot4.vmem
-rw-------    1 root     root       5688588 Feb 16 13:15 Nextcloud-Snapshot4.vmsn
-rw-------    1 root     root     2147483648 Feb 16 14:21 Nextcloud-Snapshot5.vmem
-rw-------    1 root     root       5713179 Feb 16 16:00 Nextcloud-Snapshot5.vmsn
-rw-------    1 root     root          8684 Feb 16 12:07 Nextcloud.nvram
-rw-------    1 root     root             0 Feb 17 06:18 Nextcloud.vmsd
-rw-------    1 root     root          3367 Feb 16 16:00 Nextcloud.vmx
-rw-------    1 root     root           150 Feb 16 16:00 Nextcloud.vmxf
-rw-------    1 root     root       1049088 Feb 16 13:15 Nextcloud0-000001-ctk.vmdk
-rw-------    1 root     root     15854505984 Feb 16 16:00 Nextcloud0-000001-delta.vmdk
-rw-------    1 root     root           446 Feb 16 16:00 Nextcloud0-000001.vmdk
-rw-------    1 root     root       1049088 Feb 16 13:15 Nextcloud0-000002-ctk.vmdk
-rw-------    1 root     root     9143619584 Feb 16 14:03 Nextcloud0-000002-delta.vmdk
-rw-------    1 root     root           453 Feb 16 12:07 Nextcloud0-000002.vmdk
-rw-------    1 root     root       1049088 Feb 16 16:00 Nextcloud0-ctk.vmdk
-rw-------    1 root     root     17179869184 Feb 16 13:15 Nextcloud0-flat.vmdk
-rw-------    1 root     root           614 Feb 16 14:03 Nextcloud0.vmdk
-rw-------    1 root     root        255071 Feb 16 16:00 vmware-19.log
-rw-------    1 root     root        207116 Feb 16 13:15 vmware-20.log
-rw-------    1 root     root        209982 Feb 16 13:15 vmware-21.log
-rw-------    1 root     root        212947 Feb 16 13:15 vmware-22.log
-rw-------    1 root     root        444723 Feb 16 13:15 vmware-23.log
-rw-------    1 root     root        260714 Feb 16 13:15 vmware-24.log
-rw-------    1 root     root        255139 Feb 16 16:00 vmware.log
[root@alien:/vmfs/volumes/5e493010-d9f2cbf0-c496-64006a66bf47/Nextcloud]
.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "11"
virtualHW.productCompatibility = "hosted"
vmci0.present = "TRUE"
vmci0.id = "-986178109"
vmci0.pciSlotNumber = "34"
floppy0.present = "FALSE"
memSize = "2048"
bios.bootRetry.delay = "10"
sched.cpu.units = "mhz"
sched.cpu.affinity = "all"
sched.cpu.min = "0"
sched.cpu.shares = "normal"
sched.cpu.latencySensitivity = "normal"
sched.scsi0:0.shares = "normal"
sched.scsi0:0.throughputCap = "off"
sched.mem.min = "0"
sched.mem.minSize = "0"
sched.mem.shares = "normal"
powerType.powerOff = "soft"
powerType.suspend = "soft"
powerType.reset = "soft"
tools.upgrade.policy = "manual"
tools.syncTime = "FALSE"
tools.remindInstall = "FALSE"
scsi0.virtualDev = "pvscsi"
scsi0.present = "TRUE"
scsi0.pciSlotNumber = "160"
scsi0.sasWWID = "50 05 05 68 fa 83 cd f0"
sata0.present = "TRUE"
sata0:0.deviceType = "cdrom-raw"
sata0:0.clientDevice = "TRUE"
sata0:0.fileName = "Cdrom"
sata0:0.present = "TRUE"
sata0.pciSlotNumber = "35"
usb.present = "TRUE"
usb.pciSlotNumber = "32"
usb:1.speed = "2"
usb:1.present = "true"
usb:1.deviceType = "hub"
usb:1.port = "1"
usb:1.parent = "-1"
ehci.present = "TRUE"
ehci.pciSlotNumber = "33"
ethernet0.virtualDev = "vmxnet3"
ethernet0.networkName = "VM Network"
ethernet0.addressType = "generated"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.uptCompatibility = "TRUE"
ethernet0.present = "TRUE"
ethernet0.generatedAddress = "00:0c:29:38:1d:c3"
ethernet0.pciSlotNumber = "192"
ethernet0.generatedAddressOffset = "0"
displayName = "Nextcloud"
guestOS = "ubuntu-64"
toolScripts.afterPowerOn = "TRUE"
toolScripts.afterResume = "TRUE"
toolScripts.beforeSuspend = "TRUE"
toolScripts.beforePowerOff = "TRUE"
uuid.bios = "56 4d 4f 88 fa 83 cd fe-40 aa 7e 2d c5 38 1d c3"
uuid.location = "56 4d ed 3d 2d f1 c9 5a-e5 b2 f8 22 81 a4 bf 1f"
vc.uuid = "52 ae a4 02 b9 48 a0 23-60 3f e8 0b c4 c3 59 f5"
extendedConfigFile = "Nextcloud.vmxf"
nvram = "Nextcloud.nvram"
pciBridge0.present = "true"
pciBridge0.pciSlotNumber = "17"
pciBridge4.present = "true"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge4.pciSlotNumber = "21"
pciBridge5.present = "true"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge5.pciSlotNumber = "22"
pciBridge6.present = "true"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge6.pciSlotNumber = "23"
pciBridge7.present = "true"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
pciBridge7.pciSlotNumber = "24"
svga.present = "true"
svga.guestBackedPrimaryAware = "true"
hpet0.present = "true"
RemoteDisplay.maxConnections = "-1"
vcpu.hotadd = "true"
replay.supported = "false"
monitor.phys_bits_used = "42"
vmotion.checkpointFBSize = "4194304"
vmotion.checkpointSVGAPrimarySize = "4194304"
softPowerOff = "FALSE"
checkpoint.vmState.readOnly = "FALSE"
migrate.hostLog = "./Nextcloud-5032ccb2.hlog"
toolsInstallManager.updateCounter = "6"
uuid.action = "keep"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "Nextcloud0-000002.vmdk"
scsi0:0.present = "TRUE"
sched.swap.derivedName = "/vmfs/volumes/5b9c8b63-6ac3b44d-71b9-3464a99a57e4/Nextcloud/Nextcloud-70d41263.vswp"
replay.filename = ""
scsi0:0.redo = ""
cleanShutdown = "TRUE"
SCSI0:0.ctkEnabled = "True"
ctkEnabled = "TRUE"
usb:0.present = "TRUE"
usb:0.deviceType = "hid"
usb:0.port = "0"
usb:0.parent = "-1"

Recommend Projects

  • React photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

Обновлено 07.06.2022

virtual machine disks consolidation is needed

Добрый день уважаемые читатели, сегодня расскажу как решается ошибка висящая на виртуальной машине в ESXi 5.5 и звучит она virtual machine disks consolidation is needed. Если перевести это дословно, то вас культурно просят восстановить целостность виртуальной машины, так как это не совсем хорошо, из за этого она может очень сильно проседать по производительности, и как следствие все сервисы в ней.

Устраняем virtual machine disks consolidation is needed в ESXI 5

Вот так вот выглядит эта ошибка, некое такое предупреждающее сообщение на вкладке Summary.

Ошибка virtual machine disks consolidation is needed в ESXI 5.x.x-01

Ошибка virtual machine disks consolidation is needed в ESXI 5.x.x-01

Возникла ошибка virtual machine disks consolidation is needed в ESXI 5.x.x, причина это удаление snapshot. После его удаления остались файлы которые не смогли слиться с основным файлом виртуального диска, и требуется провести консолидацию. Выбираете нужную машину правым кликом меню Power-Consolidate.

Ошибка virtual machine disks consolidation is needed в ESXI 5.x.x-02

Ошибка virtual machine disks consolidation is needed в ESXI 5.x.x-02

После чего произойдет слияние дисков, и предупреждение пропадет. Сам процесс слияние или merge может идти долго, все будет зависеть от некоторых факторов

  • Загруженность виртуальной машины
  • Ее размер
  • Количество снапшотов, которые нужно консолидировать

У меня были случаи в практике, что виртуалка так консолидировалась 3 дня.

Устраняем virtual machine disks consolidation is needed в vCenter 7

На текущий момент у меня гипервизоры ESXI 7, тут эта ошибка так же легко встречается.

virtual machine disks consolidation is needed в vCenter 7

Тут принцип устранения такой же, выключите виртуальную машину и откройте контекстное меню «Snapshot — Consolidate«.

Консолидация диска в vCenter 7

Дожидаемся когда закончиться наше задание консолидации.

Процесс консолидации дисков

После завершения задания убедитесь, что статус «virtual machine disks consolidation is needed» пропал.

Успешная консолидация дисков

Что делать, если штатная консолидация не помогла

Вот интересная ситуация, вроде бы задание отработало, но вот статус у виртуальной машины остался «Virtual machine disks consolidation is needed», лишь цвет предупреждения сменился на уведомительный.

Virtual machine disks consolidation is needed

Тут проблема в том, что если вы на уровне датастора посмотрите файлы виртуальной машины, то сможете обнаружить, что там много файлов от снимков.

Список снапшотов в файлах виртуальной машины

Чтобы это поправить, вам необходимо в ручном режиме, создать снапшот и затем его просто удалить. Это позволит механизму обнаружить все имеющиеся снимки и объединить их.

Создание снапшота в vCenter 7

Как объединить снимки из PowerCLI

Все эти же действия можно сделать и через PowerCLI, как его устанавливать смотрите по ссылке слева. Первое, что делаем, это подключаемся или к хосту или к vCenter серверу. Далее нам нужно получить список виртуальных машин с остатками от снимков. Чтобы получить список виртуальных машин, сообщающих о проблеме «Требуется консолидация дисков виртуальных машин», мы можем вызвать командлет Get-VM, чтобы определить, требуется ли консолидация виртуальных машин.

$VMs = Get-VM | Where-Object {$_.ExtensionData.RunTime.ConsolidationNeeded}

Далее выведем просто $VMs. В моем примере нашлось несколько виртуальных машин, где требуется консолидация.

объединение дисков виртуальных машин powercli

Теперь, чтобы объединить диски, вам нужно выполнить:

Get-VM | Where-Object {$_.Extensiondata.Runtime.ConsolidationNeeded} | foreach {$_.ExtensionData.ConsolidateVMDisks_Task()}

или
ForEach ($VM in $VMs)

{ (Get-VM $VM).ExtensionData.ConsolidateVMDisks() }

Надеюсь вам помогла эта заметка и вы смогли устранить ошибку virtual machine disks consolidation is needed

Скрипт PowerShell для проверки и уведомлений по данной ошибке

Описанный ниже скрипт выполняет такие задачи:

  • 1️⃣Ведет лог с долгохранящимися снапшотами и дисками в статусе «disks consolidation is needed»
  • 2️⃣Проверяет снапшоты старше 30 дней
  • 3️⃣Проверяет виртуальные машины на предмет статуса «disks consolidation is needed»
  • 4️⃣отправляет на почту таблицу с результатами критериев

# Создаем папку с логами если ее нет и будим писать лог файл с датой в виде имени сюда
function Date {Get-Date -Format «yyyy.MM.dd HH:mm:ss»}

$log_folder = «$PSScriptRootLogs» + $($MyInvocation.MyCommand.Name -replace («.ps1», «»))
$log = «$log_folder$(Get-Date -Format «yyyy_MM_dd_HH_mm_ss»).txt»

# Объявляем имя vCenter сервера
$viserver = «vcenter.root.pyatilistnik.org»

###

if (! (Test-Path $log_folder -ErrorAction SilentlyContinue))
{
New-Item $log_folder -ItemType D -Force
}

### Подгружаем VMware.PowerCLI модуль

«$(Date) Start Processing» | Tee-Object $log -Append

«$(Date) Trying to import VMware.PowerCLI module» | Tee-Object $log -Append
try {
Import-Module VMware.PowerCLI -ErrorAction Stop
}
catch {
«$(Date) $($_.exception.message)» | Tee-Object $log -Append
Break
}

# Соединяемся с vCenter сервером
«$(Date) Trying to connect to VIServer $viserver» | Tee-Object $log -Append

# New-VICredentialStoreItem -Host $viserver –User «pyatilistnikAdmin» –Password «*****»
# Get-VICredentialStoreItem
try {
Connect-VIServer -Server $viserver -Force -ErrorAction Stop #-User pyatilistnikAdmin
}
catch {
«$(Date) $($_.exception.message)» | Tee-Object $log -Append
Break
}

### Получаем виртуальные машины у которых снапшоту более 30 дней

«$(Date) Trying to get list of VM Snapshots older than 30 days» | Tee-Object $log -Append
$snapshots = $null
try {
$snapshots = Get-VM | Get-Snapshot | ? {$_.created -le (Get-Date).AddDays(-30)}
}
catch {
«$(Date) $($_.exception.message)» | Tee-Object $log -Append
Break
}

«$(Date) Total snapshots: $($snapshots.Length)» | Tee-Object $log -Append

### Проверка дисков на предмет необходимости консолидироваться

«$(Date) Trying to get list of VM where disk consolidation is needed» | Tee-Object $log -Append
$vms_cons_needed = $null
try {
$vms_cons_needed = Get-VM | ? {$_.Extensiondata.Runtime.ConsolidationNeeded}
}
catch {
«$(Date) $($_.exception.message)» | Tee-Object $log -Append
Break
}

###

$snapshots_data = @()

foreach ($snapshot in $snapshots)
{
$snapshot_data = New-Object PSObject

$snapshot_data | Add-Member -MemberType NoteProperty -Name «VM» -Value $snapshot.VM
$snapshot_data | Add-Member -MemberType NoteProperty -Name «Description» -Value $snapshot.Description
$snapshot_data | Add-Member -MemberType NoteProperty -Name «Created» -Value $(Get-Date $snapshot.Created -Format «dd.MM.yyyy»)
$snapshot_data | Add-Member -MemberType NoteProperty -Name «Size, GB» -Value $([math]::Round($snapshot.SizeGB, 1))

# $snapshots | select VM, Description, Created, SizeGB | ConvertTo-Html

$snapshots_data += $snapshot_data
}

###

$vms_cons_needed_out = @()

foreach ($vm in $vms_cons_needed)
{
$vm_consolitation_needed = New-Object PSObject

$vm_consolitation_needed | Add-Member -MemberType NoteProperty -Name «Name» -Value $vm.Name

$vms_cons_needed_out += $vm_consolitation_needed
}

### Формируем список получателей

if ($snapshots.Length -gt 0)
{
$from = «tech@tech.pyatilistnik.org»
$to = «semin@pyatilistnik.org»#
# $cc1 = «test2@pyatilistnik.org»
# $cc2 = «semin@pyatilistnik.org»
# $cc3 = «test2@pyatilistnik.org»
$Subject = «Check important VM Info»
$smtpserver = «tech.pyatilistnik.org»
$secure = $true
$port = 587 # TLS, for SSL use 465
$username = «tech»
$password = ‘*********’

$Header = @»

# Формируем таблицу с данными
<style>
TABLE {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;}
TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
TH {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
«@
$body = $null
$body += «<p>VM Snapshots older than 30 days:»

$body += $snapshots_data | select VM, Description, Created, «Size, GB» | ConvertTo-Html -Head $Header

$body += «<p>Also check VMs where disk consolidation is needed:»

$body += $vms_cons_needed_out | select Name | ConvertTo-Html -Property «Name» -Head $Header

$body += «<p>Generated on $($env:COMPUTERNAME + «.» + $((Get-WmiObject Win32_ComputerSystem).Domain))»

$message = New-Object System.Net.Mail.MailMessage
$message.From = $from
$message.To.Add($to)
# $message.CC.Add($cc1)
# $message.CC.Add($cc2)
# $message.CC.Add($cc3)
# $message.CC.Add($cc4)
$message.Subject = $Subject
$message.Body = $body
$message.IsBodyHtml = $true

$smtp = New-Object Net.Mail.SmtpClient($smtpserver, $port)
$smtp.EnableSsl = $secure
$smtp.Credentials = New-Object System.Net.NetworkCredential($username, $password)

«$(Date) Trying to send e-mail notification» | Tee-Object $log -Append

try {
$smtp.Send($message)
}
catch {
«$(Date) $($_.exception.message)» | Tee-Object $log -Append
}
}

###

«$(Date) End Processing» | Tee-Object $log -Append

На выходе вы будите получать вот такого рода таблицу.

скрипт disks consolidation is needed

Дополнительно

Может быть ситуация, что вы используете прокси Veeam, для ускорения резервного копирования и в нем могут застревать диски, которые будут приводить к проблеме консолидации.

Предупреждение ‘Virtual Machine disks consolidation is needed’ на вкладке Summary виртуальной машины в консоли VMWare vSphere Client означает, что при удалении снапшотов (операция Delete или Delete All) на диске остались файлы, которые не удалось слить (commit) с основным файлом виртуального диска (vmdk). В результате вы не можете выполнить резервное копирование такой виртуальной машины, а ее производительность сильно деградирует.

ошибка в консоли vmware: Virtual Machine disks consolidation is needed.

Virtual machine Consolidation Needed status.
Virtual Machine disks consolidation is needed.

Содержание:

  • Как выполнить консолидацию дисков в VMware?
  • Ошибки блокировки файлов при консолидации дисков VMware
  • Консолидация снапшотов ВМ VMware с помощью PowerCLI

Самые распространённые причины появления ошибки consolidation is needed:

  • Плохая производительность дискового хранилища, из-за которого удаление/консолидация снапшотов отваливаются по таймауту или большого размера снапшота;
  • На VMFS хранилище недостаточно места для выполнения консолидации, должно быть свободно не менее 1 Гб (см. как расширить VMFS в VMware ESXi);
  • Файлы снапшотов заблокированы vSphere или сторонним приложением (как правило это приложение резервного копирования, HP DataPtotector, Veeam или Netapp VSC). Убедитесь, что отсутствует запушенные процессы резервного копирования виртуальной машины;

    Проблема может быть вызвана добавлением дисков ВМ (hot-add) в апплайенс резевного копирования при выполнении бэкапов. В некоторых случаях нужно вручную отключить диски проблемных ВМ в настройках апплайенса резервного копирования (встречается в Veeam Backup Proxy, Symantec NetBackup и CommVault Media Agent).

  • У ВМ более 32 снапшотов (максимальное количество, рекомендуемое VMware);
  • Идет консолидация больший снапшотов;
  • Проблемы с потерей подключения (возможно временные) между серверов vCenter и хостом ESXi.

Как выполнить консолидацию дисков в VMware?

Для исправления ошибки «Virtual machine Consolidation Needed status» необходимо щелкнуть ПКМ по виртуальной машине и выбрать в меню пункт Actions -> Snapshots -> Consolidate.

vmware esxi запустить консолидацию vmdk

Появится окно с запросом:

Confirm Consolidate
This operation consolidates all redundant redo logs on your virtual machine. Are you sure you want to continue?

подтвердите запуск консолидации и удаление избыточных логовzapusk-konsolidacii

Подтвердите удаление избыточных логов. После этого vCenter выполнит консолидацию дисков и очистку логов. Процесс консолидации может идти долго в зависимости от размера ВМ, количества снапшотов и текущей нагрузки. Во время выполнения консолидации производительность ВМ может ухудшиться. Дождитесь окончания выполнения задания Consolidate virtual machine disk files и очистки логов.

выполняется задание запуск консолидации виртуальных дисков vmware

При выполнении консолидации данные из дельта дисков сливаются с основным диском и лишние файлы на хранилище удаляются. После этого предупреждение о необходимости консолидации ВМ исчезнет.

Ошибки блокировки файлов при консолидации дисков VMware

В некоторых случая при выполнении консолидации в консоли vSphere может появится ошибка:

Unable to access file since it is locked. An error occurred while consolidating disks: Failed to lock the file. Consolidation failed for disk node ‘scsi0:0’: Failed to lock the file.

Или

Consolidate virtual machine disk files - Unable to access file since it is locked.

An error occurred while consolidating disks: Failed to lock the file

VMware в этом случае рекомендует выполнить перезапуск агентов Management agents на сервере ESXi. Для этого нужно подключиться к хосту ESXi по SSH и выполнить команду:

services.sh restart

services.sh restart перезапуск Management agents

Если это не помогло, проверьте кто заблокировал файлы виртуальной машины.

  1. Перейдите в каталог ВМ на VMFS хранилище:
    # cd /vmfs/volumes/xxxxxx-xxxxxx-xxxx-xxxxxxx/VM_NAME
  2. Выведите список заблокированных файлов ВМ и какие хосты ESXi держат данные файлы:
    # for i in `ls`; do vmfsfilelockinfo -p $i ;done|grep 'is locked in|Host owning the lock|Total time taken' | sed 's|Host owning the lock on file is||g'|sed 's|Total time|---|g' | awk '{print $1}' |uniq
  3. Предыдущая команда вернёт примерно такой результат:
    ---
    "VM_NAME-df23cba2.vswp"
    esxi1,
    ---
    "VM_NAME-flat.vmdk"
    esxi2,
    esxi1
  4. В данном примере видно, что файл VM_NAME-flat.vmdk заблокирован сразу двумя хостами. Чтобы снять блокировку файла вторым хостом, подключитесь к esxi2 по SSH и выполните команды:
    /etc/init.d/hostd restart
    /etc/init.d/vpxa restart
  5. Еще раз запустите консолидацию из интерфейса vSphere Client.

Однако вы можете попробовать разблокировать файлы виртуальной машины так:

  1. Выключите виртуальную машины (если возможно);
  2. Создайте новый снапшот;
  3. Удалите все снапшоты ВМ с помощью пункта «Delete All Snapshots»;
  4. Переместите ВМ на другой ESXi с помощью vMotion;
  5. Попробуйте выполнить консолидацию снапшотов как указано выше.

виртуальная машина vmware удалить все снапшоты

Если опция Consolidate не активна в меню (серая кнопка), а в хранилище все еще находится большое количество дельта файлов снапшотов, скорее всего нарушена целостность цепочки снапшотов (ошибка Unable to enumerate all disks).

кнопка consolidate snapshot не активна

Попробуйте вручную удалить ВМ из списка (Remove from Inventory) и зарегистрировать VMX файла виртуальной машины из Datastore Browser. Если это не помогло, проверьте и исправьте ошибки в цепочке снапшотов как описано в статье “
The parent virtual disk has been modified since the child was created
” (https://kb.vmware.com/s/article/1007969).

Консолидация снапшотов ВМ VMware с помощью PowerCLI

Вы можете найти все виртуальные машины VMware, которые требуют консолидации с помощью PowerCLI (специальный модуь PowerShell для управления инфраструктурой VMware). Для этого подключитесь к своему серверу vCenter (или хосту ESXi):

Connect-VIServer vsphere.winitpro.ru

Чтобы получить список всех ВМ со статусом «Virtual machine disks consolidation is needed»:

Get-VM | Where-Object {$_.Extensiondata.Runtime.ConsolidationNeeded}

Теперь можно выполнить консолидацию дисков всех полученных ВМ:

Get-VM | Where-Object {$_.Extensiondata.Runtime.ConsolidationNeeded} | foreach {$_.ExtensionData.ConsolidateVMDisks_Task()}

PowerCLI выполнить консолидацию ConsolidateVMDisks_Task

Можно выполнить автоматическую консолидацию снапшотов ВМ старше 30 дней с помощью такого PowerShell скрипта:

$VMName = Get-VM | Get-Snapshot |
Where {$_.Created -lt (Get-Date).AddDays(-30)} | select VM |
ForEach-Object {
$VMName.ExtensionData.ConsolidateVMDisks()
}

Понравилась статья? Поделить с друзьями:
  • Unable to enum cuda gpus unknown error
  • Unable to enter game generic bad file diablo 2 как исправить
  • Unable to enter game bad header diablo 2 как исправить
  • Unable to elevate error 1058
  • Unable to download video data http error 403 forbidden