Самоучитель
системного администратора

10. Построение отказоустойчивой информационной системы

Мы все больше начинаем зависеть от различных информационных систем. Системным администраторам приходится принимать специальные меры, чтобы сервисы были доступны в любое время независимо от возникающих проблем.

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

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

Территориальная распределенность

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

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

Центры обработки данных

Для размещения вычислительных мощностей информационной системы принято использовать специально подготовленные помещения, в которых обеспечивается оптимальный режим работы оборудования. Такие объекты принято называть центрами обработки данных (ЦОД).

Существует несколько уровней оснащенности ЦОД. Если говорить о третьем уровне надежности, то для него предусматривается полное дублирование всех систем жизнеобеспечения. Иными словами, ЦОД должен продолжать нормальное функционирование при выходе из строя или при выключении на обслуживание любого узла. Это очень серьезное требование, реализуемое путем тщательного проектирования. В результате стоимость такого ЦОД (строительные работы, системы кондиционирования, электропитания, контроля доступа, аварийного освещения и т. д.) усредненно составляет 25 000$ за 1 м2.

В Сети можно легко найти подробные рекомендации по оснащению ЦОД. Поэтому мы кратко рассмотрим только основные положения. Естественно, что требования к ЦОД в каждом конкретном случае должны быть разумно откорректированы.

Требования к помещениям ЦОД

Требования к помещениям ЦОД определены санитарными нормами и правилами. Если кратко, то ЦОД должен размещаться — желательно — на первом этаже, в помещении без окон, без трубопроводов и т. п. Необходимо избегать соседства помещений с материалами, которые могут нанести вред оборудованию (например, трубопроводы над помещением, склады с опасными веществами рядом с ЦОД и т. п.).

Поскольку в ЦОД будет эксплуатироваться дорогостоящее оборудование, то помещение должно быть стойким к взлому (по действующим требованиям) и оснащено системами контроля доступа.

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

Размеры помещения определяются из предполагаемого количества оборудования (с учетом резерва, часто в 30—60%) и наличия зон обслуживания (для установки серверов и т. п).

Климат-контроль помещений ЦОД

Основным требованием является поддержание заданной температуры (обычно около 18 °С). Параметры влажности не являются значимыми, если в ЦОД не эксплуатируются ленточные библиотеки. Обычно только требуется, чтобы была исключена возможность выпадения росы. Поскольку в помещении ЦОД не предполагается работа персонала, то требований по воздухообмену обычно не предъявляют.

Так же, как и все системы ЦОД, оборудование климат-контроля выполняется в резервированном варианте.

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

Резервирование электроснабжения ЦОД

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

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

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

Системы пожаротушения ЦОД

При площади ЦОД свыше 20 м2 по санитарным нормам и правилам требуется применять систему газового пожаротушения. У нас в стране сертифицировано несколько решений; на практике лучше использовать газовую смесь, допускающую вдыхание ее человеком.

Проект системы газового пожаротушения не представляет особой сложности, но он должен быть выполнен сертифицированной организацией с последующей приемкой объекта пожарными службами.

Надежность системы электроснабжения

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

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

Обычно трудно обосновать максимальное время автономной работы, на основании которого выбираются аварийные источники питания. Часто эта цифра берется "с потолка" или "как у других". При этом даже небольшое увеличение этого времени приводит к существенному удорожанию оборудования. В качестве критерия оценки можно использовать время выключения информационной системы с сохранением всех данных. Это значение нужно умножить на 2 или 3, а выбор оборудования проводить с запасом примерно 30—50%. Так вы получите минимальное значение, которое можно использовать при расчете источников аварийного питания.

    Совет

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

Надежность сетевой инфраструктуры

Необходимым условием надежной работы информационной системы является безотказное функционирование каналов связи. Данная задача решается путем дублирования как собственно каналов связи, так и активного оборудования (коммутаторов). Понятно, что на практике отказоустойчивая конфигурация сети создается только в тех случаях, когда простои в работе информационной системы недопустимы и могут привести к существенным экономическим потерям.

Отказоустойчивая топология сети передачи данных

