Remove from inventory vmware что это

Обновлено: 07.07.2024

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

Зависшая блокировка файлов виртуальной машины VMware

Симптомы:
Внезапно пропал доступ к виртуалке на vmware, нет ни пинга, ни RDP.

В vCenter виртуалка vm-name в состоянии «недоступна», на вкладке Tasks&Events – ошибка «файл конфигурации недоступен». Состояние виртуалки меняется на разные степени недоступности (unknown/unaccessible) туда и обратно каждые секунд 10.

Лечение:
1) При попытке зайти в Browse Datastore – DS_name – каталог и файлы виртуалки есть. При попытке скопировать файлы виртуалки vm-name.vmx или vm-name.vmxf – тупит и говорит «ошибка копирования», без подробностей. Кроме того, есть файл блокировки vm-name.vmx

. Предполагая блокировку файлов, выводим в maintenance хост ESXi где она лежала (host13) – нормальные виртуалки с него съезжают, а эта так и остаётся. Перезагружаем, не дожидаясь завершения входа в режим обслуживания – результата нет. Видимо, это не тот хост.

2) Включаем (configuration – security profile – services) ssh и ESXi shell на произвольном хосте, в автостарт переводить не надо, просто запустить (options – start). Заходим на хост по ssh, смотрим что файлы точно есть:

vm-name-flat.vmdk vm-name_1-flat.vmdk
vm-name.nvram vm-name_1.vmdk
vm-name.vmdk vmware-1.log
vm-name.vmsd vmware-2.log
vm-name.vmx vmware.log
vm-name.vmx.lck vmx-vm-name-2489500763-1.vswp

Но все они заблокированы:

: Device or resource busy
touch: vm-name_1-flat.vmdk: Device or resource busy
touch: vmware.log: Device or resource busy
touch: vmx-vm-name-2489500763-1.vswp: Device or resource busy

Последний набор цифр из длинного GUID – это mac-адрес заблокировавшего хоста, 00:25:b5:06:0a:0e. Причем это, похоже, адрес первого адаптера eth0 – он не обязательно вообще участвует в сетевом трафике. Если вместо GUID одни нули – файл не заблокирован.

4) Методом перебора руками по Configuration – Network Adapters по всем хостам ESXi находим нужный хост, бывший владелец виртуалки, который никак её не отпустит. У нас это оказался host16. По идее, можно было бы его тоже перезагрузить и виртуалку бы отпустило, но мы пойдём более правильным путём. Не всегда перезагрузка хоста возможна из-за других виртуалок с RDM и т.п.

5) Де-регистрируем (не удаляем. 11!1), т.е. Remove from inventory, проблемную виртуалку. Зарегистрировать назад через vCenter оно не даёт – правой на .vmx файл, Add to inventory – неактивно. Заходим на хост, где пытались виртуалку запустить host13 при помощи vSphere Client напрямую. В виртуалках присутствует Unknown (unavailble) – так и должно быть по статье, смело дерегистрируем её, но никаких результатов это не даёт, ничего не меняется и зарегистрировать её по прежнему нельзя. Заходим на хост – последний владелец виртуалки host16 при помощи vSphere Client напрямую. На нём (и только на нём, а не на другом хосте или vCenter!) виртуалку можно зарегистрировать, что мы и делаем. Однако она, вместо нормального имени, регистрируется как Unknown (unavailble), включить её не получается, потому дерегистрируем назад.

6) Идём по статье дальше, включаем SSH и ESXi Shell на проблемном хосте – последнем владельце виртуалки host16, заходим на него по SSH. Смотрим, не осталось ли процессов, которые держат файлы виртуалки. Набор процессов конкретной виртуалки в терминологии VMware называется World. Запускаем:
esxcli vm process list
видим кучу запущенных виртуалок, в т.ч. нашу vm-name, здесь оно ещё помнит её по имени:

(…)
some-vm-1
World ID: 7100719
Process ID: 0
VMX Cartel ID: 7100718
UUID: 42 20 e7 a6 8b 37 ed 57-c8 c9 d5 1c 79 a1 c3 ba
Display Name: some-vm-1
Config File: /vmfs/volumes/549030ba-7ff1cf81-677b-002 5b5060a27/some-vm-1/some-vm-1.vmx

vm-name
World ID: 7100994
Process ID: 0
VMX Cartel ID: 7100993
UUID: 42 20 c4 55 06 c4 f6 a9-30 6e 61 a9 d2 39 d4 d5
Display Name: vm-name
Config File: /vmfs/volumes/549030ba-7ff1cf81-677b-002 5b5060a27/vm-name/vm-name.vmx

some-vm-2
World ID: 7100730
Process ID: 0
VMX Cartel ID: 7100727
UUID: 42 20 2d 16 90 d2 b1 4b-7d 79 d5 3c 38 48 45 ac
Display Name: some-vm-2
Config File: /vmfs/volumes/5490305f-51759a8e-fcd9-002 5b5060a27/some-vm-2/some-vm-2.vmx
(…)

Видим идентификатор мира, по которому можно убить все процессы виртуалки, что мы и делаем:
vm process kill --type=soft --world-id=7100994

процесс так сразу не убивается (soft), надо подождать пару минут.

8) Де-регистрируем (Remove from inventory) виртуалку на проблемном хосте, теперь с ней всё ок и её надо зарегистрировать на vCenter, что мы и делаем, в этот раз правой на файл .vmx – Add to inventory там активно. При регистрации vCenter ругается, что виртуалка с таким именем уже была, но зарегистрировать даёт. При включении виртуалки оно предупреждает, что он такую уже знал когда-то – и что вы с ней сделали? Ответ Move, который надо выбрать, сохраняет ID виртуалки и какие-то связанные с ним события для Operations Manager и т.п., в то время как ответ Copy (который выбирать не надо) сгенерирует новый ID.

9) Готово, виртуалку можно включать, мигрировать и т.п. – теперь с ней всё хорошо. Не забываем остановить ESXi Shell и ssh где запускали.

Постановка задачи

В моей инфраструктуре есть система управления виртуализацией 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"

Давайте я вам опишу чем отличается пункт "Delete from disk" и "Remove from Inventory":

  • Delete from disk - Полностью удаляет всю виртуальную машину со всеми файлами с ваших датасторов, без возможности ее восстановления штатными средствами
  • Remove from Inventory - Удаляет виртуальную машину из видимости "Hosts and Clusters", но сами файлы виртуальной машины будут все еще лежать на вашем датасторе, это используют например при переносе виртуальных машин между серверами vCenter, где файлы сервера просто добавляются в Inventory.

Как удалить виртуальную машину через vSphere

Пункт "Remove from Inventory" вы можете использовать еще при глюке, когда виртуальная машина в списке доступных имеет статус Invalid (Unknown)

Вас еще раз предупредят, что файлы виртуального сервера будут уничтожены, вам нужно подтвердить действие.

Подтверждение удаления виртуальной машины ESXI

То же самое вы можете выполнить и на самом веб-интерфейсе отдельного ESXI хоста. Находите нужную виртуальную машину и так же через контекстное меню вы выбираете пункт "Delete", это более понятная формулировка, чем в vSphere.

Удаление виртуальной машины через ESXI

Тут так же нужно подтвердить свое действие по удалению.

Удаление VM в ESXI

Как удалить виртуальную машину через PowerCLI

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

Подключаемся к нашему vCenter серверу или ESXI хосту. Для этого введите в оболочке команду:

Как подключиться к vCenter через PowerCLI

Далее есть такой командлет Get-VM, который может вам показать наличие нужных виртуальных машин. Мои виртуальные машины все называются term70-80. Зная это я могу вывести полный список.

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

Далее для удаления виртуальной машины есть командлет Remove-VM со своими ключами:

  • VM - Задает виртуальные машины, которые вы хотите удалить.
  • Confirm - Если значение равно $true, это означает, что командлет запрашивает подтверждение перед запуском. Если значение равно $false, командлет запускается без запроса подтверждения пользователя.
  • DeletePermanently - Указывает, что вы хотите удалить виртуальные машины не только из инвентаря, но и из хранилища данных.
    RunAsync - Указывает, что команда немедленно возвращается, не дожидаясь завершения задачи. В этом режиме выходом командлета является объект Task. Для получения дополнительных сведений о параметре RunAsync запустите «help About_RunAsync» в консоли VMware PowerCLI.
  • Server - Указывает сервер vCenter Server, на котором вы хотите запустить командлет. Если этому параметру не задано значение, команда выполняется на серверах по умолчанию.
  • WhatIf - Указывает, что командлет запускается только для отображения изменений, которые будут внесены, и на самом деле никакие объекты не изменяются.

Давайте теперь для примера удалим виртуальную машину term79, для этого введите:

У вас появится подтверждение на удаление, говорим "Y".

Использование Remove-VM

Отмена регистрации виртуальной машины

Файлы сервера все также продолжают лежать на датасторе.

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

Давайте теперь используем ключ -DeletePermanently, это позволит полностью с датасторов удалить виртуальный сервер.

Remove-VM -VM term79 -DeletePermanently

