Массивы хранения и... теория протекания

15 сентябрь, 2003 - 23:00Леонід Бараш
Под давлением требований потребителей информации ее поставщики, как правило, экстенсивно наращивают необходимые ресурсы. Конечно же, не путем простого добавления. Для увеличения доступности создаются кластеры, для повышения надежности хранения данных используются RAID и средства резервирования, современные сетевые технологии предоставляют каналы с пропускной способностью в десятки гигабит в секунду. Однако за все приходится платить, в прямом смысле. Чем сложнее подобные разработки, тем дороже обходится их эксплуатация. В то же время хорошо известны примеры построения устойчивых к неисправностям систем с использованием компонентов с низкой надежностью. При этом выход из строя некоторого их числа, не превышающего определенного порога, практически не сказывается на функционировании системы в целом. Одним из таких примеров является Internet.

Подобные идеи лежат в основе проекта IBM, носящего название Collective Intelligent Bricks -- CIB (конечно, выражение "интеллектуальный кирпич" не может не вызвать у нас улыбку, однако у серьез­ных американцев оно, по-видимому, не ассоциируется с чем-то па­радоксальным). Проект предусматривает создание высоконадежной системы хранения данных с практически неограниченной масштабируемостью и простым управлением. Администратор должен получить возможность управлять петабайтными объемами данных, что более чем в 100 раз превышает емкости существующих сегодня хранилищ.

Конструктивно CIB представляет собой большой трехмерный массив ("куб"), состоящий из соединенных между собой "кирпичиков", каждый из которых содержит дюжину дисков, процессор и сетевые интерфейсы. Трехмерная ячеистая топология сетевых соединений делает несущественным вопрос о месте локализации данных внутри "куба". Это позволяет программному обеспечению рассредоточивать и реплицировать данные по многим независимым "кирпичам". Система требует минимального вмешательства человека в ее работу. Если какие-либо "кирпичи" выходят из строя, они могут оставаться на своем месте -- программа сама перераспределит данные и исключит их из маршрутной таблицы. Устройство таких "кирпичей" будет рассмотрено ниже, а сейчас познакомимся с теорией, лежащей в основе проекта и позволяющей построить систему, наделенную свойствами, качественно отличными от суммы ее отдельных элементов.


Теория протекания

Безусловно, название этого раздела не будет соответствовать его содержанию. Здесь мы приведем лишь элементарные сведения, достаточные для понимания особенностей функционирования CIB и объясняющие замечательные свойства данной системы. Отметим также, что в русскоязычной литературе часто используется термин "перколяция" (от английского percolation), который является синонимом протекания.

Основные идеи теории были сформулированы Симоном Бродбентом (Simon Broadbent) и Джоном Хаммерсли (John Hammersley) в 1957 г. при изучении ими явлений прохождения газов через угольный фильтр. Со временем выяснилось, что теория протекания способна описать широчайший круг явлений из таких областей, как физика и химия.

Дать определение, что же такое теория протекания, весьма непросто. В общем она рассматривает явления распространения потоков в случайных средах. В контексте нашей темы наиболее подходящим будет сказать, что она занимается связностью очень большого числа элементов при условии, что связи между соседними узлами носят случайный характер, однако задаются вполне определенным способом, например с помощью генератора случайных чисел, обладающего конкретными свойствами.

Массивы хранения и... теория протекания
Рис. 1
Знакомство с теорией протекания мы начнем с описания натурного эксперимента, выполненного в 1974 г. американскими физиками Б. Уотсоном (B. Watson) и П. Лисом (именно такое написание имени P. Leath встретилось в русскоязычной литературе). К двум противоположным сторонам экранной сетки, содержащей 137 137 узлов с расстоянием 6,35 мм между ними, они припаяли электроды и включили сетку в электрическую сеть, чтобы измерить ее сопротивление (рис. 1, а). Затем ученые стали блокировать отдельные узлы (перерезались все четыре проволоки, соединяющие узел с другими, -- рис. 1, б) и измерять электрическое сопротивление в зависимости от доли блокированных элементов. Каждый новый узел для блокировки выбирался среди оставшихся случайно -- его координаты вычислялись с помощью генератора случайных чисел. Очевидно, что по мере увеличения числа блокированных узлов сопротивление сетки увеличивалось, а при некотором значении xc, которое вычислялось как отношение числа неблокированных узлов к полному числу узлов, оно становилось бесконечным. Это происходило, когда перерезался последний путь, связывающий электроды. Величина xc является случайной и зависит от числа узлов сетки N. Однако при неограниченном увеличении N ее среднее значение стремится к определенному пределу, который также обозначается xc..Он получил название порога протекания. Для плоской квадратной сетки значение порога протекания с точностью до второго знака после запятой равно 0,59. Здесь же отметим, что для простой кубической решетки xc= 0,31 (с той же точностью).

