Рейтинг:0

MAAS не смог справиться с бесконечными MAC-адресами длиной 20 октетов.

флаг ug

Я устанавливаю MAAS 3.0 (regiond+rackd) на узел управления HPC (Ubuntu 18.04х¼. Сетевые интерфейсы infiniband сразу вызвали некоторые проблемы, потому что его MAC-адрес 20-октет долго, не 6-октет длинный. Но БД MAAS использует тип макадр для столбца mac_address в таблице maasserver_interface, который предполагает 6 октетов.

2021-07-21 07:37:31 maasserver.start_up: [ошибка] Ошибка базы данных при запуске
Traceback (последний последний вызов):
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 84, в _execute
    вернуть self.cursor.execute (sql, параметры)
psycopg2.errors.InvalidTextRepresentation: недопустимый синтаксис ввода для типа macaddr: "20:00:19:07:fe:80:00:00:00:00:00:00:b8:83:03:ff:ff:7f: 31:d5"
LINE 1: ...15:fe', '00:11:0a:6c:25:4d', '14:02:ec:33:2b:75', '20:00:19:...
                                                             ^


Вышеупомянутое исключение было прямой причиной следующего исключения:

Traceback (последний последний вызов):
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/start_up.py", строка 68, в start_up
    выход deferToDatabase (inner_start_up, master = master)
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/twisted/python/threadpool.py", строка 250, inContext
   результат = inContext.theWork()
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/twisted/python/threadpool.py", строка 266, в <lambda>
    inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/twisted/python/context.py", строка 122, в callWithContext
    вернуть self.currentContext().callWithContext(ctx, func, *args, **kw)
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/twisted/python/context.py", строка 85, в callWithContext
    функция возврата (*аргументы,**кВт)
  Файл "/snap/maas/15003/lib/python3.8/site-packages/provisioningserver/utils/twisted.py", строка 870, в callInContext
    функция возврата (*args, **kwargs)
  Файл "/snap/maas/15003/lib/python3.8/site-packages/provisioningserver/utils/twisted.py", строка 202, в обертке
    результат = функция (* аргументы, ** kwargs)
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/orm.py", строка 706, в call_with_connection
    функция возврата (*args, **kwargs)
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/__init__.py", строка 194, в call_with_lock
    функция возврата (*args, **kwargs)
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/orm.py", строка 751, в call_within_transaction
    вернуть func_outside_txn(*args, **kwargs)
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/orm.py", строка 554, в retrier
    функция возврата (*args, **kwargs)
  Файл "/usr/lib/python3.8/contextlib.py", строка 75, во внутреннем
    функция возврата (*args, **kwds)
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/start_up.py", строка 121, в inner_start_up
    node = RegionController.objects.get_or_create_running_controller()
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/models/node.py", строка 741, в get_or_create_running_controller
    узел = self._find_or_create_running_controller()
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/models/node.py", строка 778, в _find_or_create_running_controller
    узел = self._find_running_node()
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/models/node.py", строка 798, в _find_running_node
    вернуть get_one (nodes.distinct())
  Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/orm.py", строка 112, в get_one
    извлеченные_элементы = кортеж (islice (элементы, 0, 2))
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/models/query.py", строка 274, в __iter__
    self._fetch_all()
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/models/query.py", строка 1242, в _fetch_all
    self._result_cache = список (self._iterable_class (я))
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/models/query.py", строка 55, в __iter__
    результаты = компилятор.execute_sql (chunked_fetch = self.chunked_fetch, chunk_size = self.chunk_size)
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/models/sql/compiler.py", строка 1140, в execute_sql
    курсор.execute(sql, параметры)
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 67, выполняется
    вернуть self._execute_with_wrappers (sql, params, many=False, executor=self._execute)
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 76, в _execute_with_wrappers
    исполнитель возврата (sql, params, many, context)
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 84, в _execute
    вернуть self.cursor.execute (sql, параметры)
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/utils.py", строка 89, в __exit__
    поднять dj_exc_value.with_traceback(traceback) из exc_value
  Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 84, в _execute
    вернуть self.cursor.execute (sql, параметры)
django.db.utils.DataError: неверный синтаксис ввода для типа macaddr: "20:00:19:07:fe:80:00:00:00:00:00:00:b8:83:03:ff:ff: 7f:31:d5"
LINE 1: ...15:fe', '00:11:0a:6c:25:4d', '14:02:ec:33:2b:75', '20:00:19:...
                                                             ^

Есть ли способ ограничить сетевые интерфейсы, которые будет читать maas? Например, чтобы исключить интерфейсы infiniband (ib0 и ib1 в моем случае).

Или я предлагаю разработчикам MAAS использовать другой тип (изменяющийся символ) для столбца mac_address.

Спасибо

Ответить или комментировать

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