Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for MongoDB
  • Начало работы
    • Взаимосвязь ресурсов сервиса
    • Сеть в Managed Service for MongoDB
    • Квоты и лимиты
    • Хранилище в Managed Service for MongoDB
    • Резервные копии
    • Репликация и отказоустойчивость
    • Шардирование
    • Пользователи и роли
    • Техническое обслуживание
    • Поддерживаемые клиенты
    • Настройки MongoDB
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Преимущества шардирования
  • Использование шардирования
  • Особенности управления шардированием в Managed Service for MongoDB
  1. Концепции
  2. Шардирование

Шардирование в Managed Service for MongoDB

Статья создана
Yandex Cloud
Улучшена
Dmitry A.
Обновлена 18 сентября 2024 г.
  • Преимущества шардирования
  • Использование шардирования
  • Особенности управления шардированием в Managed Service for MongoDB

Шардирование — стратегия горизонтального масштабирования данных, при которой части коллекций MongoDB размещаются на разных хостах кластера. Шард (набор хостов) связывается с набором данных с помощью ключа шардирования. MongoDB поддерживает шардирование для работы с большими объемами данных и для увеличения пропускной способности СУБД. Шардирование особенно полезно, когда вертикальное масштабирование (увеличение мощности сервера) нерентабельно или невозможно.

Managed Service for MongoDB поддерживает основные стратегии шардирования данных:

  • по хешу (ключ шардирования на базе хеша);
  • по диапазону значений (ranged sharding).

Более подробно шардирование баз MongoDB рассмотрено в документации MongoDB.

Преимущества шардированияПреимущества шардирования

Шардирование позволяет распределить нагрузку по хостам базы данных и обычно используется в следующих случаях:

  • Ожидаются высокая частота запросов к базе данных и быстрый рост количества данных.
  • Приложение требует все больше и больше ресурсов, но наращивать вычислительную мощность хостов кластера (дисков, памяти и процессоров) уже невозможно.

Горизонтальное масштабирование подразумевает распределение набора данных и нагрузки по нескольким узлам. Также для увеличения дисковой емкости могут добавляться серверы. Емкость одной машины или ее скорость могут быть невысокими, но в горизонтально масштабируемом кластере каждая машина обрабатывает лишь часть общей нагрузки и хранит лишь часть общих данных. Это делает систему потенциально эффективнее, чем единственный сервер с большой емкостью и быстрыми дисками.

Шардирование помогает:

  • Преодолевать технические ограничения.

    Потребность работать с большими наборами данных может привести к тому, что инфраструктура хранения данных упрется в предел возможностей оборудования, доступного на рынке (например, IOPS дисковой подсистемы).

    Если приложения работают близко к лимитам производительности, имеет смысл разбить информацию на шарды и распределить операции чтения.

  • Создавать геораспределенные системы.

    Распределение шардов кластера по различным регионам может помочь:

    • улучшить доступность для региональных пользователей;
    • соблюсти местные законы, например, требование о хранении данных на территории определенной страны или региона.
  • Повышать отказоустойчивость.

    Шардирование позволяет изолировать отказы отдельных хостов или наборов реплик. Без шардирования потеря отдельного хоста приводит к потере доступа ко всему набору данных, которые он содержит. А отказ, например, одного шарда из пяти оставляет доступными 80% данных коллекции.

    Чтобы уменьшить риск отключения целого шарда, шарды рекомендуется настраивать как наборы трех реплик. Распределение хостов одного шарда по различным зонам доступности Yandex Cloud позволяет увеличить доступность данных.

  • Повышать скорость выполнения запросов.

    Скорость запросов может снижаться из-за конкуренции за ресурсы. Обычно это происходит при росте количества операций чтения или затрат процессорного времени на их обработку.

    Шарды выполняют запросы к одной и той же коллекции параллельно. Это исключает конкуренцию за общие ресурсы (процессор, дисковая подсистема) и сокращает время обработки запросов.

Использование шардированияИспользование шардирования

Чтобы распределить данные по шардам:

  1. Включите шардирование на уровне кластера Managed Service for MongoDB.
  2. Добавьте нужное количество шардов.
  3. Включите шардирование для нужных коллекций.

См. также пример шардирования.

Особенности управления шардированием в Managed Service for MongoDBОсобенности управления шардированием в Managed Service for MongoDB

Managed Service for MongoDB управляет шардами следующим образом:

  • Из-за ограниченных ресурсов кластер с хостами классов b1.medium и b2.medium не шардируется.

  • Кластер можно создать шардированным либо включить шардирование позже.

  • За управление шардированием в Managed Service for MongoDB отвечают хосты с ролями MONGOS (маршрутизация запросов пользователей) и MONGOCFG (хранение конфигурации шардов).

  • В Managed Service for MongoDB можно включить шардирование двух типов:

    • Стандартное — экономичный тип шардирования для кластеров, в которых нет особых требований к хостам, управляющим шардированием.

      В кластер будут добавлены хосты MONGOINFRA, сочетающие в себе роли MONGOS и MONGOCFG. Минимальное количество таких хостов — три.

    • Расширенное — гибкий тип шардирования для кластеров, в которых требуется определенное количество хостов каждой роли.

      В кластер будут добавлены выделенные сервера MONGOS и MONGOCFG. Минимальное количество хостов MONGOS — два, хостов MONGOCFG — три.

  • В кластере с включенным шардированием:

    • Все запросы к Managed Service for MongoDB должны направляться к хостам MONGOS или MONGOINFRA вместо MONGOD.
    • Нельзя отключить шардирование или полностью удалить хосты, которые поддерживают работу шардирования: в кластере всегда будет поддерживаться минимальное количество хостов MONGOS и MONGOCFG или MONGOINFRA.

Была ли статья полезна?

Предыдущая
Репликация и отказоустойчивость
Следующая
Пользователи и роли
Проект Яндекса
© 2025 ООО «Яндекс.Облако»