Size: a a a

OpenNebula - русскоговорящее сообщество

2020 February 01

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
а как часто у вас выпадает создание ВМ с ошибой
Sat Feb 1 20:01:45 2020 : Error executing image transfer script: Command "linstor resource create -s DfltDisklessStorPool 2linstor0002 one-image-71" failed: A resource 'one-image-71' on node '2linstor0002' already exists. Error reports: [ 5E341871-00000-000064 ]

Особенно при создании сразу нескольких ВМ
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
Имиджи на отдельной ноде системное хранилище на другой, CLONE_MODE="copy"
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
Reported error:
===============

Description:
   The Resource already exists

Category:                           LinStorException
Class name:                         LinStorDataAlreadyExistsException
Class canonical name:               com.linbit.linstor.LinStorDataAlreadyExistsException
Generated at:                       Method 'createEmptyResource', Source file 'ResourceControllerFactory.java', Line #118

Error message:                      The Resource already exists

Error context:
   A resource 'one-image-71' on node '2linstor0002' already exists.
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
причем выглядит это так, запуская сразу около 10 ВМ от 2 до 6 из них падает с такой ошибкой, остальные нормально
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
ну и соответвественно из oned.log аналогично
Sat Feb  1 20:01:45 2020 [Z0][TM][D]: Message received: LOG I 300 Command execution failed (exit code: 1): /var/lib/one/remotes/tm/linstor_un/clone 1ctrl0001:/dev/drbd/by-res/one-image-71/0 2node0001:/local/one-storage/oned/154/300/disk.0 300 146

Sat Feb  1 20:01:45 2020 [Z0][TM][D]: Message received: LOG E 300 Command "linstor resource create -s DfltDisklessStorPool 2linstor0002 one-image-71" failed: A resource 'one-image-71' on node '2linstor0002' already exists.  Error reports: [ 5E341871-00000-000064 ]

Sat Feb  1 20:01:45 2020 [Z0][TM][D]: Message received: TRANSFER FAILURE 300 Command "linstor resource create -s DfltDisklessStorPool 2linstor0002 one-image-71" failed: A resource 'one-image-71' on node '2linstor0002' already exists.  Error reports: [ 5E341871-00000-000064 ]
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
Нашел причину, придется мне под свои хотелки модифицировать function linstor_exec_and_log_no_error
источник

CA

Clark Antollare in OpenNebula - русскоговорящее сообщество
Коллеги странный немного вопрос: а является ли деплой имиджей в режиме snapshot с одной datastore на другую нормальной практикой?
источник

CA

Clark Antollare in OpenNebula - русскоговорящее сообщество
Или лучше использовать clone?
источник
2020 February 02

k

kvaps in OpenNebula - русскоговорящее сообщество
@i.am.not.root__
Нашел причину, придется мне под свои хотелки модифицировать function linstor_exec_and_log_no_error
А в чём причина то?
источник

k

kvaps in OpenNebula - русскоговорящее сообщество
В любом случае присылайте пулреквесты
источник

k

kvaps in OpenNebula - русскоговорящее сообщество
Clark Antollare
Коллеги странный немного вопрос: а является ли деплой имиджей в режиме snapshot с одной datastore на другую нормальной практикой?
Фактически это один и тот же датастор, просто с разными параметрами
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
kvaps
А в чём причина то?
Суть такая, живут два DS, сейчас наброшу картинку
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
У Системного ДС , как говорилось ранее, CLONE_MODE="copy" в итоге, на старте ВМ на ноде с системным хранилищем создается дисклесс ресурс, и cat копирует с него данные в рерурс для будещей ВМ. Но когда мы говорим сразу запустить 10, 15 ну в общем множество ВМ.... то послушно выполняется скрипт clone из tm и доходит до этого момента когда на каждый экземпляр ВМ он пытается создать дисклесс но ноде с системным хранилищем, на что получает ошибку "already exists." и успешно останавливается. Если поступить очень грязно и функцию linstor_exec_and_log_no_error свести до состояния
function linstor_exec_and_log_no_error {
   EXEC_LOG=`exec $LINSTOR -m --output-version v0 $1 2>&1`
   EXEC_LOG_RC=0
       return $EXEC_LOG_RC

}

так сказать убрать проверку выполнения, то все гостевые ВМ стартуют на ура.
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
kvaps
В любом случае присылайте пулреквесты
Ну когда будет красивое решение , то окей
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
но это получается отключает проверку всех выполняющихся команд, а это стремно)) поэтому так делать не будет никто ))
источник

@

@i.am.not.root__ in OpenNebula - русскоговорящее сообщество
конечно было бы не лишним присоздании, как в OVS,например, иметь ключ --if-not-exist, но да ладно
источник

k

kvaps in OpenNebula - русскоговорящее сообщество
@i.am.not.root__
У Системного ДС , как говорилось ранее, CLONE_MODE="copy" в итоге, на старте ВМ на ноде с системным хранилищем создается дисклесс ресурс, и cat копирует с него данные в рерурс для будещей ВМ. Но когда мы говорим сразу запустить 10, 15 ну в общем множество ВМ.... то послушно выполняется скрипт clone из tm и доходит до этого момента когда на каждый экземпляр ВМ он пытается создать дисклесс но ноде с системным хранилищем, на что получает ошибку "already exists." и успешно останавливается. Если поступить очень грязно и функцию linstor_exec_and_log_no_error свести до состояния
function linstor_exec_and_log_no_error {
   EXEC_LOG=`exec $LINSTOR -m --output-version v0 $1 2>&1`
   EXEC_LOG_RC=0
       return $EXEC_LOG_RC

}

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

k

kvaps in OpenNebula - русскоговорящее сообщество
Смотри функцию проверки ошибок, там идёт бинарное сравнение кода ошибки по маске, можно туда что-то вроде grep -v <error_code> вставать
источник

k

kvaps in OpenNebula - русскоговорящее сообщество
Хотя не, тогда детач может сфейлиться
источник