Об архитектуре кэша хранилища#
Термины "кэш" и "журнал" иногда используются как синонимы. Однако в кластере хранения кэш относится к быстрому аппаратному устройству (например, на базе SSD, в том числе NVMe), которое используется для хранения журнала обслуживания фрагментов. Журнал, в свою очередь, представляет собой буфер, который используется службой фрагментов данных и хранится в кэш-устройстве. Поскольку несколько служб фрагментов данных могут совместно использовать одно и то же устройство кэширования, один кэш может содержать несколько журналов.
Таким образом, кэширование не считается дополнительным уровнем хранения в кластере. Вместо этого каждое кэш-устройство может быть связано с несколькими службами фрагментов данных, назначенными разным уровням и используемыми для хранения журналов данных.
По умолчанию служба фрагментов данных хранит свой журнал на том же устройстве, что и данные. Эта конфигурация называется "внутренним кэшем". Чтобы использовать быстрое кэш-устройство, служба фрагментов данных должна быть настроена на использование "внешнего кэша".
Поведение чтения и записи
В кластере хранения кэш в основном используется для записи данных: когда новые данные поступают в систему, они временно сохраняются в кэше. Поскольку кэш-устройство быстрее, чем емкое, запись данных на кэш-устройство повышает производительность. В течение определенного времени данные существуют только в кэше с удаленными репликами на других узлах кластера, если удаленная репликация настроена. В течение этого времени все операции чтения попадают в кэш и также выигрывают от прироста производительности. При восстановлении кэша и удалении из него данных все последующие операции чтения перенаправляются на устройство емкости.
Журнал используется как кольцевой буфер: он хранит данные до тех пор, пока не возникнет необходимость освободить место и освободить место для новых данных. Когда это происходит, данные выгружаются на устройство емкости в порядке поступления (FIFO).
Преимущества кэширования
Кэширование помогает значительно повысить скорость записи и уменьшить задержку записи при незначительном увеличении стоимости системы. Системы с кэш-памятью могут извлечь выгоду из высокой емкости недорогих и малопроизводительных жестких дисков (HDD), обеспечивая при этом быстрый доступ для записи с помощью флэш-устройств, таких как твердотельные накопители (SSD), в том числе устройства NVMe. Хотя стоимость устройств кэш-памяти выше, чем стоимость устройств емкости, требуется лишь несколько устройств кэш-памяти, что делает общую стоимость системы в целом низкой. Более того, прирост производительности часто оправдывает такое обновление.
Выгода от использования кэша возможна в следующих сценариях:
хранение "горячих" данных;
произвольная запись данных;
небольшие размеры блоков или файлы небольшого размера;
базы данных и среды с несколькими клиентами/потоками.
С другой стороны, сценарии, которые обычно имеют небольшое преимущество при использовании кэша, включают:
хранение "холодных" данных;
рабочие нагрузки с постоянной пропускной способностью, такие как запись видеонаблюдения;
последовательная запись очень больших файлов;
рабочие нагрузки с интенсивным чтением.
В этих случаях можно использовать решение, состоящее только из жестких дисков, которое обеспечит ту же производительность при меньших затратах; или решение all-flash, если цель — повысить производительность.
См. также