Перейти до вмісту
EuroVPSEuroVPS

Ваш інвентар є гіпотезою, доки мережа її не підтвердить

Як тримати DCIM чесним: доведіть, що IP вільна, трьома способами, читайте MAC з контролера, підтверджуйте лінки через LLDP і FC fabric, перечитуйте кожне поле.

Автор EuroVPS Engineering

5 хв читання
Your inventory is a hypothesis until the network confirms it

Кожен інвентар датацентру починається точним і дрейфує з першого ж дня. Сервер переставили, кабель замінили поспіхом, адресу використали повторно, і запис тихо перестає описувати реальність. Ліки тут не більша таблиця. Це звичка: ставитися до кожного запису як до твердження і звіряти його з живою мережею щоразу, коли ви його пишете або на нього покладаєтеся.

Живий пристрій перемагає

Перше правило є тим, що вирішує кожну суперечку. Коли запис і пристрій розходяться, правий пристрій, а запис виправляють. DCIM, яку безперервно звіряють з працюючою мережею, стає найкориснішим інструментом, який у вас є о третій годині ночі.

Ми використовуємо власну DCIM, побудовану на RackTables і розширену модулями, які витягують живі дані з пристроїв: таблиці ARP, стан портів, zoning Fibre Channel, експорти storage і конфігурації switch. Ці вивантаження існують для того, щоб запис можна було звірити з дротом, а не довіряти йому самому по собі.

Доведіть, що адреса вільна, трьома способами

Запис, який каже «вільна», є першою перевіркою, а не останньою. Перш ніж призначити будь-яку адресу, ми перевіряємо її трьома способами:

  1. Запис. Чи виділена вона чомусь у DCIM?
  2. Таблиці ARP. Чи бачив її нещодавно якийсь маршрутизатор або switch у цьому сегменті? На пристроях Cisco show ip arp <address> відповідає за секунду.
  3. Сам дріт. З хоста в тому самому сегменті виявлення дублікатів адрес запитує весь сегмент, чи володіє хтось цією адресою:
arping -D -I <interface> -c 3 <address>
echo $?    # 0 means nobody answered, 1 means the address is in use

Ping є найслабшою з перевірок, бо хост за firewall на нього не відповість, і саме тому ARP важить більше в локальному сегменті. Якщо будь-яка перевірка розходиться із записом, перемагає жива відповідь, і ви розбираєтеся, перш ніж щось призначати. За кожним призначенням потім ідуть його прямий і зворотний записи DNS, щоб кожна адреса в мережі резолвилася в ім’я, яке каже, що це таке.

Підтвердіть обладнання та його лінки

Читайте MAC-адреси з машини

MAC-адреси, переписані вручну з наклейки або з комерційної пропозиції, бувають помилковими достатньо часто, щоб це мало значення. Ще до того, як сервер поставлять у стійку, його контролер керування вже може сказати вам справжню MAC кожного мережевого порту, а на блейд-системах шасі може назвати кожну MAC і кожен WWPN Fibre Channel для кожного відсіку. Прочитайте їх звідти і запишіть у запис. Коли сервер під’єднано, таблиця MAC-адрес switch має показати точно ті адреси, які ви записали, точно на тих портах, які ви запланували.

Підтвердіть кабелювання через LLDP

План кабелювання є заявою про намір. LLDP каже вам, що насправді під’єднано. На switch:

show lldp neighbors detail

На хості з Linux, де працює lldpd:

lldpctl

Кожна сторона повідомляє про сусіда, якого бачить: ім’я системи і порт. Порівняйте це з лінками в записі. Сервер, який повідомляє правильний switch на неправильному порту, є помилкою кабелювання, спійманою до того, як вона понесе трафік, а не півднем плутанини пізніше.

Перечитуйте кожне поле

Коли збірку або роботу з кабелювання завершено, прочитайте кожне поле, яке ви записали, назад з бази даних і порівняйте з планом: юніти в стійці, порти, MAC-адреси, лінки з обох кінців, cable ID, виділення адрес з інтерфейсом, на якому вони живуть, контролер керування, а для блейдів їхнє місце в шасі. Напівзаповнений об’єкт є незавершеною роботою, а не чернеткою, яку допишуть пізніше. «Пізніше» і є тим, як записи дрейфують.

Ще один запобіжник дешевий і ловить напрочуд багато: регулярно запускайте звіт про дублікати, бо два записи для однієї машини вводять в оману так само, як жодного.

Звіряйте і storage fabric

У fabric Fibre Channel запис має містити WWPN кожного порту хоста, порт switch, на який він потрапляє, і зони, до яких він належить. Сам fabric може підтвердити всі три. На switch Brocade switchshow перелічує, хто залогінений на кожному порту, nsshow перелічує WWPN, зареєстровані в name server fabric, а zoneshow друкує активний zoning. Порівняйте їх із записом в обох fabric. Хост, який виявляється залогіненим лише в одному fabric, є хостом за одну відмову switch від втрати своїх дисків, і порівняння знаходить його до того, як це станеться. Ми витягуємо zoning зі switch у нашу DCIM саме з цієї причини, щоб запис про зону був зоною такою, якою її застосовує fabric.

Ніколи не використовуйте cable ID повторно

Кожен кабель, який ми встановлюємо, несе ламіновану етикетку з обох кінців з унікальним числовим cable ID і стійкою, пристроєм, портом і довжиною на іншому кінці, і те саме число записане на лінку в DCIM. Правило, яке змушує це працювати, є тим, яке найбільше кортить порушити: cable ID ніколи не використовується повторно, навіть номер кабелю, який давно прибрали. Наші номери надходять із виділеного allocator, резервуються до друку етикеток і відстежуються на дублікати. Чому звичний метод «найбільший номер плюс один» не працює і як правильно організувати виділення, йдеться у статті Нумерація кабелів: чому «найбільший плюс один» є неправильним правилом.

Спочатку будуйте на папері

Усе це сходиться в одній звичці: нове обладнання повністю є в записі ще до того, як воно прибуде. Юніти в стійці, контролери керування, кожен порт з його MAC-адресою, port-channel, порти switch на іншому кінці і зарезервований cable ID для кожного лінка. Набір етикеток друкується заздалегідь, і обладнання ставлять у стійку та кабелюють за планом, який уже є записом. Перевірка наприкінці тоді є порівнянням, а не реконструкцією.

Перевірте власні записи

  • Виберіть адресу, позначену як вільна, і виконайте всі три перевірки. Чи сходяться вони?
  • Виберіть сервер і порівняйте його записані MAC з таблицею MAC switch.
  • Запустіть LLDP на одній стійці і порівняйте кожен лінк із записом.
  • Порівняйте WWPN кожного хоста в записі з nsshow в обох fabric.
  • Пошукайте будь-який номер кабелю, що з’являється на двох лінках.

Якщо ви плануєте міграцію і хочете, щоб її побудували на записі, якому можна довіряти, ми можемо допомогти. Поговоріть з інженером

Related (rows[1])

Пов’язане: DCIM: кожен об’єкт, порт, кабель і адреса відстежуються · Збірка стійок, підключення blade, контролери керування · Відстеження живлення та потужності

Опубліковано 3 вересня 2026 р..

Усі нотатки з практики