J
Зачем угадывать то?
J
"Помогите, 9 минут" А про конфигурацию ничо нету.
Maksim
@creepy_owlet ты не в теме, там нет нейтрона, есть кастыли, агенты выключены, делается много ручного))))
Maksim
@pavel_kiselev нехорошо спрашивать не предоставив всей нужной информации))
Maksim
про конфигурацию айроника у @pavel_kiselev
Dmitry
Ясно-понятно.
Dmitry
Как минимум, нужно включить DEBUG логи (если по какой-то странной причине уже не) и смотреть, что происходит.
Maksim
немного конфигруации что там сконфигурено пока Паша конфиг ищет: kolla_ironic_enabled_boot_interfaces: - "pxe" - "ipxe" kolla_ironic_default_deploy_interface: "direct" kolla_ironic_default_management_interface: "ipmitool" kolla_ironic_default_power_interface: "ipmitool" kolla_ironic_enabled_network_interfaces: ["noop"] kolla_ironic_default_network_interface: "noop"
Maksim
темплейт ironic.conf: [DEFAULT] debug = true [keystone_authtoken] www_authenticate_uri = {{ keystone_internal_url }} auth_url = {{ keystone_admin_url }} insecure = true region_name = {{ openstack_region_name }} [conductor] automated_clean = false deploy_callback_timeout = 900 [glance] insecure = true region_name = {{ openstack_region_name }} [inspector] insecure = true region_name = {{ openstack_region_name }} [neutron] insecure = true region_name = {{ openstack_region_name }} [nova] insecure = true region_name = {{ openstack_region_name }} [api] max_limit = 10000 [agent] image_download_source = http [deploy] http_root = /httpboot http_url = http://10.x.x.x:8089 [dhcp] dhcp_provider = {{ ironic_dhcp_provider }}
Dmitry
> automated_clean = false facepalm.bmp
Maksim
Может, знаешь откуда берется и как агенту отдается образ? Через веб сервер промежуточный?
через стандартный вебсервер на одном ихз контроллеров в контейнере
J
> automated_clean = false facepalm.bmp
Да забей. Там своё чо-то для очистки придумано небось.
Pavel
> automated_clean = false facepalm.bmp
завсит от кейса. у меня whole disk. мне пофиг что там было залито раньше
Dmitry
"insecure = true" оттуда же? :)
Maksim
аха
J
"insecure = true" оттуда же? :)
Не вижу смысла докапываться.
Dmitry
Кстати, вот прямо сейчас выясняю в IRC, что kolla какую-то херню делает по-умолчанию...
J
через стандартный вебсервер на одном ихз контроллеров в контейнере
В связи с этим два вопроса: 1. Образ который деплоится уже закэширован в ironic-conductor? 2. Если веб сервер nginx, то используется sendfile или directio?
Dmitry
Не вижу смысла докапываться.
А чем ещё заняться? Без debug-логов это всё бесполезно. С ними моя помощь может и не понадобиться.
Dmitry
А гадать-то можно. Например, сервер с образом отдаёт левый заголовок last modified, поэтому загружается каждый раз заново.
Maksim
но собственно апач со своей задачей справляется
Maksim
через 9 минут)))
Maksim
проблема не в нем
Maksim
а в отсутствии дебага в местах где образ готовится и кешируется
Maksim
пустые строки - это 9 минут работы питона под капотом без вывода какой либо инфы в логи даже с дебагом
Maksim
скорее нет, проблема в количестве нод в базе и того что кондуктор один)
Ilya
Maksim
и в кондукторе for loop долгий
Maksim
+ большой образ
ну и это тоже
Dmitry
пустые строки - это 9 минут работы питона под капотом без вывода какой либо инфы в логи даже с дебагом
Не выглядит, что debug включён. Там очень много всего между этим происходит.
Ilya
Насыпьте в мастер еще дебагов - при скачивании образа и при коныертации
Maksim
Maksim
покажи код
abirinx
незнакомым людям код показывать)))
Maksim
Denis
Dmitry
grep debug https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/modules/image_cache.py https://opendev.org/openstack/ironic/src/branch/master/ironic/common/images.py
Dmitry
Например, вот эти очень полезные https://opendev.org/openstack/ironic/src/commit/e590dd838389fb937c78a86ef35338b45e03185e/ironic/common/images.py#L368
Dmitry
https://opendev.org/openstack/ironic/src/commit/e590dd838389fb937c78a86ef35338b45e03185e/ironic/drivers/modules/image_cache.py#L139 говорит о том, что кэш не работает
Dmitry
если мало, patches are welcome
Maksim
~/Work/repos/ironic (stable/xena) » grep -irn debug ironic/common/images.py 62: LOG.debug('Injecting %(path)s into an ISO from %(source)r', 357: LOG.debug("Using %(image_service)s to download image %(image_href)s.", 368: LOG.debug("Image %(image_href)s downloaded in %(time).2f seconds.", 415: LOG.debug("%(image)s was %(format)s, converting to raw", 493: LOG.debug('Got image info: %(info)s for image %(image_uuid)s.',
Maksim
ну... немножко есть, но в логах пусто ж
Maksim
~/Work/repos/ironic (stable/xena) » grep -irn debug ironic/drivers/modules/image_cache.py 126: LOG.debug("Destination %(dest)s already exists " 135: LOG.debug("Master cache hit for image %(href)s", 175: LOG.debug("Caching is disabled for image %s", href) 208: LOG.debug("Starting clean up for master image cache %(dir)s",
Maksim
ну вообщем-то и этого нет в логах
Maksim
вроде бы по логике если бы кэширование было бы отключено, то мы бы увидели это в логе, но нет)
Dmitry
Поэтому я и предполагаю, что debug всё же выключен. Может там ещё конфигурационные файлы есть? Или твой шаблон не применяется корректно?
Maksim
или Паша отключил дебаг и забыл)
Maksim
и хочет чуда)
Fedor
или Паша отключил дебаг и забыл)
Ну вообще странно, что у тебя за 9 минут айроник в дебаге написал примерно ничего.
Fedor
Плюс можно же ещё логи с ironic-python-agent глянуть, они должны быть заботливо сложены в папочку с логами айроника, если дебаг включить.
Fedor
Кстати, а какое кеширование вы там ищете? Я насколько помню flow, образ сначала кешируется в кондактор и только потом включается нода.
Pavel
Как много всего без меня написали. Ну, ок. Да, похоже это перекодирование образа на кондакторе.
Maksim
где дебаг признавайся
Pavel
где дебаг признавайся
Выключен дебаг. На проде дебаг - зло.
Maksim
ну а че тогда людей мучаешь? сиди жди 9 минут без дебага)))
Pavel
Дык я уже разобрался. Спасибки
Pavel
Угу
J
А почему?
Pavel
А почему?
Много логов, большая нагрузка, много файлов в фс.
J
Большая нагрузка?
Pavel
Каждая запись в лог - это процессорные такты, вращение диска и тд. Большой дебаг - это доп нагрузка. На то он и "дебаг" - включается в момент решения проблем.
J
Каждая запись в лог - это процессорные такты, вращение диска и тд. Большой дебаг - это доп нагрузка. На то он и "дебаг" - включается в момент решения проблем.
Ага. Ну раз экономим прцессорные такты, то надо везде где можно логи выключить, порезать все ненужные системные сервисы и ни в воем случае не использовать нигде tls и прочую крипту. А то такты жрет)
J
Оставь дебаг, просто ротацию логов добавь)
Dmitry
OpenStack без debug - ССЗБ