Задать вопрос
@dexxp

Сможет ли кластер minio выдержать 60000 клиентов, стримящих данные?

Всем привет! Я новичок в DevOps, и мне необходимо построить систему, которая сможет собрать файлы с 60к хостов, которые будут делать это, вероятнее всего, параллельно.

Клиент (sender-service)
На каждом хосте запускается клиент на golang(minio-go), который регулярками обходит директории и достаёт из них файлы(файлы в основном небольшие). К этим файлам добавляется префикс hostname/filepath и они сразу же отправляются(стримятся) по сети в S3 в сжатом потоке(lz4.Writer). Каждый клиент запускается на хосте единоразово и работает в однопоточном режиме. За свою работу sender-service отправит всего около 100мб сжатых данных и порядка 3-5к файлов.

Кластер MinIO (предполагаемый мной):
  • Количество хостов: 4
  • ОС: linux
  • Количество ядер: 8-16
  • ОЗУ: 32/64 гб
  • Количество инстансов MinIO: 4, один на хост
  • Количество дисков: 3 локальных SSD (1-2 ТБ), итого 12 дисков
  • Внутреннее соединение между нодами: 10 Gbps
  • Используется EC 8+4
  • Внешний балансировщик (думаю насчет HAProxy или Envoy) с round-robin

reader-service
Когда sender-service закончит работу, он отправит свой hostname в reader-service, в свою очередь он сходит в S3 и достанет из бакета все объекты по этому префиксу. Все эти объекты reader-service заархивирует и отправит во внешнюю систему. То есть, нагрузка на чтение из S3 тоже будет и это нужно как-то учитывать.
(!) Этот сервис обрабатывает ровно одного клиента за раз

Вопросы:
  • Выдержит ли такая конфигурация MinIO 60 000 одновременных клиентов, если нагрузка идёт в стриминге?
  • Есть ли ограничение на количество одновременных соединений/транзакций в MinIO, о котором стоит знать?
  • Есть ли известные узкие места в такой архитектуре?

Очень важно: не потерять файлы
Чем можно пренебречь:
  • Скорость: главное, чтоб всё собралось
  • Долго и надежно хранить: после отправки архива reader-service'ом, данные в бакете по этому хосту больше не нужны

Подытожу:
Система работает разово, но с высокой интенсивностью. Нужно минимизировать стоимость инфраструктуры, не потеряв файлы при параллельной отправке от 60к клиентов, при этом скоростью и долговечностью можно пренебречь. Буду признателен за советы, практический опыт или ссылки на бенчмарки.
  • Вопрос задан
  • 34 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы