Proxmox остановить зависшую машину

Перезагрузка в командной строке виртуальной машины Proxmox VE.

Хотелось бы создать решение, которое не было бы привязано к текущему расположению виртуальных машин на физических серверах в кластере виртуализации. Мы с коллегами активно используем Живую Миграцию, и сегодня VM1 работает на node2, а завтра её отправят в режиме онлайн на node3.

Данное требование сразу поставило крест на использовании низкоуровневой команды qm, которая требует отдачи ей приказа на той ноде кластера, где в данный момент трудится нужная виртуальная машина. Уже показывал мощь PveSh в примерах, так как он использует API Proxmox VE и позволяет реализовать задуманное.

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

К сожалению, нажимая виртуальную кнопку питания, вы выключаете виртуальный сервер, а не перезагружаете. То есть у нас не будет restart в том смысле, что будет shutdown + start. Для работы скрипта требуется лишь наличие jq, которая есть в стандартных репозиториях Debian и Ubuntu, и она облегчает работу с JSON ответами. Работа скрипта не сложна. Вначале получаем по данному нам VMID имя ноды, на которой трудится в данный момент эта виртуальная машина. Делаем shutdown. Далее в вечном цикле опрашиваем статус и, когда он становится stopped, то смело прерываем цикл while, и выходим на финишную прямую, запуская виртуальную машину.

Источник

Proxmox 6. Аварийные ситуации

Продолжая тему Proxmox, рассмотрим, как можно удалить мертвую ноду из кластера, как восстановить работу сервиса через репликацию.

Вывод ноды из кластера

Нода PVE4 прекратила свое существование и было принято решение вывода из эксплуатации.

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

Если решение принято, то на любой рабочей ноде:

Нода удалена Кворум изменился

Восстановление виртуальной машины (контейнера) из репликации

Есть настроенная репликация контейнера (виртуальной машины) с одной ноды на другую.

На PVE3 работает контейнер (платформа форума на phpBB) и настроена репликация на PVE2 каждые 30 минут.

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

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

Восстановим работу контейнера. На любой работающей ноде в Shell:

Источник

Proxmox API. Введение

Всем привет!
Сегодня я бы хотел немного рассказать об использовании API небезызвестной системы виртуализации — Proxmox.

Предыстория…
С проксмоксом я столкнулся несколько лет назад, когда мне в руки попала неплохая машина, расположенная в одном из дата центров пресловутого Хетзнера. На тот момент у нас встал вопрос о поднятии виртуализации под свои нужды. Мы рассматривали несколько вариантов, а именно: VMWare, OpenStack и конечно же Proxmox. Не буду говорить, что он лучше 2-ух других кандидатов, просто на тот момент он вполне удовлетворял нашим потребностям. Через некоторое время, появилась необходимость создать своего рода панель управления для сторонних пользователей, которые могли бы просто отслеживать статус своей виртуальной машины, запускать/останавливать ВМ, делать ребут, а так же управлять несколькими настройками. Конечно же, проксмокс позволяет добавлять пользователей, а так же группы пользователей и назначать им свои права. Но нам такой вариант не подходил. Не знаю как сейчас, но на тот момент нормальной документации API Proxmox на русском языке не было. Меня, конечно же, это не остановило и я вполне обошелся англоязычной версией, в которой кстати все очень хорошо и наглядно описано. Однако, всегда есть люди, которые не очень ладят с английским. Так вот, эта статья для Вас.
Сразу оговорюсь, что все VM (виртуальные машины) у нас были на базе KVM. Следовательно и API которое мы рассмотрим в этой статье будет для машин на базе KVM с использованием PhP.

Читайте также:  арианские споры и первый вселенский собор

Для работы с их API нам понадобиться PhP класс, который можно забрать с репозитория github.
Типы запросов к серверу API делятся всего на 3 вида: GET, POST и PUT. А ответы мы будем получать в формате JSON.

Создаем файл index.php в которой инклудим скаченный нами апи класс и создаем объект.

