Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    API интерфейс и пул

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    API интерфейс и пул, Proxmox Виртуальная Среда
     
    kaltsi
    Guest
    #1
    0
    05.09.2019 19:34:00
    Привет, я использую API-интерфейс для управления виртуальными машинами. У меня есть процесс, который клонирует собранный ID виртуальной машины в новый пул. Некоторые клонированные виртуальные машины не попадают в пул. Я использую обходной путь. После завершения процесса клонирования я проверяю, какие виртуальные машины находятся в пуле. Я добавляю отсутствующие виртуальные машины. Но иногда ответы членов пула не совсем точные. POST /api2/json/nodes/{node}/qemu/{vmid}/clone Установите атрибут "pool". Например: ID виртуальных машин в пуле: [778, 741, 756, 766, 694, 724, 557, 753, 740, 739, 755, 754] Клонированные ID виртуальных машин: [550, 654, 694, 724, 739, 557, 656, 740, 741, 753, 754, 755, 756, 766, 778] Через несколько секунд виртуальная машина 557 не является членом пула. Это нормальная работа? Как я могу решить эту ситуацию?
     
     
     
    Dominic
    Guest
    #2
    0
    01.10.2019 13:04:00
    Итак, это настоящая проблема, а все остальное — только проблемы с обходными путями? Клонирование и добавление в пул у меня работают безупречно с помощью pvesh. Какой это процесс?
     
     
     
    kaltsi
    Guest
    #3
    0
    04.10.2019 16:52:00
    Я создал тест, чтобы воспроизвести ситуацию. Логи находятся в приложенном файле. Адрес 127.0.0.1 — это ссылка на node-1. Во время теста шёл процесс удаления. Процесс клонировал все ВМ, которые находились в пуле Template-Basic17-v3s1.1. создайте новый пул соберите содержимое выбранного пула (ссылка) клонируйте ВМ и поместите в новый пул настройте конфигурацию соберите содержимое нового пула добавьте недостающие ВМ в пул снова Пожалуйста, дайте знать, если вам нужны дополнительные детали.
     
     
     
    kaltsi
    Guest
    #4
    0
    01.10.2019 15:19:00
    Я протестировал эту функцию, потому что очень важно собрать все клонированные ВМ в одном пуле. Мой план такой: - создать новый пул - собрать все необходимые клонированные ВМ (9-15 виртуальных машин) и отправить запрос на клонирование по HTTP с параметром пула. После того как приложение создало связанные клоны для всех необходимых шаблонов, я обнаружил, что пул содержит все ВМ. Но через несколько секунд некоторые ВМ выпадают из пула. В кластере 4 узла. Например: приложение запрашивает у узла 2 создание пула и просит узел 2 создать связанный клон из ВМ1, которая находится на узле 4. В это время узел 4 занят, и он получает информацию о пуле от узла 2 позже, чем запрос на клонирование. Мое решение — клонировать ВМ без параметра пула и добавить клонированные ВМ в пул после процесса клонирования. Это работает без проблем. Например: Bash: root@node-1:~# pvesh set /pools/newpool1

    root@node-1:~# for vm in 101 102 103 104 ... 115; do pvesh create /nodes/node-2/qemu/$vm/clone pool=newpool1 newid=....; waiting_for_clone_task; done
     
     
     
    Dominic
    Guest
    #5
    0
    02.10.2019 13:26:00
    Мы говорим только о связанных клонах, а не о полных клонах? Это также происходит, если вы делаете все на одном узле или только при переносе с одного узла на другой?
     
     
     
    kaltsi
    Guest
    #6
    0
    02.10.2019 17:20:00
    В этом случае приложение использует только связанные клоны. У меня есть только логи, которые показывают, что произошло. В последний раз приложение было подключено к node-1, чтобы создать новый пул и создать связанные клоны, которые находятся на node-3. У меня нет лога о активности отдельного узла. Я не смог понять, почему возникает эта проблема. Обычно первая клонированная ВМ не будет частью пула, но иногда бывает иначе. Но иногда все работает нормально.
     
     
     
    Dominic
    Guest
    #7
    0
    03.10.2019 13:15:00
    Я только что создал 200 связанных клонов небольшой виртуальной машины на другом узле, и каждый из них пока остался в пуле. Код: root@clusterA:~# for NEWID in {120..320}; do qm clone 103 $NEWID --target clusterB --pool test; done Пока я повторяю то же самое через API, не могли бы вы проверить, работают ли команды qm для вас? Команда qm clone выдает ошибку, если пул не существует. Код: 403 Проверка прав доступа не прошла (пул 'wasdftest' не существует)
     
     
     
    Dominic
    Guest
    #8
    0
    04.10.2019 11:50:00
    Я не смог воспроизвести вашу проблему. Первая ВМ определенно есть в пуле в моих тестах. Я также не заметил, чтобы какая-либо другая ВМ пропала. Я несколько раз запускал различные вариации следующих команд. 103 — это шаблон. Код: for NEWID in {120..320}; do echo "новый id $NEWID"; pvesh create /nodes/clusterA/qemu/103/clone --pool=test --newid=$NEWID; done

    for NEWID in {321..521}; do echo "новый id $NEWID"; pvesh create /nodes/clusterA/qemu/103/clone --pool=test --newid=$NEWID --target=clusterB; done Использование неверного пула выдаёт соответствующую ошибку Код: for NEWID in {120..320}; do echo "новый id $NEWID"; pvesh create /nodes/clusterA/qemu/103/clone --pool=testasdf --newid=$NEWID; done
    proxy handler failed: 403 Проверка доступа не пройдена (пул 'testasdf' не существует)
     
     
     
    Dominic
    Guest
    #9
    0
    07.10.2019 12:54:00
    Ваши логи содержат следующие строки: Код: 15:45:12.320 [main] DEBUG com.myapp.sd.testvmgui.proxmox.Proxmox - Заголовок: <{newid=[669], name=[IstvanK-Basic17-v3s1.1-2-BED11], pool=[IstvanK-Basic17-v3s1.1-2], target=[vNTDB-host-4]},[Content-Type:"application/x-www-form-urlencoded", Cookie:"PVEAuthCookie=PVE:ik@pve:5D974C77::.....LoFA==", CSRFPreventionToken:"5D974C77:iXDpjf1XOy57h2+S5aG1Fv6Mxkg"]> 15:45:12.321 [main] DEBUG org.springframework.web.client.RestTemplate - HTTP POST https://127.0.0.1:8006/api2/json/nodes/vNTDB-host-4/qemu/202/clone 15:45:12.321 [main] DEBUG org.springframework.web.client.RestTemplate - Accept=[application/json, application/*+json] 15:45:12.321 [main] DEBUG org.springframework.web.client.RestTemplate - Запись [{newid=[669], name=[IstvanK-Basic17-v3s1.1-2-BED11], pool=[IstvanK-Basic17-v3s1.1-2], target=[vNTDB-host-4]}] как "application/x-www-form-urlencoded" 15:45:12.457 [main] DEBUG org.springframework.web.client.RestTemplate - Ответ 200 ОК 15:45:12.457 [main] DEBUG org.springframework.web.client.RestTemplate - Чтение в [com.myapp.sd.testvmgui.proxmox.data.ProxmoxTaskId] 15:45:12.457 [main] DEBUG com.myapp.sd.testvmgui.proxmox.Proxmox - Запрос Proxmox: 'https://127.0.0.1:8006/api2/json/nodes/vNTDB-host-4/qemu/202/clone' с кодом ответа: 200 Мы видим код возврата 200 для HTTP-запроса. Если клонирование не удалось, то код останется 200. Однако полезная нагрузка JSON-ответа будет отличаться. Можете добавить логи для полезной нагрузки ответа в вашу программу? Кроме того, почему ВМ 227 находится в другом пуле? Код: 15:45:38.447 [main] ERROR com.myapp.sd.testvmgui.proxmox.Proxmox - Запрос Proxmox: 'https://127.0.0.1:8006/api2/json/pools/IstvanK-Basic17-v3s1.1-2' с ошибкой: не удалось обновить пулы: ошибка с блокировкой cfs 'file-user_cfg': ВМ 227 принадлежит пулу 'IstvanK-Basic17-v3s1.1-1', код ошибки: 500
     
     
     
    kaltsi
    Guest
    #10
    0
    08.10.2019 11:29:00
    У меня есть идея. Распределение ресурсов в пуле корректно. Эта ситуация возникает, когда в фоновом режиме происходит процесс удаления. Система начинает удалять VM 557. Система освобождает ID 557. Мое приложение берет "следующий свободный VMID" — это 557. Процесс клонирования использует ID 557. Но процесс удаления еще не завершен. Возможно, поэтому процесс клонирования и приложение не могут добавить VM в новый пул. Потому что ID 557 все еще назначен старому. Что ты об этом думаешь? Это возможно? Код: Oct  8 11:04:44 vNTDB-host-4 pvedaemon[1144905]: destroy VM 557: UPID:vNTDB-host-4:00117849:267D7C05:5D9C512C:qmdestroy:557:ik@pve: Oct 8 11:04:44 vNTDB-host-4 pvedaemon[1123516]: <ik@pve> starting task UPID:vNTDB-host-4:00117849:267D7C05:5D9C512C:qmdestroy:557:ik@pve: Oct 8 11:05:08 vNTDB-host-4 pvedaemon[1123516]: <ik@pve> end task UPID:vNTDB-host-4:00117849:267D7C05:5D9C512C:qmdestroy:557:ik@pve: OK

    Oct  8 11:05:05 vNTDB-host-1 pvedaemon[2698714]: <ik@pve> starting task UPID:vNTDB-host-1:0029627E:267EA79B:5D9C5141:qmclone:570:ik@pve: Oct 8 11:05:06 vNTDB-host-1 pvedaemon[2712190]: clone base-617-disk-0/base-570-disk-0: base-570-disk-0 snapname __base__ to vm-557-disk-0 Oct 8 11:05:06 vNTDB-host-1 pvedaemon[2698714]: <ik@pve> end task UPID:vNTDB-host-1:0029627E:267EA79B:5D9C5141:qmclone:570:ik@pve: OK

    11:05:05.920 [main] DEBUG com.myapp.sd.testvmgui.proxmox.Proxmox - Заголовок: <{newid=[557], name=[IstvanK-Basic17-v3s1.1-2-PGW02], pool=[IstvanK-Basic17-v3s1.1-2], target=[vNTDB-host-1]},[Content-Type:"application/x-www-form-urlencoded", Cookie:"PVEAuthCookie=PVE:ik@pve:5D9C5135::...8zqhg==", CSRFPreventionToken:"5D9C5135:rGRJNJW/hDzar7mKPzdU8Yq2lxU"]> 11:05:05.920 [main] DEBUG org.springframework.web.client.RestTemplate - HTTP POST https://127.0.0.1:8006/api2/json/nodes/vNTDB-host-1/qemu/570/clone 11:05:05.920 [main] DEBUG org.springframework.web.client.RestTemplate - Accept=[application/json, application/*+json] 11:05:05.920 [main] DEBUG org.springframework.web.client.RestTemplate - Запись [{newid=[557], name=[IstvanK-Basic17-v3s1.1-2-PGW02], pool=[IstvanK-Basic17-v3s1.1-2], target=[vNTDB-host-1]}] как "application/x-www-form-urlencoded" 11:05:05.920 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - ==========================начало запроса============================================== 11:05:05.920 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - URI : https://127.0.0.1:8006/api2/json/nodes/vNTDB-host-1/qemu/570/clone 11:05:05.920 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - Метод : POST 11:05:05.920 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - Заголовки : [Accept:"application/json, application/*+json", Cookie:"PVEAuthCookie=PVE:ik@pve:5D9C5135::...8zqhg==", Content-Type:"application/x-www-form-urlencoded;charset=UTF-8", CSRFPreventionToken:"5D9C5135:rGRJNJW/hDzar7mKPzdU8Yq2lxU", Content-Length:"96"] 11:05:05.920 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - Тело запроса: newid=557&name=IstvanK-Basic17-v3s1.1-2-PGW02&pool=IstvanK-Basic17-v3s1.1-2&target=vNTDB-host-1 11:05:05.920 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - ==========================конец запроса================================================ 11:05:05.996 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - ==========================начало ответа============================================= 11:05:05.996 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - Код состояния : 200 OK 11:05:05.997 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - Текст состояния : OK 11:05:05.997 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - Заголовки : [Cache-Control:"max-age=0", Connection:"close", "Keep-Alive", Date:"Tue, 08 Oct 2019 09:05:05 GMT", Pragma:"no-cache", Server:"pve-api-daemon/3.0", Content-Length:"76", Content-Type:"application/json;charset=UTF-8", Expires:"Tue, 08 Oct 2019 09:05:05 GMT"] 11:05:05.997 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - Тело ответа: {"data":"UPID:vNTDB-host-1:0029627E:267EA79B:5D9C5141:qmclone:570:ik@pve:"}

    11:05:05.997 [main] DEBUG com.myapp.sd.testvmgui.proxmox.LoggingRestTemplate - ==========================конец ответа=============================================== 11:05:05.997 [main] DEBUG org.springframework.web.client.RestTemplate - Ответ 200 OK 11:05:05.997 [main] DEBUG org.springframework.web.client.RestTemplate - Чтение в [com.myapp.sd.testvmgui.proxmox.data.ProxmoxTaskId]
     
     
     
    Dominic
    Guest
    #11
    0
    08.10.2019 12:42:00
    Спасибо, что продлили логи! Возможно. В данный момент мы проверяем, есть ли ошибка в коде, который выполняет блокировку.
     
     
     
    Dominic
    Guest
    #12
    0
    10.10.2019 13:28:00
    У нас тут действительно есть ошибка. Вы можете следить за ней на Bugzilla. Спасибо, что обратили наше внимание на это!
     
     
     
    kaltsi
    Guest
    #13
    0
    15.10.2019 13:39:00
    Для меня тоже важно, чтобы система становилась все лучше и лучше.
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры