Хранилище в Managed Service for MongoDB
Managed Service for MongoDB позволяет использовать сетевые и локальные диски для организации хранилища кластеров баз данных. Сетевые диски реализованы на базе сетевых блоков — виртуальных дисков в инфраструктуре Yandex Cloud. Локальные диски физически размещаются в серверах хостов БД.
При создании кластера вы можете выбрать для хранилища следующие типы дисков:
-
Сетевые HDD-диски (
network-hdd
) — самый экономичный вариант для кластеров, не требовательных к скорости записи и чтения. -
Сетевые SSD-диски (
network-ssd
) — компромиссный вариант: медленнее, чем локальные SSD-диски, но, в отличие от них, обеспечивает сохранность данных при выходе из строя оборудования Yandex Cloud. -
Нереплицируемые SSD-диски (
network-ssd-nonreplicated
) — сетевые SSD-диски с повышенной производительностью, реализованной за счет устранения избыточности.Объем такого хранилища можно увеличивать только с шагом 93 ГБ.
-
Локальные SSD-диски (
local-ssd
) — самые быстрые диски.Объем такого хранилища можно увеличивать:
- для платформ Intel Broadwell и Intel Cascade Lake — только с шагом 100 ГБ;
- для платформы Intel Ice Lake — только с шагом 368 ГБ.
Список классов хостов и соответствующих им платформ см. в разделе Классы хостов.
Примечание
Для кластеров, хосты которых располагаются в зоне доступности
ru-central1-d
, недоступно хранилище на локальных SSD-дисках при использовании платформы Intel Cascade Lake.
Выбор типа диска при создании кластера
Количество хостов, которые можно создать вместе с кластером MongoDB, зависит от выбранного типа диска:
-
При использовании хранилища на локальных SSD-дисках (
local-ssd
) или на нереплицируемых SSD-дисках (network-ssd-nonreplicated
) вы можете создать кластер из трех или более хостов.Такой кластер будет отказоустойчивым.
Хранилище на локальных SSD-дисках влияет на тарификацию кластера: он тарифицируется, даже если остановлен. Подробнее в правилах тарификации.
-
При использовании хранилища на сетевых HDD-дисках (
network-hdd
) или сетевых SSD-дисках (network-ssd
) вы можете добавить любое количество хостов в пределах текущей квоты.
Подробнее об ограничениях на количество хостов в кластере или шарде см. в разделе Квоты и лимиты.
Управление дисковым пространством
Если хотя бы один хост в кластере Managed Service for MongoDB исчерпает все доступное ему дисковое пространство, то инстанс MongoDB на этом хосте аварийно завершит работу и хост станет неработоспособным. Если хост был первичной репликой (PRIMARY
), то эта роль перейдет на одну из вторичных реплик (SECONDARY
). Возможна ситуация, когда в результате миграции роли PRIMARY
с хоста на хост исчерпается дисковое пространство на всех хостах кластера, что приведет к неработоспособности кластера в целом.
Чтобы этого не произошло, сервис Managed Service for MongoDB отслеживает расходование дискового пространства и автоматически переводит в режим только чтение
(с помощью метода db.fsyncLock
- осталось менее 500 МБ свободного места (если размер хранилища хоста менее 600 ГБ);
- осталось менее 5 ГБ свободного места (если размер хранилища хоста 600 ГБ или более).
При переходе в режим только чтение
:
- На хосте запрещаются запросы на запись, возможны только на чтение.
- Если хост до перевода в режим
только чтение
был первичной репликой, то эта роль будет автоматически назначена другому хосту кластера, т. к. роль первичной реплики требует возможности записи на диск.
Если объем данных в кластере продолжает увеличиваться, то в режим только чтение
перейдут один за другим все хосты, и кластер перестанет принимать данные на запись.
Поддержка работоспособности кластера
Чтобы сохранить работоспособность кластера при переходе хоста в режим только чтение
:
-
Увеличьте объем диска на хосте. Если на хосте станет достаточно места, Yandex Cloud снимет режим
только чтение
автоматически. -
Добавьте в кластер дополнительные шарды. Режим
только чтение
на этом хосте не снимется, но кластер сможет продолжить нормальную работу — при условии, что на остальных шардах есть свободное дисковое пространство. -
Попросите техническую поддержку
о временном снятии режиматолько чтение
с этого хоста, чтобы вручную удалить часть данных.Внимание
Если свободное дисковое пространство снизится до нуля, MongoDB аварийно завершит работу и кластер станет неработоспособным.
-
Принудительно синхронизируйте данные между хостами. Это поможет, если из кластера был удален большой объем данных, но дисковое пространство не было освобождено (т. е. помечено как доступное к переиспользованию).