где в качестве параметров указываем IP нашего сервера, логин и пароль.
По умолчанию, proxmox ставиться на 8006 порт. Однако, если Вы изменили его, то Вам так же придется изменить порт и в API классе proxmox’a. Для этого нам необходимо найти строки наподобие этой: (Таких всего 3)
curl_setopt($prox_ch, CURLOPT_URL, «https://».$this->pve_hostname.»:8006/api2/json/access/ticket»);

У меня это 93 строка. (На момент скачивания класса. Может быть сейчас там какие-то изменения. Я не проверял) и заменить 8006 на необходимое значение.

Для того, чтобы проверить успешно ли прошла авторизация на нашем сервере нужно использовать следующий метод:

Теперь попытаемся выполнить наш первый запрос, который выдаст нам информацию об интересующей нас VM. У каждой виртуальной машины есть свой уникальный идентификационный номер, по которому мы и будем получать информацию. Так же каждая VM может размещаться в своей «ноде» (node), которая так же участвует в запросе.

где: node2 — это название используемой мною ноды, а 100 — это id VM.

В результате мы получим примерно следующее:

В большей степени здесь все понятно, поэтому комментировать я не стану и мы пойдем дальше.
В предыдущем примере, где мы получали статус нашей VM мы использовали GET запрос. Как правило, GET используются для получения информации, POST и PUT для выполнения каких-то действий или изменения настроек.

Теперь попробуем остановить нашу виртуальную машину. Для этого отправим POST запрос с vmid (идентификатором виртуальной машины и нодой):

Читайте также:  Что любят итальянцы мужчины

Как видите, все довольно просто. Первым параметром POST запроса выступает инфа о нашей VM, а вторым некоторые не всегда необязательные параметры. В данном случае для наглядности я использовал параметр forceStop, который говорит сам за себя. Иногда бывают случаи, когда VM по каким причинам не может завершить свою работу «добровольно». Это может произойти по разным причинам, ошибка системы, повисший процесс и т.д. Так вот параметр forceStop говорит proxmox’u о том, что машина должна завершить свою работу в любом случае. Полный список параметров можно посмотреть в приведенной документации.

Теперь запустим обратно нашу VM.

Все доступные команды для статусов VM:

Перейдем к настройкам…

Получаем настройки конкретной VM, как обычно:

Если все ок, ты мы получим следующий результат:

Для того, чтобы установить VM конфигурацию, необходимо использовать PUT запрос:

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

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

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

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

Источник

proxmox backup won’t stop

offerlam

Active Member

I have a 3 node setup.. for some reason my backup won’t stop. I have tried to stop it though the GUI/Web but it still keeps going..

also it seems it stop taking backups so it seems the system is waiting for this backup to stop before starting a new.

how to manually kill it.

t.lamprecht

Proxmox Staff Member

Best regards,
Thomas

wolfgang

Proxmox Staff Member

then
qm unlock
vmid of the hanging backup

Читайте также:  храм казанской божьей матери в белгороде

Best regards,
Wolfgang

offerlam

Active Member

thanks for the quick answer..

would i need to do something after to make sure backup starts again at 20 this evening? or?

also would this command affect production of the VMs?

t.lamprecht

Proxmox Staff Member

No should affect anything, stops only running backup jobs.

When it fails (could be as it isn’t responding on the GUI command anymore) use wolfgangs method, which works for sure.

Best regards,
Thomas

offerlam

Active Member

Hi and sorry for the long response.

im not really sure what process im suppose to kill?

t.lamprecht

Proxmox Staff Member

Best regards,
Thomas

offerlam

Active Member

I killed the processes on the two of the three nodes which had backups running and stuck..

t.lamprecht

Proxmox Staff Member

Best regards,
Thomas

offerlam

Active Member

how should i proceed? also gui still shows backup as running and no backups are being done

Источник

Proxmox ошибки резервного копирования

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

если остановить бекап командой stop, резервное копирование не прекращается. Версия proxmox 5.0. ОЗУ хватает, физической памяти достаточно, процессор не перегружен.

2) Убийство процессов vzdump

3) Остановка машины, на которой бекап завис

4) Перезагрузка служб pve

5) Удаление vzdump.lock

Помогает только перезагрузка гипервизора.

В логах наблюдаю следующую картину:

May 11 17:37:38 vekfoxmox sshd[4999]: Failed password for invalid user sshvpn from 151.80.40.43 port 60935 ssh2

May 11 17:38:00 vekfoxmox systemd[1]: Starting Proxmox VE replication runner.

May 11 17:38:00 vekfoxmox systemd[1]: Started Proxmox VE replication runner.

May 11 17:38:05 vekfoxmox pvedaemon[8551]: successful auth for user ‘root@pam’

May 11 17:39:00 vekfoxmox systemd[1]: Starting Proxmox VE replication runner.

May 11 17:39:00 vekfoxmox systemd[1]: Started Proxmox VE replication runner.

May 11 17:40:00 vekfoxmox systemd[1]: Starting Proxmox VE replication runner.

May 11 17:40:00 vekfoxmox systemd[1]: Started Proxmox VE replication runner.

May 11 17:40:01 vekfoxmox sshd[8994]: Received disconnect from 122.226.181.165 port 57946:11: [preauth]

May 11 17:40:01 vekfoxmox sshd[8994]: Disconnected from 122.226.181.165 port 57946 [preauth]

May 11 17:41:00 vekfoxmox systemd[1]: Starting Proxmox VE replication runner.

May 11 17:41:00 vekfoxmox systemd[1]: Started Proxmox VE replication runner.

May 11 17:42:00 vekfoxmox systemd[1]: Starting Proxmox VE replication runner.

May 11 17:42:00 vekfoxmox systemd[1]: Started Proxmox VE replication runner.

May 11 17:43:00 vekfoxmox systemd[1]: Starting Proxmox VE replication runner.

May 11 17:43:00 vekfoxmox systemd[1]: Started Proxmox VE replication runner.

May 11 17:43:05 vekfoxmox sshd[13686]: Did not receive identification string from 118.120.173.169 port 44243

Источник

Автомобильный онлайн портал