Принцип создания отказоустойчивой сети достаточно прост: линии связи должны быть дублированы (причем трассы не должны проходить по одним и тем же участкам), а активное оборудование — резервировано. Понятно, что это вдвое удорожает инфраструктуру, поэтому данный принцип реализуют на уровнях распределения, ядра и подключения серверной фермы, а оконечные устройства — пользовательские станции — подключают к коммутатору нерезервированной линией связи.

    Примечание

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

Простое соединение двух коммутаторов двумя кабелями создаст кольцо, которое недопустимо в сети Ethernet. Результатом станет широковещательный шторм и практическая неработоспособность сегмента сети. Поэтому создание отказоустойчивых решений требует проектирования и первоначальной настройки активного оборудования. У коммутаторов, предназначенных для использования на уровне доступа, обычно по умолчанию включены протоколы, которые "разорвут" такое кольцо. Коммутаторы уровня ядра не имеют подобных настроек, поэтому возникновение кольца быстро приведет к падению сегмента сети.

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

Построение отказоустойчивой сети на основе протоколов второго уровня

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

    Примечание

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

Использование протоколов остовного дерева

Протоколы остовного дерева — Spanning Tree Protocol (STP, стандарт 802.1d) и Rapid Spanning Tree Protocol (RSTP, стандарт 802.1w) — используются для автоматического построения связей сетевой структуры. Коммутаторы пытаются вычислить оптимальные маршруты между всеми устройствами по определенным алгоритмам. Для определения маршрутов и контроля соединений по специальным алгоритмам постоянно рассылаются служебные пакеты (Bridge Protocol Data Units, BPDU), коммутатор анализирует их и "понимает", где подключены конечные станции, где — активное оборудование и т. п. При обнаружении петель происходит блокировка (отключение) порта, подключенного к параллельной линии связи. Если топология сети меняется (появляются новые коммутаторы и, как следствие, от них начинают рассылаться пакеты BPDU — или наоборот), то осуществляется переконфигурирование структуры. Этот процесс занимает от 30 сек до нескольких минут в зависимости от размера сети для протокола STP. При использовании протокола RSTP (усовершенствованной версии STP) время перестройки уменьшается до нескольких секунд.

Протоколы STP/RSTSP могут обеспечить связность сети без каких-либо ручных настроек. При построении структуры алгоритмы учитывают скорость соединения и количество коммутаторов на дублированных линиях связи между точками подключения. Администратору нужно только включить данные протоколы на портах (часто это настройка по умолчанию для коммутаторов уровня доступа). На основании анализа рассылки пакетов BPDU коммутатор определяет существующие связи и автоматически отключает порты, к которым подключены вторые, резервные каналы.

Алгоритм построения конфигурации сети в этих протоколах в "центр" ставит коммутатор с самым малым весом1 (Bridge ID или Bridge Priority), поэтому для оптимизации процесса целесообразно вручную назначить приоритеты. Коммутатор в центре сети должно иметь самый малый "вес"; чем дальше от логического центра, тем большее значение Bridge ID нужно назначить коммутатору. Кроме того, в случае использования протокола RSTP желательно настроить опцию быстрого старта порта (Fast Start) для тех портов, к которым подключены конечные устройства. Это исключит такие порты из процедуры определения маршрутов и ускорит сходимость.

Протоколы STP/RSTP поддерживаются всеми современными коммутаторами. Однако серьезным недостатком их применения является отключение резервных связей. Резервные связи не используются для передачи данных и включаются только в случае повреждения основного канала.

    Примечание

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

Использование стандарта MSTP

Протокол MSTP (Multi Spanning Tree Protocol описан в стандарте 802.1s) и является расширением протокола RSTP на сеть с VLAN, точнее протокол RSTP стал частью протокола MSTP.

В отличие от RSTP, протокол MSTP строит дерево связей с учетом созданных на коммутаторах VLAN. Поэтому предупреждение петель происходит не путем отключения порта коммутатора, а через отключение передачи данных только для определенной VLAN. Иными словами, можно настроить MSTP таким образом, чтобы для части VLAN было заблокировано одно соединение из дублированных ссылок, а для других VLAN — второе. Для этого в настройках протокола администратору вручную нужно назначить каналам различные веса: в одном случае первый канал будет основным, а второй — резервным; в другом — наоборот. Таким образом все соединения будут передавать данные. В случае повреждения канала связи протокол MSTP обнаружит это событие и автоматически перестроит структуру.

