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