Хранилище в Yandex Managed Service for Valkey™
Yandex Managed Service for Valkey™ позволяет использовать сетевые и локальные диски для организации хранилища кластеров баз данных. Сетевые диски реализованы на базе сетевых блоков — виртуальных дисков в инфраструктуре Yandex Cloud. Локальные диски физически размещаются в серверах хостов БД.
При создании кластера вы можете выбрать для хранилища следующие типы дисков:
-
Сетевые SSD-диски (
network-ssd) — компромиссный вариант: медленнее, чем локальные SSD-диски, но, в отличие от них, обеспечивает сохранность данных при выходе из строя оборудования Yandex Cloud. -
Нереплицируемые SSD-диски (
network-ssd-nonreplicated) — сетевые SSD-диски с повышенной производительностью, реализованной за счет устранения избыточности.Список классов хостов и соответствующих им платформ описан в разделе Классы хостов Valkey™.
Объем такого хранилища можно увеличивать только с шагом 93 ГБ.
-
Сверхбыстрые сетевые SSD-диски с тремя репликами (
network-ssd-io-m3) — сетевые диски с теми же скоростными характеристиками, что и нереплицируемые. Этот тип диска обеспечивает избыточность.Объем таких дисков можно увеличивать только с шагом 93 ГБ.
-
Локальные SSD-диски (
local-ssd) — самые быстрые диски.Объем такого хранилища можно увеличивать:
- для платформы Intel Cascade Lake — только с шагом 100 ГБ;
- для платформ Intel Ice Lake и AMD Zen 4 — только с шагом 368 ГБ.
Список классов хостов и соответствующих им платформ описан в разделе Классы хостов Valkey™.
Для кластеров, хосты которых располагаются в зоне доступности
ru-central1-d, недоступно хранилище на локальных SSD-дисках при использовании платформы Intel Cascade Lake.
Размер блока
Примечание
До 5% дискового пространства резервируется для служебных нужд, поэтому на дисках может быть меньше доступного места, чем заявлено при создании кластера.
Подробнее о размерах и производительности разных типов дисков в документации Yandex Compute Cloud.
Выбор типа диска при создании кластера
Количество хостов, которые можно создать вместе с кластером Valkey™, зависит от выбранного типа диска и того, включено ли шардирование:
| Тип дисков | Нешардированный кластер | Шардированный кластер |
|---|---|---|
Сетевые SSD-диски (network-ssd), сверхбыстрые сетевые SSD-диски с тремя репликами (network-ssd-io-m3) |
⩾ 1 хоста | ⩾ 1 хоста (1 шард × 1 хост) |
Локальные SSD-диски (local-ssd) |
⩾ 3 хостов | ⩾ 2 хостов (1 шард × 2 хоста) |
Нереплицируемые SSD-диски (network-ssd-nonreplicated) |
⩾ 3 хостов | ⩾ 3 хостов (1 шард × 3 хоста) |
Информация об ограничениях на количество хостов в кластере или шарде приведена в разделе Квоты и лимиты.
Управление дисковым пространством
Когда хранилище заполняется на 100%, хосты кластера автоматически переходят в режим read-only. В этом режиме запросы на запись данных завершаются ошибкой. Чтобы вывести кластер из режима read-only, увеличьте размер хранилища или обратитесь в техническую поддержку
Отслеживание перехода в read-only
Чтобы отслеживать степень заполнения хранилища кластера, настройте алерты в Yandex Monitoring:
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Monitoring. -
Создайте алерт со следующими параметрами:
-
Выражение для метрики —
disk.used_bytes / disk.total_bytes * 100. -
Условия срабатывания — задайте условия срабатывания алерта:
- Функция агрегации —
Максимум(максимальное значение метрики за период). - Функция сравнения —
Больше или равно. - Warning —
90(90 % от размера хранилища). - Alarm —
95(95 % от размера хранилища). - Окно вычисления — период, за который будет вычисляться значение метрики.
- Задержка вычисления — предпочтительный сдвиг по времени назад в секундах. Позволяет исключить некорректные срабатывания алерта с несколькими метриками, которые собираются с разным интервалом. Подробнее о задержке вычисления в документации Yandex Monitoring.
- Функция агрегации —
-
Уведомления — добавьте созданный ранее канал уведомлений.
-
Автоматическое увеличение размера хранилища
Автоматическое увеличение размера хранилища позволяет избежать ситуаций, когда свободное место на диске закончилось и хосты перешли в режим read-only. Хранилище увеличивается, когда достигнут установленный порог срабатывания — процент от общего объема хранилища. Есть два порога:
- Порог для планового увеличения. Когда он достигнут, объем хранилища увеличивается во время ближайшего окна обслуживания. Если задан этот порог, настройте расписание обслуживания.
- Порог для незамедлительного увеличения. Когда он достигнут, объем хранилища увеличивается немедленно.
Можно использовать один либо оба порога. Если заданы оба, порог для незамедлительного увеличения должен быть выше, чем порог для планового.
Если заданный порог достигнут, размер хранилища увеличивается по-разному в зависимости от типа диска:
-
Для сетевых SSD-дисков — на большее из двух значений: 20 ГБ или 20 % от текущего размера диска.
-
Для нереплицируемых SSD-дисков и сверхбыстрых сетевых SSD-дисков с тремя репликами — на 93 ГБ.
-
Для локальных SSD-дисков:
- Intel Cascade Lake — на 100 ГБ.
- Intel Ice Lake и AMD Zen 4 — на 368 ГБ.
Если порог срабатывания достигнут повторно, размер хранилища будет автоматически увеличиваться, пока не достигнет заданного максимума. После этого вы можете задать новый максимальный размер хранилища вручную.
Настроить автоматическое увеличение размера хранилища можно при создании или изменении кластера.
Важно
- Размер хранилища не может быть уменьшен после автоматического увеличения.
- Во время изменения размера хранилища хосты кластера будут по очереди остановлены и обновлены.
Шифрование диска
При создании или восстановлении кластера из резервной копии можно зашифровать диск хранилища пользовательским ключом KMS. Чтобы зашифровать диск уже созданного кластера, отключить шифрование или зашифровать диск другим ключом, создайте резервную копию кластера и восстановите его с новыми настройками.
Важно
Шифрование локальных дисков не поддерживается для выделенных хостов.
Для создания зашифрованного диска нужна роль kms.keys.user или выше.
Если деактивировать ключ, которым был зашифрован диск, доступ к данным будет приостановлен, пока ключ не будет снова активирован.
Внимание
Если удалить ключ, которым был зашифрован диск, или его версию, то доступ к данным будет безвозвратно потерян. Подробнее в документации Key Management Service.
Многоуровневое хранилище
В Valkey™ все данные хранятся в оперативной памяти. Это обеспечивает высокую скорость работы, но требует большого объема оперативной памяти, которая значительно дороже дискового пространства.
Многоуровневое хранение данных (data tiering) позволяет переносить неиспользуемые данные из памяти на диск. Таким образом, данные могут храниться и в оперативной памяти, и в дисковом хранилище.
Для управления данными используется политика удаления ключей, указываемая в настройке Maxmemory policy. В Valkey™ при включении такой политики вытесненные данные удаляются. При включенном многоуровневом хранении вместо удаления данные переносятся на диск, т. е. охлаждаются.
При запросе Valkey™ сначала ищет данные в оперативной памяти. Если данных там нет, Valkey™ ищет их в дисковом хранилище.
Если свободное место на диске заканчивается, ключи удаляются так же, как при обычном вытеснении.
Важно
При включенной политике noeviction данные будут попадать на диск по достижении maxmemory, но не будут удаляться с диска при его заполнении.
Многоуровневое хранение позволяет экономить оперативную память, перенося редко используемые данные на диск. Это может быть полезно, когда общий объем данных значительно превышает объем часто используемых данных.
Например, в БД хранится 300 ГБ данных, но активно используется только 20%, т. е. 60 ГБ. Без многоуровневого хранения весь объем данных должен находиться в оперативной памяти. При включении многоуровневого хранения 240 ГБ редко используемых данных можно перенести на диск и хранить в памяти только часто используемые данные. Это позволяет вместо более чем 300 ГБ оперативной памяти использовать около 60–70 ГБ с минимальным падением времени отклика.
В отличие от гибридных хранилищ, при таком подходе объектное хранилище S3 не используется: данные переносятся непосредственно из памяти на диск.
Подробнее о настройке многоуровневого хранилища.