У вас выскочит подтверждение ваших действия, если нажмете "Y", то файлы VM будут полностью удалены.

Полное удаление файлов виртуальной машины с гипервизора ESXI

Если не хотите видеть подтверждения, то воспользуемся ключом -Confirm:$false

Remove-VM -VM term79 -DeletePermanently -Confirm:$false

Убираем подтверждение на удаление в PowerCLI

В веб интерфейсе вы увидите задание по удалению сервера.

Delete virtual machine ESXI

Как массово удалить виртуальную машину через PowerCLI

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

Удостоверимся, что в нее попадают наши два виртуальных сервера и произведем удаление $VMs.

Как видим при удалении переменной $VMs, у нас идет запрос на удаление двух виртуальных серверов, term72 и term73.

Как массово удалить виртуальную машину через PowerCLI

То же самое можно сделать имя файл со списком серверов, который так же помещается в переменную. Вам нужно заранее подготовить обычный txt файл, где каждый сервер будет находится на новой строке. Далее есть такой командлет Get-Content. Пишем:

Проверяем, что в переменную $VMs попали сервера из файла.

Далее выполняем команду по удалению виртуалок.

После выполнения команды, если вывести запрос по поиску всех серверов с именем term*, то мы ничего не обнаруживаем.

Удаление списка виртуальных машин через powercli

Если в этот момент посмотреть vCenter, то тут вы увидите массовые задания по удалению.

Список заданий по удалению в vcenter

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

$VMs = (Get-Content servers.txt)
$vmObj = Get-vm $vms

foreach($delete in $vmObj) Remove-VM -VM $delete -DeleteFromDisk -Confirm:$false -RunAsync | Out-Null>

Грабли, на которые я наступил. Руководства, инструкции, ощущения.

Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)

пятница, 8 мая 2015 г.

VMware vSphere для начинающих. Как переместить виртуальную машину между датасторами (datastores)

Задача.
Необходимо переместить виртуальную машину с одного датастора на другой в рамках одного хоста. В вопросах на форуме VMware и в Базе знаний говорят о пункте "Migrate". Но он, судя по всему, появляется при использовании vCenter. Как скопировать руками?



1. Останавливаем виртуальную машину.
2. В левом меню выбираем хост. Справа выбираем вкладку Configuration. В списке левее выбираем Storage. На снимке сейчас только один датастор. Если у вас стоит задача перемещения, значит, у вас их будет несколько. Выбираем тот датастор, на котором лежит перемещаемая виртуальная машина. Нажимаем на нем правой кнопкой мыши, выбираем в меню пункт Browse Datastore. Откроется окно:


3. В окне выбираем папку с файлами виртуальной машины. Не переходим в папку. Просто выделяем.




6. Выбираем датастор, на который надо переместить машину (у меня он сейчас только один, поэтому есть некоторое несоответсвие на снимке). Нажимаем Move.

7. После перемещения файлов виртуальной машины в левом меню (рис. 1) нажимаем правой кнопкой на перемещенной виртуальной машине и выбираем в меню пункт Remove from Inventory.

8. Повторяем пункт 2, но выбираем уже датастор, на который была перемещена машина.



10. Нажимаем на файле <имя ВМ>.vmx (файл с конфигурацией ВМ) и выбираем пункт Add to Inventory.

11. Машина снова появится в списке ВМ слева. При ее запуске нужно еще будет ответить на вопрос vSphere Client, была ли машина перемещена или скопирована. Ответить нужно, что была перемещена.

В VMware vSphere 5.5 появился новый уровень виртуального аппаратного обеспечения (Virtual Hardware Version) vmx-10. После повышения уровня аппаратного обеспечения (Upgrade Virtual Hardware) с vmx-09 до vmx-10 теряется возможность редактирования настроек виртуальных машин через vSphere client.

При попытке отредактировать настройки виртуальной машины с версией 10, vSphere Client выдает окно с ошибкой:

You cannot use the vSphere client to edit the settings of virtual machines of version 10 or higher.
Use the vSphere Web Client to edit the settings of this virtual machine.

You cannot use the vSphere client to edit the settings of virtual machines of version 10 or higher. Use the vSphere Web Client to edit the settings of this virtual machine.

Статья VMware KB: Editing virtual machine settings fails with the error: You cannot use the vSphere client to edit the settings of virtual machines of version 10 or higher (2061336) прямо указывает, что это ожидаемое поведение, и требует использовать vSphere Web Client, а если такой возможности нет, то редактировать свойства виртуальных машин при помощи PowerCLI.

Однако иногда проще просто понизить уровень виртуального аппаратного обеспечения.

