Привет, Хабр! Меня зовут Валентин Тимофеев, я системный инженер в Selectel. Сегодня я поделюсь историей, зачем нам потребовался собственный инструмент для измерения расстояний между стойками для кроссировки и что мы в итоге сделали.
Кроссировка нужна, например, при масштабировании клиентских вычислительных мощностей в сезон активных продаж или при резервации. За последние два года мы кинули порядка 4 000 линков только в дата-центре Цветочная-2.
От идеи к практике
Одна из самых частых задач в наших дата-центрах — монтаж оптической кроссировки между стойками. Если патч медный, то его можно легко протянуть, укоротить и обжать. С оптическим сделать такое труднее из-за необходимости сварки и более высокой стоимости волокна и коннекторов.
Быстрее и проще использовать готовые патч-корды с шагом длины 0,5-1 метр. Проблема в том, что измерить длину от стойки до стойки по лоткам сложно. Есть несколько способов решения:
- Стандартный. Использовать курвиметр — самый правильный и логичный способ. Но измерения с ним могут содержать погрешность*. Она собирается из нетривиальных вводов в стойку и тяжелых поворотов. Тем не менее при правильном использовании погрешность редко превышает метр.
- Хитрый. Для этого нам понадобится лазерная рулетка и плоский ровный предмет (например, фальшпанель). С таким набором можно провести измерения от угла до угла. Погрешность около двух метров.
- Хитрый, но медленный. Измерения проводим так же, но вместо лазерной рулетки используем обычную. Погрешность около метра.
- Быстрый. Можно проводить измерения по количеству плиток фальшпола. Погрешность до метра.
*Все погрешности указаны с учетом личных наблюдений при монтаже более 1 000 оптических кроссировок.
Боль инженера №42: отсутствие универсального решения. Хотелось оптимизировать процесс сбора замеров и не тратить ресурсы на выполнение рутинных задач.
Кроме замеров, нужно еще поднять на этаж инструменты, добраться до серверной, найти те самые стойки и проложить оптимальный маршрут. Дело в том, что в дата-центрах Selectel кроссировки можно монтировать разными непересекающимися маршрутами.
Сначала тестировали, как Google Sheets может помочь нам в расчетах. Попробовали использовать формулу «сумм()» и прокликивать все ячейки в маршруте. После того как формула показывала результат, проводили альтернативные измерения. Тест показал, что такой способ выдает погрешность около двух метров.
В общем, стало очевидно, что какие-то «кустарные» методы работают не очень. Нужно использовать более «умные» инструменты и компетенции разработчиков компании. Так пришли к самописному решению, которое получило название «Длинномер».
Собственное решение
Чтобы разделить обязанности по разработке универсального инструмента, мы заручились поддержкой отдела DCIM (Data Center Infrastructure Management). Инженеры ИТО отвечали за сбор данных о положении и конфигурации стоек, а коллеги из DCIM занялись реализацией инструмента. Забегая вперед, хочется посоветовать чаще обращаться к своим коллегам за помощью. Совместные проекты — это круто.
Сначала решили собрать обычный документ и поставить «виртуальные» точки над каждым вводом в стойку. Затем логически соединить их. Далее задать расстояние между ними по принципу поиска кратчайшего пути. Звучит просто, но, как и где это отображать, — вопрос оставался открытым.
Как проходил сбор данных
Нужно было решить две проблемы:
- Правильно рассчитать расстояние между стойками. Короткий путь кроссировки не всегда правильный.
- Система должна понимать, какой маршрут кроссировки выбран.
В теории можно было перечислить все промежуточные точки с учетом возможных развилок, но оптимизацией от этого решения не пахло.
Тогда мы придумали объединить наш проект с DCIM-системой Racks и учитывать отображение по схеме сверху.
Интеграция с Racks
Racks — наша собственная разработка учета инфраструктуры. В приложении выстроена иерархия для более удобного мониторинга физических объектов дата-центра. Например, можно узнать проектные мощности или сделать фильтрацию по клиентам и посмотреть, кто занимает конкретную стойку.
В Racks используется координатная сетка х-у, поэтому наше решение получилось не только рабочим, но и визуально элегантным.
Мы начали вести сбор данных в «песочнице», то есть в самой маленькой серверной в одном из дата-центров Санкт-Петербурга. На этом этапе появилось два неудобных вопроса.
- Как собирать данные правильно?
- Какую часть лотка использовать?
Лоток имеет ширину 300 мм, а ввод в стойку может быть как с одной стороны лотка, так и с другой.
После теста нескольких вариантов решения, мы остановились на том, чтобы считать отправными точками центр стойки и центр лотка. Далее собрали схематичную картину, в которой могут быть два ввода и возможности выбора координат.
Вооружившись разными рулетками, грузиками, наклейками, а также блокнотом, я начал «прыгать по серверной». Нашел нулевую точку (на скриншоте левая верхняя) и пошел вдоль лотков. Буду откровенен — приключение не на 20 минут. Процесс замеров между точками занял достаточно много времени.
Взяв за основу координату шкафа в левом верхнем углу, я смог правильно рассчитать нулевую точку, а потом — координаты остальных точек.
Данные в таблице представлены для наглядности и не соответствуют реальному расположению.
Параллельно измерениям шла разработка бэкенда, фронта и алгоритма расчетов. В конечном итоге получилась такая картина:
Отображение пути и расстояния между стойками теперь выглядят так:
Как изменилась работа инженеров дата-центра
Каждый день в отдел может поступать десяток клиентских запросов по монтажу кроссировок. С первым релизом «Длинномера» мы заметили значительную разницу во всем процессе и приступили к дальнейшему сбору данных по другим серверным, чтобы распространить наш опыт.
Используя длинномер, инженер теперь может построить маршрут, проверить наличие нужных патчей на складе и определить необходимую длину без больших погрешностей.
Если раньше первичная обработка заявок на кроссировку могла занимать целый день, то сейчас мы сократили время почти на 30% и можем эффективнее предоставлять услуги клиентам.
Как мы планируем развивать «Длинномер» дальше
Сейчас мы дорабатываем координату высоты. Некоторые лотки имеют перепады высоты из-за архитектурных особенностей серверных помещений и различия самих стоек.
Сейчас длиномер работает в пределах одной серверной. Поскольку мы делаем кроссировки между разными серверными и соседствующими дата-центрами, то в планах сделать так, чтобы система сама находила кроссовые соединения серверных и сама считала количество и тип подходящих патчей.
Мы высоко ценим роль резервирования, поэтому также планируем доработать функциональность по поиску альтернативных непересекающихся маршрутов. Когда система предлагает выверенные обходные маршруты, это также позволяет оптимизировать время кроссировки, исходя из запаса патчей на складе.
Читайте также по теме:
→DCIM-платформа Racks: почему мы отказались от энтерпрайз-решения в пользу самописного приложения
→Piller CPM300: зачем мы устанавливаем новые динамические ИБП
→Зачем мы установили беспроводные датчики мониторинга напряжения стоек и в чем профит для клиентов дата-центра