Главный недостаток решения на протоколе MSTP заключается в сложности настройки такой структуры. Администратор должен четко представлять разбиение системы на VLAN, оценить потоки данных в каждом сегменте и путем ручной настройки добиться относительно равномерного использования всех каналов связи.

Также следует учитывать, что во многих моделях коммутаторов (особенно бюджетного ряда) поддержка протокола MSTP не реализована.

Использование "агрегированных" каналов

Стандарт 802.3ad описывает агрегированные каналы. Агрегированный канал позволяет объединять несколько линий связи между коммутаторами в один общий канал передачи данных. Соответственно, агрегированный канал имеет пропускную способность, равную сумме пропускных способностей объединяемых каналов. При передаче данных задействованы оба канала, причем в случае отказа одного из соединений все данные начинают передаваться через оставшийся канал. Распределение данных по отдельным каналам выполняется на основе подсчета хэш-функции от MAC-адресов источника и назначения. В результате каналы загружаются относительно равномерно, но передача данных между компьютером "А" и компьютером "Б" всегда происходит только по одному каналу, поэтому максимальная скорость передачи данных между двумя устройствами всегда определяется только одним каналом передачи данных. При этом в целом происходит общее увеличение пропускной способности.

Агрегированный канал может настраиваться как вручную явным указанием объединяемых портов, так и автоматически на основе специального протокола LACP — Link Aggregation Control Protocol. Соответствующие настройки выполняются в программе конфигурирования коммутаторов.

К сожалению, стандарт не описывает многоточечное подключение, т. е. соединение должно быть осуществлено только между двумя устройствами.

На практике многие вендоры создали решения, позволяющие "обойти" данное ограничение. Были разработаны технологии, в которых агрегированный канал создается из двух и более линий, соединяющих объединенные в один стек коммутаторы. При этом настройка такого решения выполняется аналогично созданию агрегированного канала в пределах одного коммутатора.

Подобные решения требуют специальной организации стека коммутаторов; они разработаны различными вендорами (НР, Nortel, Cisco и т. п.), но могут в каждом случае иметь уникальные названия. При этом конкретные реализации могут быть совместимы между оборудованием различных вендоров (например, MLT от Nortel идентичен технологии EtherChannel от Cisco и т. д.). Самым главным для администраторов сетей является тот факт, что два канала подключения любого его устройства к различным коммутаторам могут быть объединены в один агрегированный канал на основе открытого стандарта — 802.3ad таким образом, как будто подключение осуществляется к одному коммутатору. Например, так можно осуществить отказоустойчивое подключение сервера к ферме коммутаторов: достаточно, чтобы программное обеспечение было настроено на поддержку протокола LACP.

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

Построение отказоустойчивой сети на основе протоколов третьего уровня

Основным используемым на практике вариантом создания отказоустойчивой конфигурации сети на сегодня являются решения, основанные на применении протоколов автоматической маршрутизации. Хотя протоколы маршрутизации имеют несколько худшие показатели времени перестроения сети (например, OSPF может перестроить сеть приблизительно за 3 сек), однако трудоемкость настройки структуры сети существенно ниже, чем при использовании, например, протокола второго уровня MSTP.

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

Недостаток такого решения — использование половины каналов: данные передаются только по одной линии связи, резервная не задействована в нормальных условиях.

VRRP

К коммутаторам уровней распределения и ядра подходят несколько каналов связи, в случае отказа одного из них с помощью того или иного используемого протокола работа продолжается на исправном. Но для рабочих станций (компьютеров виртуальной частной сети подразделения) обычно существует только одна точка доступа к другим сетям: шлюз по умолчанию. Это является узким местом такого решения, поскольку в случае выхода из строя шлюза компьютеры потеряют связь с другими сетями.

Для предупреждения подобных ситуаций можно использовать протокол VRRP (Virtual Routing Reduntance Protocol), конечно, если оборудование не поддерживает другие технологии, например, агрегированные каналы на разные коммутаторы стека или подключение к кластеру коммутаторов.

    Примечание

    Протокол VRRP реализован далеко не на всех моделях коммутаторов. Как правило, модели, приобретаемые малыми организациями, не имеют поддержки данного протокола.

