ПОСТРОЕНИЕ СИСТЕМЫ ХРАНЕНИЯ КЛАСТЕРНОЙ
АРХИТЕКТУРЫ
С.В. Богатырев Научный руководитель - д.т.н., профессор А.А. Ожиганов
Рассмотрено построение компьютерных систем хранения кластерной архитектуры и влияние структуры коммуникационной подсистемы на отказоустойчивость распределенной системы хранения.
Необходимость повышения надежности, отказоустойчивости и производительности информационных систем привела к кластеризации компьютерных систем при распределении запросов с балансировкой нагрузки и адаптацией к отказам узлов. Под кластером понимается группа независимых компьютерных узлов (серверов, систем хранения и др.), совместно выполняющих общий набор приложений (функциональных задач), воспринимаемая внешними клиентами (источниками запросов) как единый ресурс. Все поступающие в кластер запросы по мере возможности равномерно распределяются между компьютерами (узлами) кластера, снимая риск их перегрузки.
Проблема создания высокопроизводительной и в то же время высоконадежной распределенной системы хранения данных продолжает оставаться актуальной, несмотря на прогресс, достигнутый в последние годы в решении целого ряда задач, связанных с распределенными системами хранения данных. Существующие технологии построения распределенных сетей хранения данных предлагают различные по своей сути подходы, в том числе SAN (Storage Area Network) и NAS (Network Attached Storage).
Технология построения распределенного хранилища данных должна обладать целым рядом свойств, среди которых, в первую очередь, выделяются:
• сетевая прозрачность - клиенты должны иметь возможность обращаться к удаленным файлам, пользуясь теми же самыми операциями, что и для доступа к локальным файлам;
• прозрачность размещения - имя файла не должно определять его местоположения в сети;
• независимость размещения - имя файла не должно меняться при изменении его физического месторасположения;
• мобильность пользователя - пользователи должны иметь возможность обращаться к разделяемым файлам из любого узла сети;
• устойчивость к отказам и сбоям - система должна продолжать функционировать при неисправности отдельного компонента (сервера или сегмента сети). Однако это может приводить к деградации производительности или к исключению доступа к некоторой части файловой системы;
• масштабируемость - система должна обладать возможностью масштабирования в случае увеличения нагрузки. Кроме того, должна существовать возможность постепенного наращивания системы путем добавления отдельных компонентов;
• мобильность файлов - должна быть возможность перемещения файлов из одного месторасположения в другое на работающей системе.
Распределенные файловые системы обладают рядом существенных недостатков, среди которых можно выделить:
• необходимость синхронизировать изменения между всеми узлами;
• большие накладные расходы на управление распределенными блокировками;
• проблема согласованности кешей на узлах сети;
• дорогая операция записи для сохранения целостности данных.
Для корпоративных систем и большинства Интернет-проектов характерно наличие фиксированных данных (fixed content) - неизменяемого информационного наполнения. В это понятие включается любая оцифрованная информация, сохраненная для последую-
щего использования, но не изменения - PDF-документы, электронная почта, контрольные изображения, потоковое видео и аудио, рентгеновские снимки, чертежи САПР и т. п. Чтобы эффективно управлять такими данными, необходим иной способ их размещения и извлечения. Таким способом является CAS - Content Addressed Storage [1].
CAS-системы для хранения и поиска объектов и доступа к данным используют адрес фиксированного контента, а не имя файла или его физическое местоположение. Поскольку зачастую накопление подобной информации никак не ограничивается, CAS для хранения такой информации обеспечивает простое масштабирование при сохранении времени доступа.
Типичной для CAS архитектурой является RAIN (Redundant Arrays of Independent Nodes). Системы состоят из независимо функционирующих узлов хранения. Каждый узел содержит дисковый массив, центральный процессор, память и соединения Ethernet, служащие магистралями связи внутри модуля. Каждый узел, также как и подключаемые к сети устройства хранения, работает со своей собственной операционной системой. RAIN - это своего рода реализация RAID на узлах, а не на дисковых массивах. Среди недостатков такой архитектуры можно выделить наличие узлов доступа, пропускающих через себя данные с узлов хранения. Это создает потенциальные узкие места в потоке данных в системе, снижает ее надежность.
Для организации высоконадежной системы хранения кластерной архитектуры, лишенной узких мест в узлах доступа, предлагается использовать архитектуру RADOS (Reliable, Autonomic Distributed Object Store). RADOS подразумевает разделение кластера на узлы хранения и управляющие узлы, при этом клиенты получают данные непосредственно с узлов хранения. Особенностью такого подхода является то, что управляющие узлы не содержат индекса данных, а занимаются постоянным мониторингом состояния кластера и поддержанием актуальности карты кластера. Размещение данных происходит независимо, без регистрации в каком-либо централизованном каталоге. Функция размещение опирается на карту сети и, используя заданные параметры хранения данных, возвращает узлы хранения, на которых может быть размещена информация. При отказе узла это событие учитывается в актуальной карте сети, что позволяет логически заменить вышедший из строя узел, сохраняя работоспособность системы.
Надежность и отказоустойчивость системы хранения кластерной архитектуры определяется многими факторами, в том числе:
• организацией размещения данных;
• организацией распределения запросов к данным;
• организацией восстановления информации после отказов и сбоев систем хранения;
• структурой коммуникационной подсистемы.
В данной работе проанализированы некоторые варианты коммуникационной подсистемы с точки зрения отказоустойчивости систем хранения.
Выбор рациональных вариантов построения коммуникационной подсистемы должен основываться на построении модели надежности и ее расчете. При простейшем одноуровневом построении коммуникационной подсистемы ее расчет может быть проведен с учетом надежности резервированных коммутационных узлов и цепей их связи с компьютерами и системами хранения [3]. Цепи связи включают порты коммутаторов и сетевые адаптеры (СА) компьютерных узлов хранения и обработки данных.
Для одноуровневой телекоммуникационной подсистемы оценим ее надежность (вероятность правильного функционирования) при условии обеспечения связи не менее чем между a¡ исправными узлами первой группы, включающей m1 компьютерных узлов, и хотя бы a2 исправными узлами из m2 узлов второй группы (узлы хранения) при работоспособности связей хотя бы через a3 из m3 коммутаторов.
В предположении экспоненциального распределения времени между отказами вероятность работоспособности компонент сети определяется как
) = ехР(-У), р2{г) = ехр(-^ 4), Ръ(г) = ехр(-^), ра (V) = ехр(-^ аг), при этом X 2, Хз, X а - суммарные интенсивности отказов соответственно узла первой и второй групп, коммутатора и СА.
Точная оценка надежности исследуемых систем затруднена из-за сложного комбинаторного влияния распределения отказавших СА на работоспособность структуры. Рассмотрим некоторые приближенные верхние (оптимистические) и нижние оценки надежности системы и определим их погрешности [3].
Вначале рассмотрим простейший случай - без учета влияния отказов СА на надежность системы. Вероятность работоспособности системы в этом случае определяется как
ад=2 £ £ С; С: Р1(о* р^)к2 Рз(о4
¿1 = а; к2 = а: кз = аз
х (1 - Р; (V))т-к; (1 - Р: (V))т-к2 (1 - Рз (V) )тз-кз
Полученная оценка является оптимистической (верхней оценкой). В частности, если система сохраняет работоспособность при исправности хотя бы одного узла каждого вида (а1=1, а2=1 и аз=1) , то
Ро (0 = (1 - (1 - Р1 «)Т )(1 - (1 - Р2 (О)"2 )(1 - (1 - Рз (ОГ).
При нижней оценке надежности будем считать, что в работоспособной системе должно быть, по крайней мере, а3 исправных коммутаторов, обеспечивающих связь с а] исправными из т1 узлами первой группы и а2 исправными из т2 узлами второй группы, причем для каждой из указанных связей СА, расположенные в соответствующих узлах, должны быть исправны. Пессимизм оценки обусловлен тем, что система может быть работоспособна, помимо учитываемых в приближении состояний, и в состояниях, при которых связь между а} исправными узлами первой группы и а2 исправными узлами второй группы обеспечивается всей совокупностью коммутаторов, а не каждым из них в отдельности.
С учетом сформулированных допущений нижнюю оценку вероятности работоспособности системы вычислим как
т 1 т 2 т з
Р (V) = £ £ £ Скт\ ст 22 ст зз Р 1( г)к1 Р 2 (V)к 2 Ь (к,, к 2)кз х
х(1 - РАО) т-к1(1 - Р 2(0) т2-к2(1 - Ь (к 1, к 2 ) ) тз-кз
где Ь( 1, 2 ) - вероятность исправного состояния коммутатора с учетом надежности, сетевых адаптеров, поддерживающих его подключение не менее чем к а] узлам первой группы и к а2 узлам второй группы, при условии исправности к1 и к2 узлов указанных групп; кз - число исправных коммутаторов. Вероятность Ь(к„ к2) найдем по формуле:
к,
Ь (к 1 ,к 2 ) = Рз(1) £ Скк4 Ра ^(1 -Ра (ф-к4 х
к4=а
к 5 х£ ск5 Ра (V )к5(1 - Ра (V ))к2-к5
к5 = а2
причем к4 и к5 _ число исправных СА, подключающих исправный коммутатор к исправным узлам первой и второй группы. Погрешность предлагаемого приближения не хуже, чем До(0= Ро (V) - Р(0.
Для более сложных топологий коммуникационной подсистемы требуется анализ влияния вариантов отказов на устойчивость системы. Анализ устойчивости к отказам коммуникационной подсистемы системы хранения кластерной архитектуры, имеющей топологию «дерево», «баттерфляй» и гиперкуб, проведен в [2].
Иерархическая структура коммуникационной подсистемы «дерево» не может обеспечивать достаточную отказоустойчивость системы, при этом слабым звеном системы являются отказы узлов верхних уровней.
Топология «баттерфляй» не обеспечивают высокую надежность, потому что имеется только единственный путь с сервера на запоминающее устройство. Например, когда отказ происходит в коммутаторе 0, как показано на рис. 1(а), доступность теряется для многих запоминающих устройства. Решить эту проблему удается при добавлении резервных связей, как показано на рис. 1(Ь). Однако при этом возможна перегруженность коммутатора 1 и увеличение времени доставки информации
server 1
s
router 0 switch 4 switch 0
se iVer 3
seiver 4
(a) A failure on switch О disconnects several devices. selv®M router 0 switch 4 switch 0
14—^
(b) Add spare links between switches and devices. Рис. 1. Отказы в сетевой топологии «баттерфляй»
Рис. 2. Топология «Гиперкуб»
Большей отказоустойчивостью по сравнению с рассмотренными обладают структуры типа гиперкуб. Однако системная стоимость топологий типа «гиперкуб» выше, чем топологии «дерево» «баттерфляй». Устойчивость топологии «гиперкуб» к некоторым типам отказов коммуникационной подсистемы проиллюстрирована на рис. 3.
(e) node 4 fails
Рис. 3. Устойчивость к отказам топологии «Гиперкуб»
В качестве альтернативного варианта топологии построения коммуникационной подсистемы может рассматриваться топология типа «дерево» с резервированием коммутирующих узлов. При этом для ликвидации узких по производительности и надежности мест предлагается кратности резервирования узлов различного уровня определять на основе решения задачи векторной оптимизации.
Таким образом, проанализированы различные варианты сетевой организации систем хранения и рассмотрено влияние некоторых отказов коммуникационной подсистемы на устойчивость функционирования системы для различных топологий, что может быть использовано при построении модели надежности исследуемых систем и выборе их оптимальных вариантов построения.
Литература
1. Sage A. Weil, Andrew W. Leung, Scott A. Brandt, Carlos Maltzahn. RADOS: A Fast, Scalable, and Reliable Storage Service for Petabyte-scale Storage Clusters. - Petascale Data Storage Workshop SC07, November, 2007.
2. Qin Xin, Ethan L. Miller Impact of Failure on Interconnection Networks for Large Storage Systems // Proceedings of the 22nd IEEE / 13 th NASA Goddard Conference on Mass Storage Systems and Technologies (MSST 2005), Monterey, CA, April 2005.
3. Богатырев В.А. Надежность и эффективность резервированных компьютерных сетей // Информационные технологии. - 2006. - № 5.