Официальные способы понизить (downgrade) уровень железа описаны в статье VMware KB: Downgrading the virtual machine hardware version in ESX/ESXi (1028019). Их три:

  • Откатите до снапшота созданного перед повышением уровня;
  • Используйте VMware vCenter Converter Standalone;
  • Создайте новую виртуальную машину, и подключите в нее существующий диск.

Не очень богатый выбор. Если бы у Вас был снапшот, Вы бы эту статью не читали. Создать новую виртуальную машину можно, но будет много головной боли, например из-за смены MAC-адресов, да и точно восстановить конфигурацию виртуальной машины довольно трудоемкий процесс. Использовать конвертер очень и очень долго. Тем более, что есть неофициальный неподдерживаемый, но очень простой способ.

Всё, что делает VMware ESXi при повышении уровня с vmx-09 до vmx-10, это в файле конфигурации виртуальной машины <macine_name>.vmx изменяет значение

То есть, всё что нужно сделать, чтобы откатить изменения, это поменять 10 на 9, и сделать так, чтобы хост VMware ESXi узнал об этом изменении.

Способ 1: Virtual Hardware Version уменьшаем загрузкой через vSphere Client на рабочий компьютер, VMware ESXi уведомляем методом удаления/добавления в инвентарь.

Способ 2. Virtual Hardware Version уменьшаем через SSH, VMware ESXi уведомляем методом его перезагрузки.

Естественно, способы можно комбинировать. Главное поменять в файле конфигурации, и уведомить хост об этом. Возможно, вместе танцев с инвентарем или перезагрузками, можно мигрировать виртуальную машину между двумя хостами, но у меня нет возможности это проверить. Напишите пожалуйста в комментариях о результатах, если попробуете.

  1. Загрузите DriverFix (проверенный файл загрузки).
  2. Нажмите «Начать сканирование», чтобы найти все проблемные драйверы.
  3. Нажмите «Обновить драйверы», чтобы получить новые версии и избежать сбоев в работе системы.
  • DriverFix в этом месяце скачали 502 786 читателей.

Если вам интересно, как удалить виртуальную машину в VMware, вы нашли идеальное руководство.

Использование виртуальных машин VMware может быть чрезвычайно полезным, если все сделано правильно.

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

Это позволит вам повысить эффективность работы вашего ПК и, в свою очередь, использовать ваши виртуальные машины на полной скорости и без беспорядка, который вас беспокоит.

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

В этом практическом руководстве мы обсудим эти различия и дадим вам точный список шагов, которые необходимо выполнить, чтобы управлять удалением виртуальной машины в VMware.

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

Это позволит вам убедиться, что ни одна из ваших полезных виртуальных машин не исчезнет или не будет повреждена каким-либо образом.

Читай дальше, чтобы узнать больше.

Выполните следующие действия, чтобы правильно удалить виртуальную машину в VMware.

Примечание. Удаление виртуальной машины означает, что все данные, хранящиеся на ней, будут полностью удалены.

Если у вас есть какие-либо сомнения относительно того, какую виртуальную машину следует удалить, или вы удаляете ее, чтобы воссоздать ее, обязательно сделайте резервную копию своих данных и сохраните их на безопасном устройстве.

Удалите виртуальную машину на VMware Workstation 7.x и выше:

Как удалить виртуальную машину на VMware

  1. Откройте VMware и перейдите к списку виртуальных машин, хранящихся на вашем жестком диске.
  2. Щелкните имя машины, которую хотите удалить.
  3. Выберите пункт «Управление в» в строке меню рабочей станции.
  4. Выберите вариант Удалить с диска.
  5. Подтвердите процесс удаления, нажав Да во всплывающем окне.
  6. Это удалит виртуальную машину и поместит ее в корзину.
  7. Чтобы освободить место на вашей рабочей станции, вам нужно будет щелкнуть правой кнопкой мыши корзину -> выбрать Очистить корзину.

Удалите виртуальную машину в VMware Workstation Player 12.x:

Как удалить виртуальную машину на VMware

  1. Откройте VMwar e на своем компьютере -> перейдите к списку установленных виртуальных машин.
  2. Щелкните правой кнопкой мыши виртуальную машину, которую хотите удалить -> выберите Удалить с диска.
  3. Подтвердите, что вы хотите удалить его, нажав кнопку Да внутри приглашения.
  4. Чтобы также освободить место на диске, вам также необходимо очистить корзину.

Вывод

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

Не стесняйтесь сообщить нам, была ли эта статья полезной, используя раздел комментариев под этой статьей.

Читайте также: