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