СИСТЕМЫ ХРАНЕНИЯ ИНФОРМАЦИИ
УДК 004.021
В. С. Дужин, Г. С. Евсеев, Е. М. Линский
ОЦЕНКА ЭФФЕКТИВНОСТИ АЛГОРИТМА УПРАВЛЕНИЯ ОБЪЕМОМ РАЗДЕЛОВ КЭША СИСТЕМЫ ХРАНЕНИЯ ДАННЫХ
Рассматривается модель кэша системы хранения данных, состоящего из двух разделов. Построен алгоритм управления объемом разделов. Исследовано влияние ошибок определения текущего и последующего состояния потока на качество работы алгоритма.
Ключевые слова: системы хранения данных, кэш, оценка эффективности.
Введение. Использование кэша в системе хранения данных позволяет существенно уменьшить время доступа к информации. К такой системе обращаются приложения, отправляя запросы на получение данных. Каждому приложению в кэше выделен отдельный раздел. Будем считать, что каждое приложение характеризуется требованием на время обработки запроса, выражающимся в среднем значении HR (Hit Rate, отношение числа запросов, найденных в кэше, к общему числу запросов за определенный временной интервал для его раздела).
В настоящей статье рассматривается алгоритм, динамически перераспределяющий границы раздела.
В отличие от работ [1, 2], в которых рассматриваются эвристические алгоритмы управления кэшем, в настоящей статье предложена модель кэша, состоящего из двух разделов, позволяющая проводить анализ алгоритмов управления.
Модель системы. Рассмотрим LRU-кэш, с которым работают два приложения, каждому из них ставится в соответствие свой раздел в кэше, свой поток входных запросов и требуемое значение HR.
Входные потоки характеризуются интенсивностью запросов и распределением стекового расстояния, под которым будем понимать количество различных адресов между двумя обращениями к одному и тому же адресу [3—4].
Пусть входные потоки к каждому разделу могут находиться в двух состояниях: S1 и $2. Состояния различаются видом гистограммы стековых расстояний. Считается, что любой раздел, входной поток к которому находится в состоянии SI, удовлетворяет требованию по HR, если его размер (объем) равен Vi. Раздел, входной поток к которому находится в состоянии S2, удовлетворяет требованию, если его объем равен V2. Будем считать, что V2 = 2V, Vcache = 3 V, где Vcache — суммарный объем кэша.
Рассмотрим дискретную временную модель: пусть N = N2 = N — интенсивность запросов к разделам в определенный интервал времени, а ^, ^ — число запросов к адресам, находящимся в кэше (за то же время). Вероятности переходов между состояниями /-го потока описываются матрицей переходов марковской цепи:
(1)
" Р ф^) Р. ф^)" _рф^) Рг(52|52)_ На рисунке приведены функции распределения вероятностей стековых расстояний для потоков в состояниях 51 и $2 .
Р(У)
Ь2
У1 V2 V
Заметим, что при заданном размере раздела V' величина F(V) может рассматриваться как средний ИЯ на данном разделе, т.к. F(V) - вероятность того, что стековое расстояние не превысит V' (запрашиваемый адрес будет найден в кэше).
Будем считать, что требование к размеру раздела состоит в том, чтобы средний ИЯ был не меньше \. Как видно из рисунка, это условие не выполняется, когда входной поток находится в состоянии $2, а объем раздела равен V.
Алгоритм управления кэшем. Рассмотрим алгоритм управления размерами разделов в кэше, обеспечивающий улучшение качества работы системы за счет ее динамической адаптации к изменениям входного потока. В течение каждого временного интервала собирается статистика по входным потокам, на основании которой оценивается состояние потоков в данном интервале. Прогноз состояния входных потоков в последующем временном интервале осуществляется на основе этих оценок и матриц (1). В конце каждого интервала происходит перераспределение объемов разделов в соответствии с этим прогнозом. Например, если состояние потока в предыдущем интервале оценено как 51, а Р($2 | $1) > 0,5, то прогнозируется, что в следующем интервале поток перейдет в состояние $2 .
Ниже представлен способ получения оценки состояния входного потока. Пусть текущий объем раздела равен VI, за последний интервал пришло N запросов, при этом £ из них были найдены в кэше. В этом случае вероятность того, что входной поток к данному разделу находился в состоянии $1, определяется следующим образом:
Р($1,£ | VI, N)
Р($11 VI, N, £) = ■
(2)
Р(£ | V!, N)
Выражение (2) получено из формулы для вероятностей зависимых событий [5] (в данном случае случайными величинами являются $1 и £, а V и N — постоянными). Аналогичным образом определяется вероятность нахождения входного потока к разделу в состоянии $2 . Обозначим через , N, £) отношение этих вероятностей и преобразуем его следующим образом:
п
3
Оценка эффективности алгоритма управления объемом разделов кэша
73
ы, _ Р(5Ь£УN) _ Р^ЗД,N)Р(5^,N)
(3)
(4)
Р(Я2,£ | VI,N) Р(£ | | VI,N)
Вероятности того, что из N пришедших заявок £ будут найдены в кэше, описываются биномиальным распределением:
'Р(£ | ^1,^1,N) _ /£(1 -Ь)N-£,
Р(£ 152,КЬ N) _ 4 ^ (1 - ¿2)N-£ •
Вероятность того, что заявка найдена в кэше, равна / и ¿2 для состояний входного потока 51 и ^2 соответственно (см. рисунок). Заметим, что Р(51 | V!, Ы) и Р(52 1N) не зависят от случайной величины £ и определяются исключительно из матрицы переходов марковской цепи (1):
ГР( 5^, N) _ Р( 51), |Р(52 | П,N) _ Р(52).
Подставив (4) и (5) в выражение (3), после необходимых преобразований получим:
(5)
ед,N,£)_
/1(1 -/2) П 1 -/ I Р(51)
/2(1 - ¿1),
V1 - ¿2 У
Р(52):
таким же образом получим отношение для потока к разделу размера V :
К(УЪ N, £) _
/з(1 - К)
1 - /3
V1 - К1 У
Р( 51) Р( 52)
(6)
(7)
5(У, N, £) _
(8)
/1(1 - /з)
По формулам (6), (7) можно оценить состояние входного потока за временной интервал. Будем считать, что при Я > 1 входной поток в состоянии 51, а при Я < 1 — в 52 :
"5Ь если V _ Vъ Я(УЪ N, £) > 1,
52, если V _ Г1, Я(У1, N, £) < 1,
5, если V _ Я(^, N, £) > 1,
52, если V _ Я(V2, N, £) < 1.
Заметим, что достаточно определить оценку (8) лишь для одного потока: при оценке состояния первого потока 51 ему назначается объем V, а второму — V2 (это связано с тем, что ^асИе _ 3^, а распределять не весь объем кэша нецелесообразно). Если оценка состояния первого потока 52, ему назначается объем V2, а второму — V.
Кэш выделяется, в первую очередь, тому потоку, оценка состояния которого более достоверна. Достоверность определяется тем, насколько значение Я отличается от единицы: при Я _ 1 оценки становятся равновероятными, а значит их достоверность минимальна.
Таким образом, вначале вычисляются значения Я для каждого раздела, затем устанавливается размер того раздела, для которого Я больше (если Я < 1, то в сравнении будет участвовать величина — ). Другому разделу назначается оставшийся объем кэша. Я
Оценка работы алгоритма. Рассмотрим методику оценки качества работы алгоритма управления кэшем, которое определим как вероятность того, что на каком-либо временном интервале требования на ИЯ будут удовлетворены для обоих разделов. На качество работы алгоритма влияют ошибка оценки текущих состояний потоков, вызванная низкой интенсивностью входных потоков, а также ошибка определения последующего состояния, связанная со
случайным характером переключения состояний входных потоков. Сначала рассмотрим идеальный случай, когда обе ошибки отсутствуют (построим верхнюю границу качества), затем — когда присутствует лишь ошибка определения последующего состояния и, наконец, когда присутствуют обе ошибки.
Вычислим верхнюю границу качества описанного алгоритма. Будем считать, что состояния потоков на каждом временном интервале известны заранее. Соответственно выбираются оптимальные размеры разделов во всех случаях, когда это возможно. Требования по ИЯ не выполняются лишь тогда, когда оба входных потока находятся в состоянии $2, поскольку в этом случае потребуется объем 2Р2 > . Верхняя граница качества алгоритма определяется следующим выражением:
01 = 1 - Р ($2 )Р ($2 ) , (9)
где Р}($2) и Р> ($2) — вероятность нахождения в состоянии $2 потоков запросов к 1-му и 2-му разделам, которая определяется из формулы полной вероятности [5]:
Р($2) = Р($1)Р($2 | $1) + Р($2)Р($2 | $2) , (10)
где г = 1,2 . Поскольку поток может быть в состоянии $1 либо в состоянии $2,
Р ($1) = 1 - Р ($2). (11)
Подставим (11) в (10) и после необходимых преобразований получим:
Р ($ ) = Р(S2| $1) (12)
А 2' Р ($1 | $2) + Рг ($2 | $1) '
Рассуждая аналогичным образом, можно вычислить вероятность нахождения потока в состоянии $1 :
Р ($1)=-адш-. (13)
А " Р ($1 | $2) + Рг ($2 | $1)
Перепишем (9) с учетом (12):
0 = 1__Р1($2 | $1)Р2($2 | $1)__(14)
^ (Р1($1 | $2) + Р($2 | $1))(($1 | $2) + Р ($2 | $1))'
Вычислим оценку качества алгоритма при условии, что известны состояния входных потоков за прошедший временной интервал (интенсивность потоков N ^го ), при этом прогноз следующего состояния осуществляется на основе матрицы переходов (1).
В таблице перечислены состояния системы, состоящей из двух разделов. Каждое состояние характеризуется объемом разделов и состояниями их входных потоков. Заметим: когда система находится в состояниях 1, 2, 5, 7, разделам хватает выделенных объемов для выполнения требований. В состояниях 4, 8 требования не могут быть удовлетворены в принципе, поскольку входные потоки к обоим разделам находятся в состоянии $2 . В состояниях 3, 6 требования могут быть выполнены, если объем разделов выбран правильно. Таким образом, оценка качества работы данного алгоритма вычисляется с помощью следующего выражения:
02 = 01 - (Р(3) + Р(6)), (15) где Р(3), Р(6) — вероятности перехода системы в соответствующие состояния. Выражение (15) справедливо, поскольку Р(3) и Р(6) — вероятности несовместных событий.
Введем обозначение V(г) = {V(1),V(2)}. Пусть при V(1) первый раздел получает объем V1, второй V2, а при V(2) — наоборот.
Оценка эффективности алгоритма управления объемом разделов кэша 75
Пусть Рош (S(1), S(2), V(1)) — вероятность того, что распределение разделов V(1) даст ошибку, если на предыдущем интервале состояние первого раздела было S(1), а второго — S(2). Аналогичным образом определяется Рош(S(1), S(2), V(2)). Тогда минимальная вероятность ошибки для ситуации S(1) = Sb S(2) = S1 определяется следующим образом:
Рош(S1, S1) = min {Рош(S1, S1,V(1)),Рош(S1,S1, V(2))}.
№ состояния Объем 1-го раздела Объем 2-го раздела Состояние 1-го потока Состояние 2-го потока Требования по ИЯ
1 V1 V2 S1 S1 Выполнены
2 V1 V2 S1 S2 Выполнены
3 V1 V2 S2 S1 Не выполнены из-за ошибки
4 V1 V2 S2 S2 Невыполнимы
5 V2 V1 S1 S1 Выполнены
6 V2 V1 S1 S2 Не выполнены из-за ошибки
7 V2 V1 S2 S1 Выполнены
8 V2 V1 S2 S2 Невыполнимы
Вероятность ошибки определяется как сумма таких вероятностей для всех комбинаций
S(1), S(2):
Рош = Р(3) + Р(6) = ^^min{Рош(S,Sj, V(1)),Рош(Si,Sj, V(2))} . (16)
i=1 j=1
Перепишем (15) с учетом (16):
02 = 01-ZZ min {Рош (S, Sj, V(1)), Рош (Si, Sj, V(2))} . i=1 j=1
Очевидно, что данный алгоритм работает лучше, когда состояния входных потоков изменяются редко: при стремлении элементов главной диагонали матрицы (1) к единице 02
стремится к 01 (Р(S1 | S2) и Р(S2 | S1) стремятся к нулю, вероятности Р(3) и Р(6) стремятся к нулю и выражение (15) вырождается в (14)).
Теперь рассмотрим ситуацию, когда оценка состояний входных потоков производится при конечной выборке. В этом случае к ошибке оценки следующего состояния добавляется ошибка оценки текущего состояния.
Определим зависимость качества алгоритма от интенсивности N. Для этого выпишем матрицу переходов системы из двух разделов:
Р(1) = z Р( i) Р(1| i),
i=1
Р(2) = Z Р(0Р(2|0,
i=1
Р(8) = Z Р(0Р(8 | i).
i=1
Пусть V(г) — распределение объемов разделов в г-м состоянии системы, например, V(6) _ V(2).
Поскольку изменение объема раздела и изменение состояний входных потоков являются независимыми событиями, вероятность перехода из у-го в г-е состояние системы может быть представлена в виде произведения вероятности изменения объема раздела с Vt-1 на Vt и
вероятностей переходов состояний потоков 1-го и 2-го раздела соответственно: Р^5, | 5, и
Р>(5 5-1):
Р(г | У) _ Р(Уг , 5^, 5<->, 5^) _ Р^ 5& 5£>)Р1(5, |5t-1)р^5, |5М).
Вычислим Р(Уг | Vt-1,5,-1,5(21) для случая V _ V(2), Уг-1 _ V(1) . Пусть оценка состояния первого потока оказалась более достоверной. Для того чтобы объем 1-го раздела стал равен V), необходимо, чтобы в предыдущем интервале была получена оценка состояния потока
5(2) _ 52. При этом объем данного раздела в предыдущем интервале должен быть равен V. Из (8) следует, что для этого должно быть выполнено условие , N, £) < 1. Соответственно
Р^ | 5$, 5$) _ Р(Я(^,N,£) < 1).
После необходимых преобразований с учетом (6), (12), (13) получим:
P(¥t IV-!,S&Sg>) = p
£< ln
■.N
1 - h^ P1(S2|S1)
1 - h
1 J
Pi( Si|S2)
ln
' hi(1 - h2) ^ h2(1 -\)
J
(18)
Обозначим правую часть неравенства (18) через £ имеет биномиальное распределение:
j . - „ J
и перепишем его с учетом того, что
ш<и
4N -ш
(19)
р^ | 5}-1,5Й) ст/т(1 -/2)
т_0
Вычислив аналогичным образом все условные вероятности системы (17), получим систему из 8 уравнений с 8 неизвестными. Решив эту систему, получим значения Р(4), Р(8), Р(3) и Р(6). Качество работы данного алгоритма оценивается как
03 (N) _ 1 - (Р(4) + Р(8) + Р(3) + Р(6)).
Заключение. В работе построена модель кэша системы хранения данных, состоящего из двух разделов, размеры которых адаптивно изменяются. Исследовано влияние ошибки определения текущего состояния потока и ошибки выбора следующего состояния потока на качество работы алгоритма. В дальнейшем предполагается обобщить данные результаты для ситуации, когда кэш содержит более двух разделов.
список литературы
1. Qureshi M. K., Patt Y. N. Utility-Based Cache Partitioning: A Low-Overhead, High-Performance, Runtime Mechanism to Partition Shared Caches // Proc. of the 39th Annual IEEE/ACM Intern. Symp. on Microarchitecture (MICRO 39). IEEE Comp. Soci. Washington, DC, USA, 2006. Р. 423—432.
2. Goyal P., Jadav D., Modha D. S., Tewari R. CacheCOW: QoS for storage system caches // Proc. of the 11th Intern. Conf. on Quality of Service (IWQoS'03). Berlin: Springer-Verlag, 2003. Р. 498—515.
3. Feitelson D. G., Workload Modeling for Computer Systems Performance Evaluation [Электронный ресурс]: <http ://www. cs.huji. ac.il/~feit/wlmod/>.
4. Марковский С. Г., Тюрликов А. М. Использование адресов абонентов для разрешения конфликтов в канале с шумом // ИУС. 2006. № 2(21). С. 27—37.
5. Венцель Е. С. Теория вероятностей. М.: Наука, 1964. 575 с.
Оценка надежности отказоустойчивых кластеров
77
Сведения об авторах
Василий Сергеевич Дужин — аспирант; Санкт-Петербургский государственный университет аэро-
космического приборостроения, кафедра безопасности информационных систем; E-mail: vduzhin@gmail.com Григорий Сергеевич Евсеев — канд. техн. наук, доцент; Санкт-Петербургский государственный уни-
верситет аэрокосмического приборостроения, кафедра моделирования вычислительных и электронных систем; E-mail: egs@vu.spb.ru Евгений Михайлович Линский — канд. техн. наук, доцент; Санкт-Петербургский государственный университет аэрокосмического приборостроения, кафедра безопасности информационных систем; E-mail: evlinsky@vu.spb.ru
Рекомендована кафедрой Поступила в редакцию
№ 51 безопасности информационных систем 01.02.13 г.
УДК 681.3
В. А. Богатырев, С. В. Богатырев, А. В. Богатырев
ОЦЕНКА НАДЕЖНОСТИ ОТКАЗОУСТОЙЧИВЫХ КЛАСТЕРОВ С НЕПОСРЕДСТВЕННЫМ ПОДКЛЮЧЕНИЕМ УСТРОЙСТВ ХРАНЕНИЯ
Предложен подход к оценке надежности кластеров с прямым подключением двухвходовых устройств хранения и серверов при ограничении предельно допустимого времени пребывания запросов в системе. Проанализировано влияние вариантов такого подключения на надежность системы с учетом вероятности выполнения запросов в заданные сроки.
Ключевые слова: отказоустойчивость, кластер, надежность, резервирование, устройство хранения, сервер.
Введение. Высокие отказоустойчивость, доступность, надежность и производительность распределенных вычислительных систем достигаются при объединении узлов обработки и хранения данных в кластеры [1, 2].
При построении небольших кластерных систем в ряде случаев целесообразно прямое подключение узлов разных уровней между собой, например, серверных узлов и устройств хранения (архитектура DAS, Directly Attached Storage [1]).
Поскольку надежность и производительность кластера зависят от вариантов объединения его узлов, представляет интерес исследование альтернатив, обеспечивающих большую отказоустойчивость, надежность и доступность системы при одинаковых затратах на ее реализацию [3—5].
Двухуровневые структуры с непосредственным подключением резервированных узлов. Рассмотрим варианты конфигурации двухуровневых кластерных систем. Будем считать, что на верхнем уровне (ВУ) выделяется m дублированных узлов. Таким образом, общее число узлов верхнего уровня равно 2m, общее число узлов нижнего уровня (НУ) будем также считать равным 2m. Узлы верхнего уровня объединяются в пары (дублируются) по функциональной принадлежности реализуемых приложений или по разделению обслуживаемого ими потока запросов [6—9].
Представляет определенный интерес исследование вариантов построения кластеров с прямым подключением узлов разного уровня, в частности серверов, к устройствам хранения [1, 2]. Цель таких исследований — выбор конфигурации, обеспечивающей при одинаковых затратах на реализацию системы ее большую отказоустойчивость, надежность и доступность.