Continuous Cache Mirroring – новый подход к организации работы кэш-памяти

Логотип компании
05.12.2016
Continuous Cache Mirroring – новый подход к организации работы кэш-памяти
Сравнение основных подходов к организации кэш-памяти в СХД: баланс надежности и производительности. Сравнение устоявшихся подходов с новаторским “Continuous cache mirroring”.

На современном рынке систем хранения данных (СХД) сложилось два подхода к работе кэш-памяти. Первый из них представляет собой попарное зеркалирование между контроллерами (Mirrored Cache), характерное, как правило, для класса mid-range. Во втором случае используется общий распределенный кэш на все контроллеры (Global Cache), что чаще всего встречается в СХД класса high-end, хотя применяется и в некоторых моделях mid-range, например в линейке 3PAR от компании Hewlett-Packard Enterprise.

В чем преимущество обоих подходов? В случае с Mirrored Cache речь идет о большом полезном объеме кэш-памяти при использовании более чем двух контроллеров. Дело в том, что добавление контроллеров в СХД приводит к кратному росту не только общего объема кэш-памяти, но и количества операций чтения и записи, которые могут быть кэшированы, что увеличивает вероятность наличия нужных данных в кэше (cache-hit). Разумеется, у данного способа есть и минусы. Так, если один из двух контроллеров выходит из строя, второй перестает работать на запись, соответственно сохранность кэша не может быть гарантирована при нахождении данных только на одном контроллере. Таким образом, при выходе одного контроллера из строя общая производительность контроллерной пары на операциях записи снижается более чем вдвое.

Во втором случае (Global Cache) кэш всех контроллеров зазеркалирован, поэтому при возникновении нештатной ситуации и наличии двух и более контроллеров производительность при осуществлении операций записи будет выше. Но и здесь не обходится без недостатков. При увеличении числа контроллеров (более двух) полезный объем кэш-памяти не увеличится и всегда будет равен размеру кэш-памяти одного контроллера. Проще говоря, это означает, что такая система, будучи значительно быстрее в нештатной ситуации, при работе в штатном режиме уступит по производительности решению с попарным зеркалированием. Такой подход целесообразен именно в СХД класса high-end, где необходимы высочайший уровень надежности и стабильно высокая производительность, в том числе и в нештатных режимах. В то же время реализация данного подхода в СХД класса mid-range не всегда оправданна, так как недостатков у систем подобного класса ничуть не меньше, чем преимуществ.

Новаторский подход Continuous Cache Mirroring, предложенный компанией Huawei, призван объединить оба способа, компенсировав недостатки каждого, то есть плохую утилизацию кэш-памяти у Global Cache и падение производительности при выходе из строя одного из контроллеров в системах с попарным зеркалированием. Если коротко, то суть заключается в применении в СХД блоков по четыре контроллера, среди которых кэш продолжает зеркалироваться между парами, тем самым обеспечивая высокую утилизацию. Если при этом выходит из строя один из контроллеров, кэш-память с его пары зеркалируется на оставшиеся два контроллера (по половине на каждый). В итоге система продолжает использовать кэш на запись даже в нештатном режиме (как в случае с Global Cache). Схема, иллюстрирующая новый подход компании Huawei, приведена ниже.

Continuous Cache Mirroring – новый подход к организации работы кэш-памяти. Рис. 1

Принцип работы Continuous Cache Mirroring

В таблице ниже приведено сравнение всех трех реализаций работы с кэш-памятью.

    Mirrored Cache   Global Cache   Continuous Cache Mirroring
 Объем кэш-памяти   100%   100%   100%
 Объем полезной кэш-памяти при четырех контроллерах   50%   25%   50%
 Объем полезной кэш-памяти при восьми контроллерах   50%   12,5%   50%
 Кэш на запись при выходе из строя одного из контроллеров   Нет/Со второй пары   Да   Да

Таким образом, можно говорить о значительном (кратном) преимуществе подхода Continuous Cache Mirroring как перед Global Cache, так и перед решением с попарным зеркалированием (Mirrored Cache).

Автор: Константин Нахимовский, ведущий менеджер по решениям Huawei Enterprise Business Group в России