RAID (Redundant Array of Inexpensive Disks — избыточный массив
недорогих дисков) — общее название технологии, объединяющей ресурсы
нескольких жестких дисков для повышения общей надежности и/или
производительности системы хранения информации на дисках. Аппаратные
массивы RAID строят на основе подсистемы RAID SCSI-дисков, в то время
как в программных RAID-средствах для создания массива используют
специальные программные средства. Основные параметры RAID-массива
таковы.
• Отказоустойчивость массива позволяет выдерживать аварию одного из
дисков. Утраченные данные могут быть восстановлены с помощью
остальных дисков.
• Работа массива зависит от совместной работы множества физических
дисков. Для создания RAID можно комбинировать и логические тома.
Если же физические диски не работают совместно, их называют JBOD
(Just a Bunch of Disks — простой набор дисков).
• Физические диски не обязательно должны быть одного типа и размера,
однако размеры логических разделов (logical divisions) в пределах массива
должны быть одинаковыми. Иными словами, размеры всех логических
частей массива должны совпадать.
• Массив RAID можно использовать для защиты всех либо части физи-
ческих дисков.
Совет
Вы можете создать программный массив RAID и на базе EIDE-дисков, но SCSI-диски обеспечивают большую производительность При этом, интерфейс SCSI обеспечивает многозадачный режим операций чтения/записи на единственном контроллере, в то время как интерфейс EIDE - только однозадачный
Массивы RAID приобрели широкую популярность, когда стоимость
жестких дисков значительно упала. Программные RAID-массивы позволяют
использовать эту технологию даже людям со средними доходами. Как правило,
используются два типа отказоустойчивых RAID-массивов: с зеркальным
отображением диска (disk mirroring) и с чередованием дисков (disk stripping)
с контролем четности. Они рассматриваются в последующих разделах.
|
Зеркальное отображение диска. Обеспечивает защиту всех данных путем
их записи сразу в двух местах. Каждый раз, когда вы создаете, редактируете
или удаляете файл, изменения регистрируются в обоих местах. Для этого
необходимы два отдельных диска, непосредственно объединенных в зер-
кальный набор (mirror set). Если что-либо происходит с данными на одном
из накопителей, то вы разделяете зеркальный набор и получаете доступ к
точной (и новейшей) копии данных на другом. Следует отметить, что зер-
кальные наборы неэффективны с точки зрения использования дискового
пространства. Действительно, в таком случае избыточность означает, что
для хранения данных требуется вдвое большее дисковое пространство, чем
при обычном хранении. И тем не менее, это великолепный способ защиты
данных. Кроме того, в системах SCSI применение таких RAID-массивов
уменьшает время считывания, поскольку операция чтения может выпол-
няться сразу с двух дисков в многозадачном режиме.
Примечание
Если каждый диск в зеркальном наборе имеет собственный контроллер (и, таким
образом, авария одного контроллера не приводит к потере доступа к обоим дискам), эта технология называется дуплексированием дисков (disk duplexing) В остальных случаях зеркальный набор работает именно так, как было описано выше
Чередующийся набор с контролем четности. Подобно зеркальному
отображению диска, чередование дисков с контролем четности позволяет
защитить данные, распределяя их по множеству дисков. Данные запи-
сываются на дорожки каждого жесткого диска чередующимся набором.
Чередующиеся наборы с контролем четности должны состоять не менее
чем из трех физических дисков. Кроме исходных данных, на диски записы-
вается информация о четности. Как и исходные данные, она распределяется
по физическим дискам, однако сохраняется отдельно от тех, к которым
относится. При отказе одного из дисков чередующегося набора, для вос-
становления пропавших данных используется информация о четности из
остальных дисков. Благодаря этому сохраняется доступ ко всем данным.
Объем информации о четности зависит от количества дисков в чередующемся наборе, поскольку информация о четности рассчитывается так, чтобы вос-
становить данные на одном диске. Таким образом, в чередующемся наборе
из трех дисков для хранения информации о четности будет использоваться
третья часть всей суммарной емкости, а в наборе из 10 дисков — десятая.
Чем больше дисков в наборе, тем эффективнее его работа.
|
Если же в чередующемся наборе одновременно выходит из строя
несколько дисков, данные теряются, однако авария одного диска устраняется
без какого-либо вмешательства с вашей стороны. Допустим, вы собрали
RAID-массив из четырех дисков и используете его в качестве основы
чередующегося набора с контролем четности. Внезапно отказывает один
из дисков. Когда вы перезагрузите сервер и откроете Disk Administrator
(Администратор дисков), появится сообщение о том, что диск отказал, а
утраченные данные будут восстановлены. Можно будет записывать и
считывать данные из чередующегося набора так, как будто отказавший
диск все еще работает. Конечно, вы должны как можно скорее его заменить.
Если откажет еще один диск, то восстановить чередующийся набор будет
просто невозможно.
|
Примечание
Информация о четности жизненно важна для обеспечения отказоустойчивости
Один из видов RAID-массива - чередующийся набор дисков без контроля четности - отказоустойчивость не обеспечивает Он спроектирован главным образом для повышения производительности дисков С этой целью операции чтения и записи разнесены по множеству дисков. Поскольку в этом случае диски сильно зависят друг от друга (codependent) и не содержат информацию о четности, дисковые массивы такого типа должны регулярно архивироваться - отказ хотя бы одного диска разрушит весь массив.
Достоинства и недостатки различных типов RAID-массивов. Что лучше,
использовать чередующиеся наборы с контролем четности или зеркальное
отображение диска? Массивы с зеркальным отображением диска отличаются
невысокой начальной стоимостью, поскольку для создания зеркального
набора достаточно всего двух дисков, в то время как для отказоустойчивого
чередующегося набора — не менее трех. Кроме того, операции записи в
массивах с зеркальным отображением диска выполняются быстрее. В
зеркальных SCSI-наборах операции записи/чтения могут выполняться
более-менее одновременно вследствие "многозадачности" интерфейса
SCSI. Поэтому зеркальное отображение диска действительно повышает
скорость операций чтения/записи. В чередующихся наборах с контролем
четности операции записи менее производительны, поскольку в данном
случае при каждом изменении данных необходимо повторно рассчитывать
информацию о четности. Это не относится к операциям чтения, однако по
сравнению с одиночным диском или зеркальным набором запись вы-
полняется медленнее. Наконец, расчеты, необходимые для поддержки
чередующихся наборов, выдвигают дополнительные требования к опера-
тивной памяти и производительности процессора сервера по сравнению с
зеркальным отображением диска.
Отметим, что чередующиеся наборы с контролем четности применяют
чаще остальных типов RAID-массивов.' Зеркальное отображение весьма расточительно занимает дисковое пространство — оно используется менее
эффективно, чем в чередующихся наборах с контролем четности. Причем
эффективность последних повышается с увеличением количества дисков в
чередующемся наборе. Высокая эффективность использования дискового
пространства компенсирует любые недостатки производительности
(фактически, они совершенно незаметны сетевым клиентам). Кроме того,
благодаря удешевлению оборудования, дополнительные ресурсы, необхо-
димые для поддержки чередующихся наборов, реально не сдерживают
использование этого более совершенного типа RAID-массивов.
Репликация данных
Если же простой системы абсолютно недопустим, можно применить
один из двух методов. Первый заключается в кластеризации серверов
(clustering) (см. следующий раздел), а второй — в репликации данных.
Репликацией называют копирование данных и их структуры с одного сервера
на другой. Это весьма популярный метод, используемый для обеспечения
целостности и распределения данных (data load) между несколькими сер-
верами. Сначала данные записывают на один из серверов (называемый в
сетях Windows NT сервером экспорта (export server)), а затем копируют на
другой сервер {сервер импорта (import server)). Для выравнивание нагрузки
между серверами обслуживания клиентов (client load) вы можете установить
связи между ними с режимом ручного разделения или же использовать ре-
жим автоматического разделения.
Как правило, реплицируют данные двух типов: те, которые ни в коем
случае не должны быть утрачены и те, для которых полезно выравнивание
нагрузки. Из-за ограниченной полосы пропускания сети, репликацию
редко используют для защиты обычных данных. Это обусловлено тем, что
копирование каждого изменения данных на крупный файловый сервер
может занять всю полосу пропускания, необходимую для решения остальных
задач. Для защиты файлов данных можно использовать RAID-массивы.
Тем не менее, репликация — весьма эффективный метод защиты баз данных
или иной жизненно важной информации, например информации об
установленных соответствиях (mappings) сервера WINS или каталога со
сценариями входа. Таким образом, вместо обслуживания всех запросов
клиентов с центрального сервера репликация позволяет распределить эту
работу по нескольким серверам и одновременно гарантировать существо-
вание избыточного числа копий базы данных.
Кластеризация серверов
Кластеризация в некотором смысле напоминает RAID-систему, однако
она более совершенна. Для обеспечения отказоустойчивости и повышения
производительности в методе кластеризации вместо создания массивов
RAID применяется создание массивов серверов.
Кластеризация реализуется разными методами, которые отличаются как функциональными средствами, так и технологиями связывания и взаимодействия серверов. В функциональном отношении кластеры подразделяются на три основных типа.
• Активный/активный.
• Активный/резервный (standby).
• Отказоустойчивый.
В принципе, ту или иную поддержку отказоустойчивости обеспечивают
кластеры любого типа, однако ее уровень и скорость, с которой функции
отказавшего сервера передаются другому, зависят от типа кластера.
В кластере типа активный/активный все серверы непрерывно функ-
ционируют и обслуживают пользователей. При отказе любого сервера
остальные серверы (или сервер) продолжают управлять своей рабочей
нагрузкой и, кроме того, принимают на себя рабочую нагрузку отказавшего.
На передачу нагрузки отказавшего сервера остальным серверам кластера
уходит 15—90 с. В кластере типа активный/резервный один из серверов
обслуживает запросы пользователей либо выполняет иные задачи, а второй
ждет отказа этого сервера. Это отнюдь не уменьшает время восстановления
после сбоя (failover time): при отказе первого сервера для передачи его
рабочей нагрузки второму по-прежнему необходимо 15—90 с. (При передаче
рабочей нагрузки резервному серверу все соединения и сеансы, исполняемые
им, завершаются.)
Отказоустойчивые кластеры проектируют так, чтобы их годичный простой
не превышал 6 мин. Эти кластеры отличаются от кластеров типа активный/
активный и активный/резервный. В отказоустойчивом кластере все серверы
идентичны и работают в связках, выполняя абсолютно одинаковые операции.
Таким образом, при отказе одного сервера, его нагрузка фактически мгновенно
подхватывается остальными серверами. Отказоустойчивые кластеры исполь-
зуют ресурсы менее эффективно, чем кластеры типа активный/активный
или активный/резервный, однако при отказе одного из серверов отказо-
устойчивые кластеры обеспечивают практически бесперебойную работу.
Кластеры других типов, напротив, могут прекратить работу на время до
полутора минут, а чтобы исказить операцию записи достаточно даже 15 с.
Сравнительные характеристики этих трех типов кластеров приведены в
табл. 4.
Тип кластера позволяет определить, создан ли кластер для обеспечения
отказоустойчивости или повышения производительности, а также метод
распределения рабочей нагрузки между серверами, входящими в кластер.
Кластерные продукты различаются применяемой технологией совместного
использования данных, методом соединения серверов кластера, а также
степенью гибкости поддержки различных аппаратных средств. Кроме того,
продукты различаются количеством серверов, из которых образован единый
кластер. Так, некоторые продукты поддерживают кластер, содержащий не
более двух серверов — первичный и вторичный. Более дорогостоящие
продукты поддерживают большее число кластеров.
Таблица 4.
Сравнение типов кластеров
Активный/ | Активный/ | Отказоустойчивый | |
активный | резервный | ||
Функции пер- | Различаются | Различаются | Идентичны (с целью |
вичного/вто- | обеспечения пол- | ||
ричного сервера | ной избыточности) | ||
Влияние на вто- | Принимает на | Сбрасывает собст- | Не влияет, посколь- |
ричный сервер | себя рабочую | венную рабочую | ку оба сервера пе- |
при отказе пер- | нагрузку пер- | нагрузку и прини- | ред отказом испол- |
вичного | вичного сер- | мает нагрузку пер- | няют одну и ту же |
вера | вичного сервера | работу | |
Требуется ли | Нет | Нет | Да |
идентичность | |||
дисковых сис- | |||
тем? | |||
Время восста- | 15-90 с | 15-90 с | <1 с |
новления рабо- | |||
тоспособности |
Для организации совместного использования данных в кластерах при-
меняют репликацию, коммутацию (switching) или зеркальное отображение
(mirroring). При репликации данные, записанные на жесткий диск первичного
сервера, реплицируются через сетевое соединение между серверами на
диск вторичного сервера. При коммутации каждый компонент кластера
содержит собственный диск, однако все диски соединены одной шиной
SCSI, с тем чтобы при отказе диска первичного сервера, его нагрузку принял
на себя диск вторичного. Принцип зеркального отображения описан ранее,
в разделе "Использование массивов RAID". В этом случае данные одновре-
менно записываются на диски как первичного, так и вторичного серверов.
Кроме того, в каждом продукте предусмотрено различное физическое
соединение компонентов кластера. Иногда серверы кластера соединяют
между собой обычным сетевым соединением, скажем, Ethernet; иногда —
через соответствующие разъемы. Возможны и другие решения, скажем,
фабрика коммутируемых соединений (switched fabric connection) — если
они поддерживаются конкретным программным продуктом.
Точно так же и аппаратные средства разных типов отличаются степенью
гибкости. Некоторые программы обслуживания кластеров могут работать
только с вполне определенными типами оборудования. Это очень неудачное
решение. Лучше использовать продукты, поддерживающие любые два сервера,
а еще лучше — те, которые поддерживают серверы, работающие на разных
платформах (например, один сервер на базе х.86, второй — Alpha). Отметим,
что гибкость подобного рода не относится к отказоустойчивым кластерам: все серверы, входящие в них, должны быть идентичны.