Nexus TCAM: почему региону подавления ARP нужно два среза
Логические записи — это лишь половина бюджета. Функции, вырезанной двойной шириной, нужна пара срезов, и одного свободного среза не в том месте недостаточно.
Вы определяете размер региона подавления ARP, считаете записи, необходимые проекту, находите регион с большей свободной ёмкостью, чем это, и изменение всё равно не помещается. Ничего не было посчитано неверно. Бюджет, который вы читали, измеряется в срезах, а функции, вырезанной двойной шириной, нужно два из них, прежде чем будет рассмотрена хоть одна запись.
Рассматривайте распределение как задачу компоновки с фиксированным числом единиц, и арифметика начнёт вести себя правильно.
Регион владеет срезами, а не записями
TCAM на этих платформах разделена на срезы, и каждый срез принадлежит ровно одному региону. Регионы измеряются в срезах, а ширина функции определяет, сколько срезов она потребляет как минимум. Функция одинарной ширины может жить в одном срезе; функции двойной ширины нужна смежная пара.
| Concept | What it means when you plan |
|---|---|
| Slice | The indivisible unit; it belongs to one region and cannot be shared |
| Feature width | Single or double; a double-width feature must have two slices available |
| Logical entries | What the feature wants to store, which only matters after the slices are allocated |
Таким образом, свободный срез — это не автоматически доступная ёмкость. Два региона одинарной ширины на отдельных срезах не объединяются в пару, которую требует новый регион двойной ширины, а таблица, показывающая много неиспользованного места в сумме, рассказывает вам о пуле, который вы не можете потратить.
Запишите базовую линию до того, как вырезать
Соберите точную модель оборудования, выпуск NX-OS, текущие ширины и размеры регионов, а также функции, потребляющие каждый регион. Сделайте это до любого изменения, потому что после перезагрузки предыдущее состояние — это воспоминание, а не факт.
show version
show hardware capacity
show running-config | include hardware profile
Имена команд различаются в зависимости от платформы и выпуска, и руководство по вырезанию называет те, что применимы к его собственному оборудованию. Читайте вывод, который вы действительно получаете, вместо того чтобы предполагать, что команда с другой модели даёт ту же таблицу.
Затем запишите, для чего нужен каждый регион. Регион VACL — это ёмкость фильтрации не просто так, а регион QoS существует потому, что кто-то рассчитал его под политику, которая всё ещё действует. План, который рассматривает эти области как возвращаемое место без проверки, — это план тихо удалить функции. Назначьте владельца для каждого региона, который собираетесь уменьшить, и сообщите этому владельцу новый размер до окна.
Учтите и направление. Там, где платформа связывает распределение входящего и исходящего трафика, изменение с одной стороны может потреблять бюджет с другой, и план, который считает только входящую таблицу, будет выглядеть правильным и провалится при перезагрузке.
Чего не делает освобождение одного большого среза
Уменьшение большого региона одинарной ширины освобождает один срез. Если вашему целевому региону нужна пара, этот единственный срез может оказаться бесполезным, если он не смежен с другим свободным срезом, а смежность — это свойство компоновки, а не суммы.
Именно здесь люди делают вывод, что платформа сломана или документация неверна. Ни то, ни другое не правда. Модель распределения делает ровно то, что говорит, а ошибка была в том, что считали свободное место вместо свободных срезов в правильных позициях. Как только вы нарисуете компоновку на бумаге, доступная пара либо есть, либо нет, и это гораздо более лёгкий разговор с владельцем платформы, чем спор об итогах.
Есть также ловушка версии, которую стоит назвать. Руководство Cisco по вырезанию описывает конкретное поколение оборудования и прямо заявляет, что его модель — ни Cloud Scale, ни Silicon One. Имена регионов, размеры по умолчанию и даже то, какие функции имеют двойную ширину, в других местах отличаются, поэтому предупреждение о конкретном регионе на одной платформе — это свидетельство об этой платформе и выпуске, а не универсальный рецепт.
Изменение региона — это изменение функции
Каждое вырезание — это обмен ёмкостью. Уменьшить регион, чтобы освободить место для подавления ARP — значит уменьшить то, что этот регион защищал, и последствие может проявиться только тогда, когда политика, которой нужно место, будет применена снова.
До окна получите письменное согласие владельца каждой затронутой функции. Это не бюрократия: человек, который изначально рассчитал регион VACL, знает, что он фильтрует, а человек, освобождающий место, обычно этого не знает.
Ожидайте перезагрузку для изменений, которые меняют компоновку оборудования. Некоторые платформы её требуют, некоторые нет, но планирование без окна обслуживания, когда перезагрузка возможна, — это способ, которым изменение маршрутизации превращается в простой. Планируйте окно вокруг перезагрузки, а не вокруг команды, и храните текст предыдущего профиля там, откуда вы сможете прочитать его с консоли, потерявшей сеанс управления.
Примените и проверьте относительно базовой линии
Примените план через поддерживаемый процесс платформы, затем проверьте функции, которые вы сохранили, а не только ту, которую добавили. Заново вырезанный регион, который работает, пока фильтрация тихо перестала совпадать, — худший результат, чем исходный сбой.
Перечитайте вывод ёмкости и сравните его с базовой линией, которую вы записали, затем проверьте функцию, которая вызвала изменение. Руководство по вырезанию Nexus TCAM — это справочник по модели ширины и срезов, описанной здесь, включая то, какое поколение оборудования оно охватывает.