Привет, Хабр! Меня зовут Валентин Тимофеев, я системный инженер в 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: зачем мы устанавливаем новые динамические ИБП
→Зачем мы установили беспроводные датчики мониторинга напряжения стоек и в чем профит для клиентов дата-центра
Комментарии (7)
Stas911
12.07.2022 04:46А не проще было просто собрать имеющиеся данные о координатах, количестве плиток и поворотов и что еще у вас там влияет на длину, запихнуть все это в регрессию и получить на выходе модель?
cherry_velly Автор
12.07.2022 11:42Проще может быть, с достаточной точностью - вряд ли. Отображения лотков нет, а они могут идти не строго по плиткам.
DabjeilQutwyngo
12.07.2022 08:10Рассматривали ли вы как вариант точного сбора координат услуги по 3D-сканированию? Предлагаемая точность варьируется от 1 мм до 0.025 мм. Масштабы от зданий до мелких сантиметровых изделий. На выходе получаете точную трёхмерную модель. Останется лишь выполнить распознавание точек подключения в ней, чтобы заполнить ими реестр.
cherry_velly Автор
12.07.2022 11:44Честно, рассматривал.
DabjeilQutwyngo
14.07.2022 04:27С практической точки зрения, в связи с чем отклонили? Что-то помешало его применить?
little-brother
Ого вы изобрели инструменты _line и _list в AutoCAD :)
Вы фронт на чем каком фреймворке рисуете?
Ну и "сопливить" патч-кордами (хоть и оптическими) - спорное решение (говорю со стороны проектировщика). Имхо, если есть небольшой бюджет, то оптимальнее раскидать кроссы по залу (например, в виде настенных кроссов на траверсах) и от них уже забирать типовыми коммутационными шнурами. Это позволит сократить время прокладки кабелей и емкость лотков + оболочка кабеля более надежна, чем у кабелей типа ЗИП-корд, которые можно повредить при следующей протяжке.
Оптика она на такая уж и дорогая, к тому же у вас наверняка свой сварочник и люди которые умеют им пользоваться. Видел как инженеры Ростелека не парятся, когда нужно переместить кросс из одного шкафа в соседний - просто отрезается кабель и потом на те же пигтейлы переваривается.
cherry_velly Автор
Про фреймворк частично можно почитать здесь: https://slc.tl/qpb6u.
С точки зрения проектирования, раскидывать кроссы по серверным, может и неплохое решение, но я реально сталкивался с ситуациями, где людям удобнее тянуть между серверными, чем через кроссы.
Плюс кроссы — это дополнительные точки отказа. Например, коннекторные соединения, которые в норме могут съедать по ~0,2 дБм. Или как вариант, повреждается ВОК. Случайно, или саботаж — падает больше одного линка (да, я понимаю, что можно и пучок повредить патчкордов). При монтаже нового патчкорда шансов повредить старые линии очень мало. Особенно, когда мы перешли к разделению лотков на медные и оптические.
Вот при демонтаже линков, особенно погребённых под сотнями более свежих патчей, шанс повредить есть. В таких случаях дешевле кабель порезать и вытянуть без лишних зацепов.
По поводу перетягивания кроссов. Это удобно, когда вы единственный потребитель линий, но когда в 144-портовом кроссе более 50 клиентов, согласовать со всеми перенос линии проблематично.