Задача, рассмотренная выше, называется задачей узлов. Но над решеткой можно провести и другой эксперимент -- разрезать случайно вы­бранные про­волочки, соединяющие узлы (рис. 1, в), и также измерять сопротивление. В этом случае мы приходим к задаче связей. Для связей на простой квадратной решетке она решается точно -- порог протекания xc = 0,5. Для простой кубической решетки округленное значение порога протекания составляет 0,25.

После того как под проект IBM CIB подведена теоретическая база, можно приступить к рассмотрению некоторых его особенностей.


Как устроен "интеллектуальный кирпич"

Массивы хранения и... теория протекания
Рис. 2
Описываемый блок имеет форму куба со стороной 15 см (рис. 2). Каждый "кирпич" содержит 12 жестких дисков емкостью 100 GB, которые управляются тремя дисковыми контроллерами, подсоединенными к микропроцессору Pentium, и стандартный восьмипортовый Ethernet-коммутатор (предполагается, что последующие версии будут исполь­зовать InfiniBand). Коммутатор подключается к шести емкостным соединителям (по одному на каждой грани куба), служащим сетевыми интерфейсами. Соединители, по сути, являются пластинами конденсатора, с помощью которых осуществляется беспроводная связь на частоте переменного тока 3,125 GHz. Они могут обмениваться данными с соседними "кирпичами" со скоростью 10 Gbps. Таким образом, суммарная пропускная способность каждого блока составляет 60 Gbps. Полная пропускная способность легко масштабируется посредством установки дополнительных соединителей на грани куба. Питание от источника постоянного тока 48 В подается через разъемы на верхней и нижней гранях. Для отвода тепла через "кирпичи" проведены вертикальные трубы водяного охлаждения.

Вот из таких модулей и составляется система хранения. Она может иметь форму куба или параллелепипеда. Очевидно, что топология такой конструкции описывается простой трехмерной решеткой.


Некоторые особенности функционирования

Рассмотрим для конкретности куб, составленный из 10 x 10 x 10 описанных выше "кирпичей". Полная емкость такой системы хранения достигнет 1,2 PB, и все это займет объем чуть более 3 м3. Даже если каждый "кирпич" будет обмениваться дан­ными с внешним миром со скоростью 1 Gbps, то только одна сторона куба сможет обеспечить полную пропускную способность в 100 Gbps.

Надежность в массивах хранения начинается с требования, чтобы некоторые или все данные хранились по крайней мере в двух независимых и разделенных устройствах для гарантии того, что при отказе одного из них информацию можно будет восстановить с другого. Здесь простая и надежная стратегия заключается в создании зеркальной копии каждого блока данных, который записывается в массив, и размещении этой копии на другом "кирпиче". Все это должно выполняться нецентрализованно, с выбором "кирпичей" в соответствии с некоторым общим правилом, не требующим координационного центра.

Что произойдет, если один из внутренних "кирпичей" выйдет из строя? Для обеспечения высокой доступности неисправность должна быть быстро устранена. При условии низкой стоимости администрирования и сопровождения такие действия, как отключение массива и замена отказавшего блока, неприемлемы. К тому же, как показывает практика, большинство попыток устранения неисправности в сложной системе заканчивается возникновением новых проблем. Однако очевидно, что если в качестве неисправности рассматривать полный отказ "кирпича", то мы приходим к задаче узлов. Здесь теория протекания утверждает, что связность между противоположными гранями куба сохранится с высокой вероятностью, если доля исправных узлов выше порога протекания, который, напомним, составляет для простой кубической решетки 0,31. Другими словами, связь с внешним миром остается возможной даже при отказе почти 70% "кирпичей"! Однако это число справедливо лишь для бесконечной решетки. В данном же случае слишком малые размеры куба существенно изменяют поведение системы. С другой стороны, надежность современных устройств хранения позволяет предположить, что через пять лет только 5--10% блоков в кубе 10 x 10 x 10 выйдут из строя. А это практически стопроцентная гарантия, что связность сохранится. Неисправные же "кирпичи", как уже упоминалось выше, можно просто оставить на своих местах -- система перераспределит данные и внесет необходимые изменения в маршрутные таблицы. Случай же отказа сетевого интерфейса приводит к задаче связей, где порог протекания еще ниже.

Таким образом, архитектура CIB предполагает минимальное вмешательство персонала в работу массива хранения. Данные распределяются и восстанавливаются программно, неисправные модули остаются на своих местах, реконфигурация также выполняется программно. При необходимости увеличения емкости массива в него устанавливаются дополнительные "кирпичи".

Следует, однако, заметить, что пока такие модульные системы не способны состязаться по производитель­ности с продуктами стоимостью во много миллионов долларов от EMC (Symmetrix) или от Hitachi Data Systems (Lightning). Однако идеи, заложенные в проект CIB, очень заманчивы, и по мере развития технологий такие системы могут составить серьез­ную конкуренцию монолитным архитектурам.