Системы хранения данных
Производительность кластера, как и любого другого компьютера зависит не только от характеристик его процессора. Не менее важное значение имеет и организация систем ввода/вывода, которым зачастую уделяется недостаточное внимание при построении высокопроизводительных вычислительных систем. Многие современные задачи требуют хранения очень больших объемов данных с быстрым доступом к ним. Немалое значение имеет также повышение надежности хранения данных.
Наиболее распространенные в настоящее время системы хранения данных основаны на использовании магнитных и магнитооптических дисков. Простые системы основаны на использовании магнитных дисков стандарта IDE и некоторых его разновидностей. Например, жесткий диск компании Seagate Tedmology ST340016A (Barradida ATA IV) имеет емкость 40 Гбайт, среднее время доступа 9 мс при скорости вращения 7200 оборот/мин, внешнюю скорость передачи данных 100 Мбайт/сек., время наработки на отказ 600000 часов. Магнитооптические диски уступают обычным жестким магнитным дискам лишь по времени доступа к данным. Стоимость хранения единицы данных на них в несколько раз меньше стоимости хранения того же объема данных на жестких магнитных дисках, однако магнитооптика еще далека от массового применения, главным образом из-за высокой цены самого дисковода. Для примера, дисковод Sierra 1.3 Гбайт обеспечивает среднее время доступа 19 мс и среднее время наработки на отказ 80000 часов.
Дальнейшее повышение надежности и коэффициента готовности дисковых подсистем достигается построением избыточных дисковых массивов RAID (Redundant Array of Independent Disks). Дисковый массив - это набор дисковых устройств, работающих вместе, чтобы повысить скорость и надежность системы ввода/вывода. Этим набором устройств управляет специальный RAID-контроллер (контроллер массива), который инкапсулирует в себе функции размещения данных по массиву; а для всей остальной системы позволяет представлять весь массив как одно логическое устройство ввода/вывода. За счет параллельного выполнения операций чтения и записи на нескольких дисках, массив обеспечивает повышенную скорость обменов по сравнению с одним большим диском.
Массивы также могут обеспечивать избыточное хранение данных, с тем, чтобы данные не были потеряны в случае выхода из строя одного из дисков. В зависимости от уровня RAID проводится зеркалирование или распределение данных по дискам. Каждый из четырех основных уровней RAID использует уникальный метод записи данных на диски, и поэтому все уровни обеспечивают различные преимущества. Уровни RAID 1, 3 и 5 обеспечивают зеркалирование или хранение битов четности; и поэтому позволяют восстановить информацию в случае сбоя одного из дисков.
Технология RAID 0 также известна как распределение данных (data striping). При применении этой технологии информация разбивается на куски (фиксированные объемы данных, обычно именуемых блоками), эти куски записываются на диски и считываются с них в параллель. С точки зрения производительности это означает два основных преимущества: повышается пропускная способность последовательного ввода/вывода за счет одновременной загрузки нескольких интерфейсов и снижается латентность случайного доступа, поскольку несколько запросов к различным небольшим сегментам информации могут выполняться одновременно. Недостатком является то, что уровень RAID 0 предназначен исключительно для повышения производительности и не обеспечивает избыточности данных. Поэтому любые дисковые сбои потребуют восстановления информации с резервных носителей.
Технология RAID 1 также известна как зеркалирование (disk mirroring). В этом случае копии каждого куска информации хранятся на отдельном диске. Обычно каждый используемый диск имеет "двойника", который хранит точную копию этого диска. Если происходит сбой одного из основных дисков, то он замещается своим "двойником". Производительность произвольного чтения может быть улучшена, если для чтения информации будет использоваться тот из "двойников", головка которого расположена ближе к требуемому блоку. Время записи может оказаться несколько больше, чем для одного диска, в зависимости от стратегии записи: запись на два диска может производиться либо в параллель (для скорости), либо строго последовательно (для надежности).
Уровень RAID 1 хорошо подходит для приложений, которые требуют высокой надежности, низкой латентности при чтении, а также если не требуется минимизация стоимости. RAID 1 обеспечивает избыточность хранения информации, но в любом случае следует поддерживать резервную копию данных, т.к. это единственный способ восстановить случайно удаленные файлы или директории.
Технология RAID уровней 2 и 3 предусматривает параллельную ("в унисон") работу всех дисков. Эта архитектура требует хранения битов четности для каждого элемента информации, распределяемого по дискам. Отличие RAID 3 от RAID 2 состоит только в том, что RAID 2 использует для хранения битов четности несколько дисков, тогда как RAID 3 использует только один. RAID 2 используется крайне редко.
Если происходит сбой одного диска с данными, то система может восстановить его содержимое по содержимому остальных дисков с данными и диска с информацией четности. Производительность в этом случае очень велика для больших объемов информации, но может быть весьма скромной для малых объемов, поскольку невозможно перекрывающееся чтение нескольких небольших сегментов информации.
RAID 4 исправляет некоторые недостатки технологии RAID 3 за счет использования больших сегментов информации, распределяемых по всем дискам, кроме диска с информацией четности. При этом для небольших объемов информации используется только диск, на котором находится нужная информация. Это означает, что возможно одновременное исполнение нескольких запросов на чтение. Однако запросы на запись порождают блокировки при записи информации четности. RAID 4 используется крайне редко.
Технология RAID 5 очень похожа на RAID 4, но устраняет связанные с ней блокировки. Различие состоит в том, что информация четности распределяется по всем дискам массива. В данном случае возможны как одновременные операции чтения, так и записи. Данная технология хорошо подходит для приложений, которые работают с небольшими объемами данных, например, для систем обработки транзакций.
Каждый узел вычислительного кластера НИВЦ МГУ содержит жесткий диск IDE 4.3 Гбайт Quantum (или 10 Гбайт Fujitsu). Кроме того, предоставляется возможность использования RAID-массива из 6 дисков Ultra160 SCSI объемом по 36 Гбайт (IBM), установленного на файл-сервере. Все файлы из домашней директории пользователя хранятся на файл-сервере, для сохранения файлов на локальный диск нужно записывать файлы в каталог /tmp. На другом вычислительном кластере (SKY) на каждом узле установлены два жестких диска, подключенные к различным IDE-каналам, что позволяет использовать их параллельно двумя прикладными процессами, за счет чего можно получить заметное ускорение задач, требующих интенсивного потока ввода/вывода.