Модернизация подсистемы организации распределенной многопотоковй обработки спутниковых данных ЦКП «ИКИ-Мониторинг»
Постоянное возрастание объемов спутниковых данных ДЗЗ и числа их типов наряду с увеличением числа их применений предъявляет все возрастающие требования к эффективности организации системы обработки. Необходимо максимально полно использовать имеющиеся вычислительные ресурсы и контролировать сотни различных процессов по обработке спутниковых данных. Для решения вышеперечисленных задач в рамках центра коллективного пользования ЦКП «ИКИ-Мониторинг» была разработана технология организации многопотоковой обработки спутниковых данных на кластере windows серверов. В настоящее время она успешно используется для проведения широкого спектра различных типов обработки спутниковых данных на кластере, включающем в себя более 200 серверов, включая виртуальные. Также около 30 серверов задействовано для выкладки комплектов данных на обработку и усвоения полученных результатов.
Все подготавливаемые под обработку комплекты данных разделены тематически на задания. Сервера подготовки данных на обработку выкладывают готовые комплекты по мере их поступления. Вычислительные узлы в свободном поиске в соответствии с приоритетом конкретного задания, а также с учетом других ограничений (на количество оперативной памяти, количество ядер, места на жестком диске вычислительного узла, а также севера результата, типа вычислительного узла и максимального количества одновременно обрабатываемых комплектов) решают какой комплект какого задания будет взят в обработку. Одновременно на вычислительном узле может обрабатываться несколько комплектов одного и того же задания. Каждый комплект обрабатывается в рамках одного потока, информация о процессах которого документируется в базе данных (время начала и окончания процесса, к какому потоку он принадлежит, командная строка вызова, PID, код возврата и лог ошибок). Одновременно обрабатываемые на вычислительном узле потоки организованны в сессии. По завершении всех потоков и выгрузки результата, обработчик завершает сессию задания, и переходит в режим поиска доступных к обработке комплектов других заданий. Принципиальная схема организации распределенной многопотоковой обработки спутниковых данных приведена на рисунке 1.
В 2024 г. активно велись работы модернизации системы управления обработкой с целью повышения ее эффективности и отказоустойчивости. В частности, была доработан механизм ограничений на максимальное количество вычислительных узлов, занятых одновременной обработкой одного и того же задания. Исторически это было связанно с необходимостью ограничить пул узлов выполняющих задания более низких приоритетов и гарантировать наличие в пуле свободных узлов для выполнения высоко приоритетных заданий, время выполнения которых критично. Чтобы выдерживать лимит, при подборе комплекта на обработку вычислительный узел посылал запрос в базу данных на количество обработчиков, уже выполняющих этот тип задания. Если их количество превышало максимальные лимиты данного типа, то узел не начинал новую сессию, и возвращался в режим поиска готовых к обработке комплектов других типов.

Рисунок 1 — Принципиальная схема организации распределенной многопотоковой обработки спутниковых данных
При выставлении лимитов на максимальное количество узлов для заданий с малым временем обработки, граничный эффект, сказанный с моментом, когда ни один из обработчиков не выполняет задание, а сервер выкладки делает доступным достаточно большое количество комплектов, не оказывал значимого влияния на доступность обработчиков в пуле. Но с увеличением количества видов заданий и появлением достаточно большой их части с продолжительным временем выполнения, граничный эффект стал оказывать значительное влияние, и приводить к несбалансированной перегрузке пула одним продолжительным видом задания с низким приоритетом, и простою большого количества высокоприоритетных заданий с малым временем выполнения. Это было связано с тем, что при одновременном старте большого количества узлов, среагировавших на появление комплектов данных определенного типа, все они делали запрос в базу данных. Так как ни один узел на этот момент не был занят выполнением задания этого типа, то всем узлам отправлялся ответ, что лимиты не превышены и обработка комплекта разрешена.
С целью соблюдения лимитов на обработку определенных типов заданий, в системе обработки ЦКП «ИКИ-Мониторинг», был реализован механизм блокирования «LOCK». Прежде чем анализировать соблюдение условий на возможность выполнения задания определенного типа обработчик выставляет в БД специальный флаг (пользовательскую блокировку), информирующий остальные узлы. Этот флаг будет существовать в базе данных до тех пор, пока обработчик не снимет его сам (в случае если он успешно начал обработку, либо не смог её начать и перешел обратно в режим поиска), либо флаг будет автоматически снят, если обработчик потеряет связь с базой данных. Если флаг выставлен, то другие обработчики не смогут выставить его повторно, и будут ждать в очереди какое-то время, пытаясь его поставить. Если узел не смог выставить флаг, то он прекращает попытку выполнения данного комплекта и возвращается в режим поиска. Так как флаг выставляется перед проверкой лимитов, а снимается уже после старта непосредственно самой обработки (либо перехода обработчика к другой обработке, если он превышает лимиты), то данный механизм позволяет жестко гарантировать соблюдение ограничения максимального количества обработчиков заданного в конфигурации каждого задания.
Также в 2024 г. был модифицирован механизм подключения дисковых разделов по сети для выгрузки полученных в результате обработки данных. Перед тем как начать обработку задания, вычислительный узел проверяет выполнение различных параметров, в том числе наличие достаточного количества свободного места на серверах выгрузки результата. В связи с чем, сетевой диск этого сервера (у каждого типа задания он свой), должен быть подключен на этапе проверки ограничений. В некоторых случаях процесс подключения сетевых разделов по протоколу smb зависал по разным причинам, что приводило к частичной остановке процедур на обработчике.
Для парирования таких ситуаций, подключение сетевых дисков на этапе проверки ограничений перед обработкой было вынесено в отдельный процесс, с установленным таймаутом на выполнения (5 секунд). Если сетевой диск не подключается за отведенное время, система завершает процесс, после чего обработчик возвращается в режим свободного описка, пропуская недоступный сервер.
Реализация вышеописанных нововведений, позволила сократить время простоя вычислительных мощностей и в то же время обеспечить наличие свободного пула вычислительных узлов, необходимого для выполнения высокоприоритетных заданий.