Идея создания отказоустойчивого шлюза с использованием протокола VRRP состоит в следующем. В сети устанавливаются два коммутатора с поддержкой данного протокола. На каждом из них настраиваются сетевые интерфейсы и включается протокол VRRP. После этого проводится настройка интерфейса с одним и тем же IP-адресом на обоих коммутаторах, причем один коммутатор определяется главным, а второй — ведомым. В нормальных условиях работы коммутаторы постоянно обмениваются между собой служебной информацией. Если они оба нормально работают, то по настроенному адресу шлюза "отвечает" только главный коммутатор. Если он выходит из строя, то второй коммутатор начинает принимать данные по адресу шлюза и передавать их в другие сети в соответствии с настройками.

Таким образом обеспечивается отказоустойчивая работа шлюза, не зависящая от состояния отдельного коммутатора или целостности связей.

Протокол VRRP является стандартом. В то же время существуют отдельные модификации его реализации на коммутаторах различных вендоров. Так, из описанного принципа работы VRRP следует, что в "нормальных условиях" передачу данных в другую сеть обеспечивает только главный коммутатор. Хотя физические связи в целях обеспечения отказоустойчивости имеют оба устройства. Поэтому, например, в коммутаторах Nortel реализовано расширение функциональности протокола VRRP. Оба коммутатора будут работать в качестве шлюза и передавать данные в другие сети. Мы не будет останавливаться подробно на реализации такой технологии. При ее использовании к одному IP-адресу шлюза привязываются два MAC-адреса: один для клиентов первого коммутатора, другой — для клиентов второго. В результате пакеты, переданные на один шлюз (один IP-адрес), достигают различных устройств. Однако если один из них выйдет из строя, его трафик будет перенаправлен в другой коммутатор. Этим достигается балансировка нагрузки на различные каналы связи и увеличение пропускной способности сети.

    Время восстановления структуры сети

Добиться малого времени восстановления передачи данных после единичной аварии сети очень сложно. На основе использования открытых стандартов реально достичь восстановления обслуживания за период не более 3—5 сек.

Использование проприетарных технологий может сократить данный период менее чем до 1 сек. Однако к подобным прогнозам следует относиться крайне осторожно: часто даже крупные вендоры в маркетинговых целях презентуют крайне низкие значения периода восстановления (например, 20 мсек), не делая акцента на тех специальных условиях, при которых получен такой показатель. Если отказ внутри шассийного коммутатора может быть парирован за данную величину, но на восстановление после другой неисправности требуется несколько секунд, то сеть в целом будет характеризоваться именно наихудшим показателем.

Что можно посоветовать администраторам? В первую очередь, больше проверять, чем доверять маркетинговым предложениям. Изучать базовые документы по используемым технологиям, читать технические описания оборудования, обращая внимания на любые оговариваемые особенности. Во-вторых, стараться быть в курсе тестов, проводимых независимыми лабораториями, такими как Tolly Group (http://www.tolly.com/), обращая при этом внимание на условия проведения теста.

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

    Серверные фермы

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

Для распределения нагрузки между серверами используются различные решения. Есть аппаратные балансировщики, распределяющие нагрузку на основе учета сетевого трафика, есть программные решения, учитывающие загрузку сервера и направляющие новые запросы на менее загруженную систему и т. п. Самый простой способ — использовать балансировку сетевой нагрузки, решение, реализуемое стандартными средствами Windows-серверов.

Серверные фермы используют в тех случаях, когда нагрузку легко разделить между серверами. Например, для веб-серверов (между серверами можно распределить как запросы от разных пользователей, так и запросы внутри одной страницы) или для терминальных серверов (разделение по пользователям или приложениям).

Настройка серверной фермы осуществляется по соответствующей документации. Например, установщик веб-платформы Windows доступен к загрузке с адреса http://go.microsoft.com/?linkid=9739157. Как правило, обеспечение серверной фермы требует наличия соответствующей архитектуры системы (на рис. 10.1 показан пример архитектуры серверов Citrix).

Рис. 10.1.
Пример архитектуры фермы серверов Citrix


1Алгоритм выбора приоритета коммутатора основан на MAC-адресе устройства, поэтому ранее установленное и, соответственно, более старое устройство, как имеющее меньший номер MAC, получит приоритет в процедуре выбора корневого коммутатора. На практике обычно происходит с точностью до наоборот: в центр сети целесообразно поместить самое новое и, следовательно, самое производительное устройство.


Рейтинг@Mail.ru