Remove from inventory vmware что это
Remove from inventory vmware что это
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов на просторах рунета Pyatilistnik.org. В прошлый раз мы с вами успешно определили причину медленной работы компьютера, который тормозил из-за компонента software reporter tool встроенного в Google. Двигаемся дальше и сегодня разберем ситуацию, когда вам необходимо удалить виртуальную машину на гипервизоре Vmware ESXI 6.5 и выше. Думаю это будет полезно для новичков, которые кроме графического метода могут быть не знакомы с другими.
Постановка задачи
В моей инфраструктуре есть система управления виртуализацией VMware vSphere 7 и кластер построенный на базе ESXI 6.5. Недавно я создавал новую отказоустойчивую терминальную ферму HA RDS на базе Windows Server 2016, состоящую из 50 виртуальных машин. RDS ферма работает без проблем и нареканий, поэтому старые виртуальные сервера от фермы на базе Windows Server 2012 R2 я могу смело удалять, но я хочу их удалить разными методами, чтобы напомнить что-то себе и научить чему-то вас.
Удаление виртуальной машины через vSphare или ESXI интерфейс
Данный метод по удалению виртуальной машины со всеми файлами является самым простым. Его суть заключается в том, что вы будите использовать веб-интерфейс вашего гипервизора. В vCenter переходите в раздел «Hosts and Clusters» и среди списка серверов находите нужный в моем примере, это будет виртуальная машина term82. Щелкаем по нему правым кликом мыши и из контекстного меню выберите пункт «Delete from disk«
Вас еще раз предупредят, что файлы виртуального сервера будут уничтожены, вам нужно подтвердить действие.
То же самое вы можете выполнить и на самом веб-интерфейсе отдельного ESXI хоста. Находите нужную виртуальную машину и так же через контекстное меню вы выбираете пункт «Delete», это более понятная формулировка, чем в vSphere.
Тут так же нужно подтвердить свое действие по удалению.
Как удалить виртуальную машину через PowerCLI
Чем плохи графические методы, это отсутствием автоматизации и невозможностью массового удаления виртуальных машин. Предположим, что вам нужно бахнуть 50 серверов, сколько времени вы потратите на это и графики, а если вообще нужно выполнить удаленно. Поэтому вы должны использовать оболочку PowerCLI. Он устанавливается в систему отдельно, как это сделать я рассказывал вот тут.
Подключаемся к нашему vCenter серверу или ESXI хосту. Для этого введите в оболочке команду:
Далее есть такой командлет Get-VM, который может вам показать наличие нужных виртуальных машин. Мои виртуальные машины все называются term70-80. Зная это я могу вывести полный список.
Далее для удаления виртуальной машины есть командлет Remove-VM со своими ключами:
Давайте теперь для примера удалим виртуальную машину term79, для этого введите:
У вас появится подтверждение на удаление, говорим «Y«.
Н на самом деле ваша виртуальная машина не удалена, а просто теперь не зарегистрирована на vCenter, об этом говорит задание «Unregister virtual machine«.
Файлы сервера все также продолжают лежать на датасторе.
У вас выскочит подтверждение ваших действия, если нажмете «Y», то файлы VM будут полностью удалены.
В веб интерфейсе вы увидите задание по удалению сервера.
Как массово удалить виртуальную машину через PowerCLI
После знакомства с командлетами нужно научиться автоматизировать наши задания и посмотреть, как сделать все то же самое, но с большим количеством серверов. Тут есть несколько простых конструкций. Создадим переменную с двумя серверами:
То же самое можно сделать имя файл со списком серверов, который так же помещается в переменную. Вам нужно заранее подготовить обычный txt файл, где каждый сервер будет находится на новой строке. Далее есть такой командлет Get-Content. Пишем:
Далее выполняем команду по удалению виртуалок.
После выполнения команды, если вывести запрос по поиску всех серверов с именем term*, то мы ничего не обнаруживаем.
Если в этот момент посмотреть vCenter, то тут вы увидите массовые задания по удалению.
Так же я могу с вами поделиться полезным скриптом, который проверяет статус виртуальной машины, если она работает, то идет выключение, а уже потом удаление.
# Производим удаление виртуальных машин
Remove virtual machine
Two options are available to remove a virtual machine in vSphere:
Here is how you can remove a VM from the inventory using vSphere Web Client:
1. To only remove a VM from the inventory, right-click the VM and select All vCenter Actions > Remove from Inventory:
2. Click Yes to confirm the removal:
3. The VM will no longer be present in the inventory:
You can re-register the VM back to the inventory:
1. Browse to the location of the VM’s .vmx file on the datastore. Right-click the file and select the Register VM option.
2. The Register Virtual Machine wizard opens. Select the inventory location:
3. Select the ESXi host on which the VM should run:
4. Review the settings and click Finish:
5. The VM should be back in the inventory:
You can also delete a VM from the inventory and delete its files from the datastore:
1. Right-click the VM and select All vCenter Actions > Delete from Disk:
2. Click Yes to confirm the deletion:
3. The VM will no longer be present in the inventory or on the datastore. Note that this action is irreversible.
How to deal with orphaned virtual machines
Table of contents
From time to time, you may come across a virtual machine that is marked as orphaned in the vSphere inventory. What this means, in general, is that the VM exists as data in the vCenter server database but has either been deleted or is wrongly registered elsewhere. A number of factors can lead to this unwanted scenario. These include a failed host failover or a DRS migration gone wrong. It could also be the case of someone removing a VM from inventory when connected directly to ESXi instead of vCenter Server.
Another common cause is when vCenter server – or its database – is restored from a backup or a snapshot. In my case, this latter scenario is what prompted me to write this post. I recently had to revert a vCenter Server back to a snapshot after the VC database decided to call it a day. A few of the VMs deleted after the snapshot was first taken, found their way back in the inventory albeit marked as orphaned. Removing them, turned out to be an impossible task were it not for my trusty old friend PowerCLI
There are a number of ways to deal with orphaned VMs some of which I’ll be covering today where I’ll be targeting vSphere 6.5 and using the vSphere Web client throughout the post.
The Easy Fix
The first remedial action you should take is as follows.
Step 1 – SSH to the ESXi host where the orphaned VM resides and run the following:
This commands restarts all the host management services. Repeat this for every ESXi hosting orphaned VMs. The same can be carried out from DCUI by selecting Restart Management Agents from Troubleshooting Options as per Fig. 1.
Figure 1 – Restarting the ESXi management agents from the DCUI
Step 2 – Restart the vpxd service (vCenter Server service) on vCenter Server. The method used varies according to the vSphere release at hand and whether you have vCenter Server for Windows deployed or vCenter Server Appliance. Regardless, here are the relevant KB articles:
Recovering Orphaned VMs (that still exist on disk)
The vSphere Way
An orphaned virtual machine will have the string (orphaned) appended to its name like so.
Figure 2 – Orphaned VMs as they appear listed in vSphere Web Client
If you’re pretty sure that an orphaned VM still exists on disk, then it’s just a matter of locating the parent datastore and folder and use its VMX file to properly add it back to inventory.
The following procedure will enable you to register an orphaned VM back to inventory.
Step 1 – Locate the VM folder on the respective datastore. If the VM has multiple hard drives spread across different datastores, chances are that the VMX file is to be found at the location set for Hard Disk 1 as shown in Fig. 3.
Figure 3 – Finding an orphaned VM’s primary folder on a datastore
Step 2 – Click on the datastore link. This launches the browser view which exposes the VM folder hierarchy for the specific datastore.
Figure 4 – Navigating the VM folder hierarchy in vSphere Web Client
Now, you might not be able to find the folder for the orphaned VM simply because the VM was renamed and the name change was not reflected in the folder name. I tackle how to solve this issue in my Fixing VM folder naming discrepancies post.
Note: It could also be the case that a VM exists as files on a datastore but is not registered anywhere. Although technically not an orphaned VM, it is important to keep this scenario in mind when troubleshooting. I’ve written a post on the subject that explores a PowerCLI script that should fix things for you.
Step 3 – Once you verify that the VM files exist and are the correct ones, right-click on the VMX file and select Register VM. However, before you do this, return to the VMs and Templates view in vSphere client, right-click on the orphaned VM and select Remove from inventory. The complete procedure is available here.
Figure 5 – Registering and removing a VM from inventory
The ESXi command line way
Additionally, you can use the ESXi command line to achieve the same result as follows:
Figure 6 shows an established SSH session on an ESXi host. You will find all the datastores under the /vmfs/volumes directory. In this example, I’m interesting in registering a VM called loginsight as per the commands captured in the screenshot.
The vim-cmd throws an error if it finds that the VM is already registered. This was my case since the VM was correctly registered on ESXi but not on vCenter Server. Just to demonstrate command usage, I first removed the VM from inventory while connected to ESXi using the vSphere client.
After running the vim-cmd a second time, the VM registered and showed up properly in vCenter Server.
Figure 6 – Using vim-cmd solo/registervm on ESXi to register a virtual machine
Removing Orphaned VMs from Inventory (those that do not exist on disk)
Going back to my primary issue, as mentioned, I came across an instance where I could not remove a number of orphaned VMS from the inventory after having reverted vCenter Server from a snapshot. I was 100% sure that the VMs no longer existed as files on any of the mounted datastores, meaning that I could just go ahead and delete them. The problem turned out to be one where the VM context menu offered no options to this effect.
Figure 7 – An unmanageable orphaned VM
This KB article suggests that one should create a VM folder and drag the offending VMs to it in vSphere Web client. Deleting the folder should supposedly delete the VMs as well. The problem with this, however, is that yet again all the VM menu options were either ghosted out or not available at all. Not really a good start! So, what to do?
While playing around with PowerCLI, I came across the ExtensionData.Runtime.ConnectionState property when querying one of the orphaned VMs. In the case of orphaned VMs, the value for this is set to, wait for it, orphaned. This, for a starter, allows you to easily list all the orphaned VMs in your environment. Here’s one way of doing it.
On the command line, if you wish, you can also type this as a one-liner:
Figure 8 shows the result of the executed code.
Figure 8 – A list of orphaned VMs in vSphere
A minor modification to the code will allow you to delete all the offending VMs in one go. To do this, we use the Remove-VM cmdlet. We just need to change the behavior of the If statement like so:
To suppress prompting, just add -Confirm:$false to the Remove-VM cmdlet.
Figure 9 – Removing orphaned VMs with the Remove-VM cmdlet in PowerCLI
Conclusion
This pretty much sums up all I wanted to say about orphaned VMs. On rare occasions, orphaned VMs will find their way into your environment due to a number of reasons. The more complex your environment, the harder it will be to locate the exact cause but in general orphaned VMs are an easy fix as we’ve seen.
If you have any questions or would like me to add anything, by all means leave me a comment below.
Remove from inventory vmware что это
Добрый день! Многие компании сейчас все чаще переносят свои ресурсы и сервисы к облачным провайдерам, таким как AWS, Azure или vCLoud Director. Сама миграция может происходить как создание в облаке нового сервера и ручной перенос сервисов, либо же миграция виртуальной машины, после P2V конвертирования. В момент переноса виртуальной машины в облако VMware vCLoud Director, я получал ошибку » The OVF package requires hardware version 13 but the selected VDC only supports hardware version 11«. Из ошибки следовало, что моя версию виртуальной машины, более новая, чем поддерживает провайдер. Тут вариантов было несколько, увеличить версию поддержки, либо же понизить версию виртуального аппаратного обеспечения (Virtual Hardware Version / VM version). В данной заметке, я вам покажу, как можно быстро изменить версию VM version, на нужную вам.
Что такое уровень виртуального аппаратного обеспечения
Еще в старых версиях VMware ESXI 5.5 вы могли сталкиваться с ситуацией, когда вы не могли управлять из толстого клиента vCenter, виртуальными машинами, у которых версия виртуального аппаратного обеспечения была 10-й и вы видели сообщение:
Администраторам уже тогда, в некоторых случаях, требовался откат версии виртуального оборудования, до 9-й или 8-й. Хотя компанию Vmware понять можно, она семимильными шагами загоняла всех в vSphere Web Client.
Как посмотреть версию виртуального оборудования, я вам уже показывал, можете ознакомиться. В моем примере есть тестовая виртуальная машина с Windows Server 2012 R2, как видите, у нее версия виртуальной машины (VM version) 13-я.
Методы понижения (downgrade) версии виртуального оборудования
Существует несколько методов, которые вам помогут уменьшить версию «VM version» у нужной вам виртуальной машины, среди них есть как официальные. так и не очень:
Downgrade через редактирование virtualHW.version
Так как мне дорого мое время, то я использую для понижения версии виртуального оборудования на ESXI хостах, метод с редактированием параметра virtualHW.version в конфигурационном файле виртуальной машины. Вы скачиваете либо, через vSphere Web Client, либо через ssh конфигурационный файл формата *.vmx.
В веб-интерфейсе откройте вкладку «Datastores», и выберите там пункт «Browse Files», для просмотра содержимого на данном хранилище.
Далее, когда вы получили конфиг-файл, вы редактируете его любым текстовым редактором. В файле находите параметр virtualHW.version = «13», в моем случае VM version имеет 13 версию, я поменяю ее на 11. Копируете фал обратно с заменой оригинального и проверяете результат, у вас при включении виртуальной машины должна понизиться версия виртуального оборудования.
В итоге когда я включил свой сервер, то лицезрел цифру 11.
Изменение версии оборудования, через VMware vCenter Converter Standalone
Этот метод, гораздо более время затратный, и потребует установки конвертера VMware vCenter Converter.
Открываете его и нажимаете кнопку «Convert machine».
Производите подключение к вашему vCenter серверу или Vmware ESXI хосту, убедитесь, что у вас стоит пункт «Power Off», означающий, что виртуальная машина отключена.
В пункте «Specify machine with» поставьте значение «VMs and Templates», в структуре датацентров, найдите вашу виртуальную машину.
Далее вам нужно подключиться к Vcenter серверу или ESXI хосту, куда будет конвертироваться виртуальная машина, у которой будет понижена версия VM version.
Задаете новое имя виртуальной машине и нажимаете «Next».
На следующем шаге выберите на каком ESXI хосте у вас будет располагаться ваша виртуалка и задайте ей нужную версию «Virtual machine version». После того, как задание будет выполнено, вы получите downgrade виртуального аппаратного обеспечения.
Пересоздание виртуальной машины
Тоже так себе метод, так как вам придется восстановить конфигурацию в первозданном виде, хорошо если у вас нет привязок по mac адресам или другим аппаратным GUID, а если есть, то придется выполнить дополнительные действия. Щелкаем по нужному серверу и выбираем из контекстного меню пункт «Remove from inventory». В итоге у вас ваша машинка не удалится с дисков, а просто исчезнет из списка зарегистрированных на vCenter сервере.
Далее вы создаете новую виртуальную машину, задаете ей другое имя отличное от старой. На шаге 2d Select compatibility вы выбираете версию виртуалки. Таблицу версий можно посмотреть вот тут.
На шаге 2f удалите все виртуальные диски и выберите пункт существующие диски «Exsisting Hard Disk».
Найдите ваши виртуальные диски на вашем датасторе и добавьте их.
Как видите данный метод, не менее трудоемкий, чем второй. Вы сами вправе выбирать любой из методов, подходящих именно вам. Если вы знаете другие, то напишите их в комментариях, буду вам признателен. Остались вопросы, так же готов их с вами обсудить, а пока вы пишите, я перевожу сервисы и ресурсы в VMware vCLoud Director.
Remove from inventory vmware что это
Добрый день! Уважаемые читатели и гости блога pyatilistnik.org. В прошлый раз мы с вами разбирали две проблемные ситуации с виртуальными машинами Vmware ESXI, а именно, были найдены пути решения ошибок, при которых виртуалки имели статусы: Unknown VM (Inaccessible) и orphaned, unknown vm. Добавлю в нашу коллекцию статусов, еще один и звучит он вот так Invalid (Unknown). Его вы можете увидеть, как и на отдельном хосте, так и в vCenter, с работающей виртуалкой, так и с удаленной. Ну, что решим эту задачку.
Что означает статус Invalid (Unknown) на VMWare ESXi
Вообще ошибка Invalid (Unknown), очень частая проблема у начинающих системных администраторов и она может появляться по ряду причин:
Сама виртуальная машина, будет прозрачной.
Она может легко работать или быть выключенной. Самое печальное, что вы не сможете ее редактировать, перезагрузить или выключить, средствами Vmware.
Почти все доступные ранее пункты, будут не активны. Ниже мы рассмотрим ситуации, где действия будут свои.
Удаление старой виртуальной машины со статусом Invalid (Unknown)
Если вы обнаружили, что у вас есть старые записи, от не существующей виртуальной машины, по сути мусорная запись и вы хотели бы ее удалить, в виду наведения порядка, то в 99% случаев достаточно выполнить редактирование конфигурационного файла vmInventory.xml. Для этого нам потребуется включить ssh доступ на ESXI хост.
Далее подключаетесь по ssh к ESXI хосту, например, Putty или mRemoteNG. Далее нас интересует файл /etc/vmware/hostd/vmInventory.xml, но перед тем как его отредактировать, я вам советую сделать его резервную копию, например, подключившись по ssh через WinSCP и скопировать его копию, себе на компьютер и во вторых вам нужно получить идентификационный номер (ID), вашей виртуальной машины. Для этого выполните команду
В итоге вам будет показан список всех виртуалок, имеющих статус Invalid (Unknown), будет что-то вроде такого:
Удалить такую виртуальную машину, можно двумя методами.
Так же вы можете все выполнить и без визуального редактора, прямо из окна консоли, для этого выполните команды:
Как только все отредактировали, то вам необходимо перезапустить службы на хосте, с помощью команды:
Ремонт работающей виртуальной машины со статусом Invalid (Unknown)
В ситуации, когда виртуалка работает и хотелось бы вернуть возможность ее редактировать и взаимодействовать из самого ESXI, вы можете выполнить ряд действий, которые устранят статус Invalid (Unknown). Во первых, вы можете попробовать выполнить из консоли ssh, такие команды:
В ESXI 5.5, это выглядит вот так.
Если виртуалка работает и нет возможности ее выключить, перезагружаем ESXI хост. После чего создаем новую виртуальную машину. На этапе «Customize Hardware», где нужно указывать размер ваших ресурсов, удалите стандартно созданный диск, и нажмите кнопку Add. Выберите пункт «Существующий виртуальный диск (Existing Hard Disk).
И добавьте все ваши существующие диски, от прежней виртуальной машины. Запустите ее и проверьте, что все работает.
В ESXI 5.5, это выглядит так же, там нужно выбрать «Use an existing virtual disk».
Как только вы удостоверились, что все в порядке, осталось еще выполнить миграцию этих дисков в папку с виртуальной машиной, чтобы все было в одном месте. Для этого два пути, тупое копирование файлов и заново передобавлять их из конфигурации мастера или же сделать Storage VMotion.
Статус Invalid (Unknown) после потери связи с VMFS хранилищем
То же, очень частая ситуация, когда у вас по ряду причин может отвалиться ваше дисковое хранилище, например ISCSI. Когда доступ восстановился, то виртуалка вполне может иметь статус Invalid (Unknown), в таком случае удалите ее из инвентори (Remove From Inventory). Затем найдите на датасторе вашу виртуалку, щелкните правым кликом по конфигурационному файлу, и зарегистрируйте ее заново (Register VM). Пробуем ее включать.