Катастрофоустойчивые IT-системы: как внедрить в своей компании. Обзор административной части

Hot Spare ), иногда жаргонно хотспара - технология резервирования электронного оборудования, в которой резерв подключен к системе и подменяет вышедшую из строя компоненту в автоматическом режиме, или, хотя бы, без прерывания работы системы. Чаще всего применяется для жёстких дисков, оперативной памяти компьютеров. В контексте некоторых систем может называться просто "spare" (подразумевая, что устройства с холодной заменой просто в системе не видны и особого термина не требуют).

Горячий резерв для систем хранения данных

Чаще всего диски горячей замены используются в сочетании с RAID -массивами. В этом случае выделяют несколько видов hotspare дисков:

  • локальные (англ. local , англ. array-owned ) - диск принадлежит к конкретному массиву и используется для подмены вышедшего из строя диска только в заданном массиве, если в системе несколько массивов и диск выходит из строя в соседнем массиве, то локальный для другого массива диск не используется для подмены.
  • глобальные, общие (англ. global , англ. shared ) - диск не принадлежит к ни к одному массиву и может быть использован для подмены вышедшего из строя диска в любом из массивов. В сочетании глобальных и локальных хотспар бывает два алгоритма использования: либо сначала локальные, а потом глобальные, либо сначала глобальные, а потом локальные. Второй вариант позволяет формировать массивы с чуть большей надёжностью у выбранных массивов, первый - у всех.
  • групповые (англ. group ) - в этом случае некоторые массивы объединяются в группу, в пределах которой может использоваться резервный диск. Массивы не в группе этот диск не получают (такой вариант, например, использует linux-raid).

Индикация

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

Контроль состояния горячего резерва

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

Аварийное перестроение массива

Часто жёсткие диски выходят из строя не полностью, а частично (в пределах нескольких секторов). Некоторые системы способны выполнять предварительное копирование данных с частично пострадавшего массива на резервный диск до того момента, когда извлекается пострадавший диск. Сбойные места перестраиваются согласно алгоритмам RAID, нормальные просто копируются с полусбойного диска. Это минимизирует время, когда массив находится в degradated состоянии и снижает нагрузку (т.к. не нужно пересчитывать контрольные суммы для всего массива).

Альтернативы

Холодный резерв (устройство требует ручного подключения), чаще всего так называют находящиеся на складе вблизи оборудования запасные компоненты. Иногда выделяют тёплый резерв , то есть компоненты, которые требуют ручной замены, но не требуют остановки системы (см. горячая замена).

См. также


Wikimedia Foundation . 2010 .

Смотреть что такое "Горячий резерв" в других словарях:

    См. Вспомогательный пробег паровоза. Технический железнодорожный словарь. М.: Государственное транспортное железнодорожное издательство. Н. Н. Васильев, О. Н. Исаакян, Н. О. Рогинский, Я. Б. Смолянский, В. А. Сокович, Т. С. Хачатуров. 1941 … Технический железнодорожный словарь

    горячий резерв - — Тематики электросвязь, основные понятия EN hot stand byhot standby …

    горячий резерв - aktyvusis rezervas statusas T sritis Standartizacija ir metrologija apibrėžtis Rezervas, apibūdinamas tuo, kad atsarginiai įtaisai veikia ta pačia veika, kaip ir pagrindiniai įtaisai. atitikmenys: angl. active reserve; loaded reserve vok.… … Penkiakalbis aiškinamasis metrologijos terminų žodynas Справочник технического переводчика

    включенный резерв мощности судовой электроэнергетической системы - Ндп. вращающийся резерв горячий резерв Разность между значениями включенной мощности и нагрузкой судовой электроэнергетической системы в рассматриваемом режиме работы. [ГОСТ 22652 77] Недопустимые, нерекомендуемые вращающийся резервгорячий резерв … Справочник технического переводчика

    Включенный резерв мощности судовой электроэнергетической системы - 27. Включенный резерв мощности судовой электроэнергетической системы Ндп. Вращающийся резерв Горячий резерв Разность между значениями включенной мощности и нагрузкой судовой электроэнергетической системы в рассматриваемом режиме работы

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

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

Волоконно-оптические линии связи нуждаются в
надежном резервировании. Так как они подвержены
авариям природного характера, которые происходят в
основном в зимнее время и связаны с промерзанием
оборудования или грунта, что влечет за собой
внутренние повреждения волокон или выход из строя
линейной аппаратуры ВОЛС.

Варианты повышения надежности сети с привлечением резервирования:

Варианты повышения надежности сети с
привлечением резервирования:
ЛИНЕЙНОЕ РЕЗЕРВИРОВАНИЕ
СИСТЕМНОЕ РЕЗЕРВИРОВАНИЕ
РЕЗЕРВИРОВАНИЕ НА ОСНОВЕ WDM

ЛИНЕЙНОЕ РЕЗЕРВИРОВАНИЕ:

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

КОЛЬЦЕВЫЕ СТРУКТУРЫ
При построении волоконно-оптических сетей связи часто используется
кольцевая топология, для которой самовосстановление является естественным
свойством. В большинстве случаев линейная часть кольцевой структуры в сетях
связи общего пользования строится на основе пары волокон (так называемое
сдвоенное кольцо). В результате у передающего узла имеется два варианта
доступа к приемному: по часовой стрелке и в обратном направлении. Один из
маршрутов выполняет функции основного и используется для передачи трафика,
другой рассматривается как резервный.
Схема работы участка сети с линейным резервированием
а) нормальный режим; б) режим использования резерва.

СИСТЕМНОЕ РЕЗЕРВИРОВАНИЕ:

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

РЕЗЕРВИРОВАНИЕ НА ОСНОВЕ WDM

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

10. В зависимости от режима работы резервных элементов до отказа основного элемента различают следующие виды резерва:

«горячий» (нагруженный) резерв;
«тёплый» (облегчённый) резерв;
«холодный» (ненагруженный) резерв;

11. 1

*

12.

Для замены отказавшего элемента достаточно
иметь резервный (запасной) элемент на складе. Однако
продолжительность ручной замены составляет единицы
часов,
что
для
многих
систем
автоматизации
недопустимо долго. Сократить время вынужденного
простоя позволяет применение контроллеров и модулей
ввода-вывода с разъёмными клеммными соединителями
и с возможностью «горячей» замены.

13. «горячий» резерв

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

14.

Для обеспечения «горячей»
предусмотреть следующее:
замены
необходимо
● защиту от статического электричества, которое может
возникать на теле оператора, выполняющего замену
устройства;
● необходимую последовательность подачи напряжений
питания и внешних сигналов (для этого используют, напри
мер, разъёмы с контактами разной длины и секвенсоры
внутри устройства);
● защиту системы от броска тока, вызванного зарядом
ёмкостей подключаемого устройства, например с помощью
токоограничительных резисторов или отдельного источника
питания;
● защиту устройства от перенапряжения, короткого
замыкания,
переполюсовки,
превышения
напряжения
питания, очного подключения

15. «холодный» резерв

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

16.

Основное
отличие
между
«горячим»,
«холодным» и «тёплым» резервом состоит в
длительности периода переключения на резерв.
При «горячем» резервировании контроллеров
время переключения составляет от единиц
миллисекунд до долей секунды, при «тёплом» -
секунды, при «холодном» - минуты.

17.

Основной характеристикой структурного
резервирования является его кратность –
отношение числа резервирующих элементов к
числу резервируемых элементов (основных),
выраженное несокращенной дробью:

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

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

Если при последовательном соединении элементов общая надежность системы (т.е. вероятность безотказной работы) ниже надежности самого ненадежного элемента, то при резервировании общая надежность системы может быть выше надежности самого надежного элемента.

Резервирование осуществляется путем введения избыточности. В зависимости от природы последней резервирование бывает:

Структурное (аппаратное);

Информационное;

Временное.

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

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

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

Существует два метода повышения надежности систем путем структурного резервирования:

1) общее резервирование, при котором резервируется система в целом;

2) раздельное (поэлементное) резервирование, при котором резервируются отдельные части (элементы) системы.

Схемы общего и раздельного структурного резервирования представлены соответственно на рис. 5.3 и 5.4, где n число последовательных элементов в цепи, m – число резервных цепей (при общем резервировании) или резервных элементов для каждого основного (при раздельном резервировании)

При m=1 имеет место дублирование, а при m=2 – троирование. Обычно стремятся по возможности применять раздельное резервирование, т к при этом выигрыш в надежности часто достигается значительно меньшими затратами, чем при общем резервировании.

В зависимости от способа включения резервных элементов различают постоянное резервирование, резервирование замещением и скользящее резервирование.

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

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

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

Оба вида резервирования (постоянное и замещением) имеют свои преимущества и недостатки.

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

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

В зависимости от режима работы резервных элементов различают нагруженный (горячий) и ненагруженный (холодный) резерв.

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

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

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

Расчеты надежности систем с параллельно включенными элементами зависят от способа резервирования.

НАДЕЖНОСТЬ СИСТЕМ ПРИ ПОСТОЯННОМ ОБЩЕМ РЕЗЕРВИРОВАНИИ

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

С учетом схемы замещения (рис 5.5) и формулы (5.18) вероятность отказа системы с m резервными цепями можно рассчитать следующим образом:

, (5.22)

где (t) – вероятность отказа основной цепи,
– вероятность отказаi-й резервной цепи.

Соответственно вероятность безотказной работы системы

(5.23)

В соответствии с формулой (5 8) имеем

(5.24)

При одинаковых вероятностях отказов основной и резервной цепей
формулы (5 22) и (5 23) принимают вид:

, (5.25)

(5.26)

Среднее время безотказной работы системы при общем резервировании

(5.27)

где – интенсивность отказов системы,
, – интенсивность отказов любой из (m+1) цепей, – интенсивность отказовi-го элемента

Для системы из двух параллельных цепей (m=1) формула (5.27) принимает вид:

(5.28)

Среднее время восстановления системы в общем случае определяется по формуле

(5.29)

где – среднее время восстановленияi-ой цепи.

Для частного случая m=1 формула (5.29) принимает вид:

Пример 5.2.

Рассчитать вероятность безотказной работы в течение 3 месяцев, интенсивность отказов, среднюю наработку на отказ одноцепной ВЛ длиной l=35км вместе с понижающим трансформатором 110/10кВ и коммутационной аппаратурой (рис 5.6).

Схема замещения по надежности рассматриваемой СЭС представляет собой последовательную структуру (рис 5.7)

Интенсивности отказов элементов взяты из табл 3.2:

;

;




Согласно формуле (5.7) определяем интенсивность отказов схемы питания

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

Вероятность безотказной работы схемы в течение t=0,25года

Пример 5.3.

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

Исходные данные, взятые из табл. 3.2, следующие:


;

Вероятность безотказной работы в течение 6 месяцев одного трансформатора

Средняя наработка на отказ одного трансформатора

Вероятность безотказной работы двухтрансформаторной подстанции, рассчитанная по формуле (5.20):

Средняя наработка на отказ двухтрансформаторной подстанции, рассчитанная по формуле (5.28):

лет

Интенсивность отказов двухтрансформаторной подстанции

Среднее время восстановления двухтрансформаторной подстанции (см. формулу (5.30))

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

Пример 5.4.

Рассмотрим секцию РУ 6кВ, от которой питаются 18 отходящих линий (рис. 5.8) Интенсивность отказов выключателей, сопровождающихся короткими замыканиями, оценивается величиной = 0,003
, интенсивность отказов с

короткими замыканиями для сборных шин на одно присоединение
(см. табл. 3 2). Определить интенсивность кратковременных погашений секции РУ, предполагая абсолютную надежность автоматического ввода резерва (АВР) и выключателяQ2, резервирующего питание секции.

При вариантах «холодного» резервирования резервное оборудование находится в выключенном состоянии и включается только при подключении резерва в работу. До включения резервного оборудования его ресурс не расходуется, и «холодное» резервирование дает самую большую ВБР.

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

В случае «горячего» резервирования все резервные элементы ЦВМ включены и готовы сразу после команды включиться в работу. Это может обеспечить меньшее время переключения на резерв. Однако ресурс включенной резервной «горячей» аппаратуры расходуется и достижимая ВБР в этом методе меньше, чем в случае «холодного» резервирования. Время переключения на резерв – важный параметр, и допустимые его значения определяются конкретной прикладной задачей.

Для системы дублированной замещением с холодным резервом ВБР равна:

Данное приближение справедливо для ВБР . Использование дублирования с холодным замещением в нашем примере ЦВМ из 100 БИС с

на каждую ВБР за один год непрерывной работы будет равна

Рдуб.х = 1 – 0,01 = 0,99. Вместо 0.9 для нерезервированной системы.

Таким образом, простое дублирование ЦВМ приводит значение её ВБР в желаемые рамки.

Для системы троированной замещением с холодным резервом ВБР равна:

Ртр.х.= 0,995

Для системы дублированной замещением с горячим резервом ВБР равна:

И для нашего примера ЦВМ будет иметь значение ВБР

Рдб.г.= 0,99

Для системы троированной замещением с горячим резервом ВБР равна:

На графике приведены изменения Р(t) для трех случаев:

1) нерезервированная система

2) система дублированная с холодным резервом

3) система дублированная с горячим резервом

Горячее резервирование троированием с восстанавливающими органами (с мажоритарными элементами).

Этот метод реализует горячее резервирование с восстановлением информации на мажоритарных элементах с голосованием по большинству.

Мажоритарный элемент – логическое устройство, работающее по большинству. Если у него на входе 011,110,101,111 ,то на выходе у него1. Если у него на входе 001,010,100,000, то на выходе у него 0.

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

Система работоспособна, когда или все каналы работоспособны, или два из трех любых (таких сочетаний три) каналов работоспособны.

Здесь Р1 – ВБР каждого канала троированной системы.

Данная схема хороша не своей высокой ВБР (ВБР у систем с холодным и горячим резервированием замещением выше), а тем, что функции контроля и подключения резерва выполняются одновременно и автоматически на уровне МЭ. Специализированный мажоритарный контроль идет побитно над результатом каждой машинной операции. Здесь сами МЭ не резервированы и это недостаток примененной схемы.

В ЦВМ, резервированных по схеме троирования с мажоритарными органами, мажорированию подвергаются все разряды (поразрядно) передаваемого по шине данных числа, выбираемого из памяти или записываемого в память числа и т.п. По данным нашего примера ВБР ЦВМ с одним мажоритарным органом после выходного регистра имеет значение. Ртр.мж = 0,972

Сравнительные характеристики различных схем резервирования по ВБР, по времени перехода на резерв.

Изменение ВБР представлены в относительном времени . Это удобно, так как графики справедливы для любого . Здесь –

интенсивность отказов системы Для последовательной надежностной схемы.

Интенсивность отказа элементов, составляющих систему.

Красным цветом отмечено изменение ВБР по t для нерезервированной системы.

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

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

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

Наряду с этим широкое проникновение этих технологий в производство имеет оборотную сторону. Усиливается зависимость бизнеса от них. Любой компьютерный сбой приводит к простою одного или многих работников. В это время они не выполняют свою работу, следовательно, не зарабатывают прибыль. Не заработанная прибыль - это прямые убытки.

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

Наша компания продвигает и внедряет системы повышенной надежности информационных систем на основе технологий и программного обеспечения лидеров рынка.

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

Основными преимуществами предлагаемых нами решений являются:

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

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

Минимальное время простоя — отказы элементов серверов практически никак не влияют на производительность и целостность данных.

Виды резервирования

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

Полная защита информации — данные не теряются даже в случае отказа одного из узлов.

Открытая архитектура — все компоненты системы абсолютно стандартны, применение специальных аппаратных средств, модифицированных или специально написанных драйверов устройств не требуется.

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

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

Мы готовы предоставить дополнительную информацию и провести демонстрацию данных технологий.

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

2.4.1 .Виды резервирования

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

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

Если при последовательном соединении элементов общая надежность системы (т.е. вероятность безотказной работы) ниже надежности самого ненадежного элемента, то при резервировании общая надежность системы может быть выше надежности самого надежного элемента.

Резервирование осуществляется путем введения избыточности. В зависимости от природы последней резервирование бывает:

Структурное (аппаратное);

Информационное;

Временное.

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

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

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

Существуют два метода повышения надежности систем путем структурного резервирования:

1) общее резервирование, при котором резервируется система в целом;

2) раздельное (поэлементное) резервирование, при котором резервируются отдельные части (элементы) системы.

Схемы общего и раздельного структурного резервирования представлены соответственно на рис. 2.6. и 2.7., где n — число последовательных элементов в цепи, m – число резервных цепей (при общем резервировании) или резервных элементов для каждого основного (при раздельном резервировании).

При m = 1 имеет место дублирование, а при m =2 – троирование. Обычно стремятся по возможности применять раздельное резервирование, т.к. при этом выигрыш в надежности часто достигается значительно меньшими затратами, чем при общем резервировании.

В зависимости от способа включения резервных элементов различают постоянное резервирование, резервирование замещением и скользящее резервирование.

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

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

Включение резервного оборудования замещением. Холодное и горячее резервирование.

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

Оба вида резервирования (постоянное и замещением) имеют свои преимущества и недостатки.

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

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

В зависимости от режима работы резервных элементов различают нагруженный (горячий) и ненагруженный (холодный) резерв.

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

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

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

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

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

Расчеты надежности систем с параллельно включенными элементами зависят от способа резервирования.

⇐ Предыдущая13141516171819202122Следующая ⇒

Похожая информация:

Поиск на сайте:

В практике построения высокодоступных систем, прежде всего IT, существует понятие “единой точки отказа” (SPOF, Single Point Of Failure). Любая система высокой доступности данных стремится не иметь в своей архитектуре узла, линии связи или объекта, отказ которого может вывести из строя всю систему, или вызвать недоступность данных.

Все это так. Однако я обратил внимание, что в последнее время, в особенности в IT-шной среде возникло своеобразное “фетиширование” вот этого вот “отсутствия единой точки отказа”. Широко распространилось мнение, что “отсутствие единой точки отказа” это синоним “хорошо” и “система правильная ”, а ее присутствие – “плохо” и “система неправильная ”. �?

холодный резерв

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

Дело в том, что “отсутствие единой точки отказа” это “инструмент” для достижения высокой доступности, но не “цель”. “No SPOF” это одно из средств достижения доступности, но не сама доступность как таковая, средство, одно из, а не цель, часто необходимое, но не достаточное условие.

Что же, в таком случае, на самом деле определяет годность решения?

Мне представляется, что это удовлетворение требованиям по RPO/RTO для данной конкретной бизнес-задачи.

Термины RPO/RTO хорошо известны специалистам в области защиты данных и резервного копирования. RPO, Return Point Objective – это “точка доступности данных”, в случае их потери. RTO, Return Time Objective – это время, которое неоьходимо системе для восстановления своей работы, и возобновления обслуживания.

Например, если вы делаете резервное копирование вашей базы данных раз в сутки по вечерам, после окончания рабочего дня, в 21:00, то RPO для вашей системы будет 21:00 вечера предыдущего дня, то есть момент начала создания резервной копии.

Допустим, вы потеряли данные, восстановили их из бэкапа по состоянию на 21 час прошлого дня. Восстановление базы заняло 40 минут. Если у вас работает база данных, то вам еще надо актуализировать ее состояние из archive logs, накатив изменения, записанные с 21:00 по текущее время. Допустим, это заняло 15 минут. �?того, RTO, в вашем случае – 55 минут.

Плохо это или хорошо? Невозможно ответить с точки зрения IT. Ответ должен дать бизнес, которому вы служите. Для какой-то задачи даже 10 минут простоя это много. Какая-то вполне готова подождать пару часов, а какие-то задачи вполне могут и сутки постоять, ничего страшного не случится. Падение биржи NYSE может быть чревато паникой в масштабах глобальной экономики. Падение сети обслуживания банкоматов крупного банка, который за 10 минут периода простоя мог бы обработать десятки тысяч обращений “физиков”, это еще не паника, но все еще очень неприятно. А хостинг домашних страничек вполне может и сутки полежать с сообщением “�?звините, ведутся работы”, в лучшем случае выплатив клиентам неустойку за сутки простоя.

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

Поэтому, как правило, бизнес и IT обычно приходят к некоему компромиссу. Компромисс этот, как правило, сегментирован по задачам. Но в конечном счете бизнес и IT, совместно вырабатывают какие-то требования по RPO/RTO.

�? система, которая выполняет эти требования, система, удовлетворяющая этим требованиям бизнеса, за примелемые для бизнеса деньги – это хорошая система . Система, которая не удовлетворяет им – плохая .

Обратите внимание, что в моем опредении “плохой” и “хорошей” системы я не использовал понятие “отсутствия единой точки отказа” вовсе.

Может ли быть хорошей, то есть удовлетворять требованиям бизнеса по RPO/RTO, система с наличием “единой точки отказа”? Да запросто. Если период восстановления работоспособности системы укладывается в заданные рамки – да пусть сколько угодно там будет точек отказа. В особенности, если ликвидация в решении всех “единых точек отказа” экономически нецелесообразна, потому что чрезмерно дорога для решаемой бизнесом задачи.

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

В надежности нет “волшебной пули”, как нет и абсолютной надежности. �? наличие или отсутствие “единой точки отказа” в вашей части IT-системы может никак не отражаться на надежности бизнес-системы в целом. Всегда следует смотреть глубже, и задаваться целью, выполняются ли требования по RPO/RTO, необходимые бизнесу, и сколько это стоит. �? можно ли за те же деньги, или дешевле, найти решение, улучшающее этот показатель, и каким образом.

А не просто фетишировать на один из множества инструментов для достижения этой цели.

Метки: RPO, RPO/RTO, RTO, SPOF
Рубрика: justread | Комментариев нет

Резервирование дисков и каналов

При использовании зеркального диска есть вероятность повреждения единых для обоих дисков канала, контроллера и блока питания.

OS NetWare 386 может резервировать целиком каналы, при этом используются два контроллера, к которым соответственно подключены два диска. Для питания этих контроллеров и дисков используются два блока питания.

Горячее резервирование серверов

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

Относительно недавно фирма Novell разработала сетевую OS NetWare System Fault Tolerance Level III (SFT III) версии 3.11. Эта OS обеспечивает горячее резервирование серверов.

Система NetWare SFT III состоит из двух серверов, соединенных между собой скоростной линией связи, с использованием специальных адаптеров MSL (Mirrored Server Link).Эти адаптеры могут соединяться коаксиальным кабелем длиной до 33 метров или оптоволоконным кабелем длиной до 4 километров.

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

Глава II. Техническое построение локальной сети

Постановка задачи

Целью курсовой является организация локальной сети и выход в Интернет в жилом доме

Для решения поставленной цели в курсовой работе решаются следующие задачи:

· Выбор топологии и кабельной системы сети;

· Выбор сетевого оборудования;

· Выбор программного обеспечения.

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

Построение сети

Для решения первой задачи мною была выбрана топология «Звезда» так как:

Традиционно считается, что локальные сети должны строиться по топологии "звезда", а кольцевая архитектура присуща серьезным телекоммуникационным системам на основе SDH/ATM (это очень эффективное средство повышения надежности в телефонии, где несколько АТС могут продолжать работать независимо от вышедшего из строя узла).

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

Горячий резерв

При использовании "кольца" в случае выхода из строя какого-либо узла (или части кабельной системы) работоспособность сети в целом сохраняется.

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

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

Для решения задачи выбора кабельной системы сети мною был выбран кабель витая пара категории «cat5e» так как:

Для абонентской системы здания оптимальным выбором служит витая пара категории 5е. Она позволяет передавать данные со скоростью 100мбит/c, удобна в прокладке, обладает достаточно низкой стоимостью и отвечает всем требованиям по надёжности, предъявляемым к абонентской системе.

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

Для решения задачи выбора сетевого оборудования, мною были выбраны 2 коммутатора D-Link DES-3028, так как управляемые коммутаторы второго уровня серии DES-3028 представляют собой наиболее эффективное решение в категории управляемых сетевых коммутаторов начального уровня. Обладая богатым функционалом, эти коммутаторы предоставляют недорогое решение по созданию безопасной и эффективной сети отделов предприятий малого и среднего бизнеса, а также промышленных предприятий. Также эта серия является оптимальным по соотношению «цена/функционал» решением уровня доступа сети провайдера услуг. Отличительными функциями данного коммутатора являются высокая плотность портов, 4 гигабитных порта Uplink, небольшой шаг изменения настроек для управления полосой пропускания и улучшенное сетевое управление. Эти коммутаторы позволяют оптимизировать сеть как по функционалу, так и по стоимостным характеристикам.

Главный и идинственный сервер в сети должен обеспечивать:

· WEB — сервер

· Файловое хранилище

· P2P – трекер

· Выступать посредником между серверами интернет-провайдера и локальной сетью

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

· Процессор: Core 2 Quad Q9650

· Память: 8Gb DDR II

· 2x 1,5Tb HDD обьедененых в RAID 0

В качестве сетевой ОС была выбрана Ubuntu Server x64, так как эта ОС имеет ряд огромных плюсов, такких как:

· Бесплатность в отличии, например, от Windows Server

· Гибкость конфигурации

· Наличие всего необходимого софта в базовом пакете

· Поддердка практически всего оборудования

· Регулярные обновления и наличие русскоязычного сайта поддержки

Термин «горячий резерв» используется для описания возможности подключаться к серверу и выполнять запросы на чтение, в то время как сервер находится в режиме резерва или восстановления архива. Это полезно и для целей репликации, и для восстановления желаемого состояния из резервной копии с высокой точностью. Так же термин «горячий резерв» описывает способность сервера переходить из режима восстановления к обычной работе, в то время как пользователи продолжают выполнять запросы и/или их соединения остаются открытыми.

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

26.5.1. Обзор на уровне пользователя

Транзакции, запущенные в режиме горячего резерва, могут выполнять следующие команды:

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

    Команды манипуляции данными (DML) - INSERT , UPDATE , DELETE , COPY FROM , TRUNCATE . Следует отметить, что нет разрешённых действий, которые приводили бы к срабатыванию триггера во время исполнения на резервном сервере. Это ограничение так же касается и временных таблиц, так как строки таблицы не могут быть прочитаны или записаны без обращения к ID транзакции, что в настоящее время не возможно в среде горячего резерва.

    Команды определения данных (DDL) - CREATE , DROP , ALTER , COMMENT . Эти ограничения так же относятся и к временным таблицам, так как операции могут потребовать обновления таблиц системных каталогов.

    SELECT ... FOR SHARE | UPDATE , так как блокировка строки не может быть проведена без обновления соответствующих файлов данных.

    Правила для выражений SELECT , которые приводят к выполнению команд DML.

    LOCK которая явно требует режим более строгий чем ROW EXCLUSIVE MODE .

    LOCK в короткой форме с умолчаниями, так как требует ACCESS EXCLUSIVE MODE .

    Команды управления транзакциями, которые в явном виде требуют режим не только для чтения

    • BEGIN READ WRITE , START TRANSACTION READ WRITE

      SET TRANSACTION READ WRITE , SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE

      SET transaction_read_only = off

    Команды двухфазной фиксации - PREPARE TRANSACTION , COMMIT PREPARED , ROLLBACK PREPARED , так как даже транзакции только для чтения нуждаются в записи в WAL на подготовительной фазе (первая фаза двухфазной фиксации).

    Обновление последовательностей - nextval() , setval()

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

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

Пользователи могут узнать о нахождении сессии в режиме только для чтения с помощью команды SHOW transaction_read_only . Кроме того, набор функций (Таблица 9.80) позволяет пользователям получить доступ к информации о резервном сервере. Это позволяет создавать программы, учитывающие текущий статус базы данных. Такой режим может быть полезен для мониторинга процесса восстановления или для написания комплексного восстановления для особенных случаев.

26.5.2. Обработка конфликтов запросов

Ведущий и резервный серверы связаны между собой многими слабыми связями. События на ведущем сервере оказывают влияние на резервный. В результате имеется потенциальная возможность отрицательного влияния или конфликта между ними. Наиболее простой для понимания конфликт - быстродействие: если на ведущем происходит загрузка очень большого объёма данных, то происходит создание соответствующего потока записей WAL на резервный сервер. Таким образом, запросы на резервном конкурируют за системные ресурсы, например, ввод-вывод.

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

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

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

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

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

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

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

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

Если конфликтный запрос короткий, обычно желательно разрешить ему завершиться, ненадолго задержав применение записей WAL, но слишком большая задержка в применении WAL обычно нежелательна. Поэтому механизм отмены имеет параметры max_standby_archive_delay и max_standby_streaming_delay , которые определяют максимально допустимое время задержки применения WAL. Конфликтующие запросы будут отменены, если они длятся дольше допустимого времени задержки применения очередных записей WAL. Два параметра существуют для того, чтобы можно было задать разные значения для чтения записей WAL из архива (то есть при начальном восстановлении из базовой копии либо при «навёрстывании » ведущего сервера в случае большого отставания) и для получения записей WAL при потоковой репликации.

На резервном сервере, созданном преимущественно для отказоустойчивости, лучше выставлять параметры задержек относительно небольшими, чтобы он не мог сильно отстать от ведущего из-за задержек, связанных с ожиданием запросов горячего резерва. Однако если резервный сервер предназначен для выполнения длительных запросов, то высокое значение или даже бесконечное ожидание могут быть предпочтительнее. Тем не менее, следует иметь в виду, что длительные запросы могут оказать влияние на другие сессии на резервном сервере в виде отсутствия последних изменений от ведущего из-за задержки применения записей WAL.

В случае, если задержка, определённая max_standby_archive_delay или max_standby_streaming_delay будет превышена, конфликтующий запрос будет отменён. Обычно это выражается в виде ошибки отмены, но в случае проигрывания команды DROP DATABASE обрывается вся конфликтная сессия. Так же, если конфликт произошел при блокировке, вызванной транзакцией в состоянии IDLE, конфликтная сессия разрывается (это поведение может изменить в будущем).

Отменённые запросы могут быть немедленно повторены (конечно после старта новой транзакции). Так как причина отмены зависит от природы проигрываемых записей WAL, запрос, который был отменён, может быть успешно выполнен вновь.

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

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

Для опытных пользователей следует отметить, что как очистка старых версий строк, так и заморозка версии строки могут потенциально вызвать конфликт с запросами на резервном сервере. Ручной запуск команды VACUUM FREEZE может привести к конфликту, даже в таблице без обновленных и удалённых строк.

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

В случае, если количество отменённых запросов на резервном сервере получается неприемлемым, существует ряд дополнительных возможностей. Первая возможность - установить параметр hot_standby_feedback , который не даёт команде VACUUM удалять записи, ставшие недействительными недавно, что предотвращает конфликты очистки. При этом следует учесть, что это вызывает задержку очистки мёртвых строк на ведущем, что может привести к нежелательному распуханию таблицы. Тем не менее, в итоге ситуация будет не хуже, чем если бы запросы к резервному серверу исполнялись непосредственно на ведущем, но при этом сохранится положительный эффект от разделения нагрузки. В случае, когда соединение резервных серверов с ведущим часто разрывается, следует скорректировать период, в течение которого обратная связь через hot_standby_feedback не обеспечивается. Например, следует подумать об увеличении max_standby_archive_delay , чтобы запросы отменялись не сразу при конфликтах с архивом WAL в период разъединения. Также может иметь смысл увеличить max_standby_streaming_delay для предотвращения быстрой отмены запросов из-за полученных записей WAL после восстановления соединения.

Другая возможность - увеличение vacuum_defer_cleanup_age на ведущем сервере таким образом, чтобы мёртвые записи не очищались бы так быстро, как при обычном режиме работы. Это даёт запросам на резервном сервере больше времени на выполнение, прежде чем они могут быть отменены, без увеличения задержки max_standby_streaming_delay . Тем не менее при таком подходе очень трудно обеспечить какое-то определённое окно по времени, так как vacuum_defer_cleanup_age измеряется в количестве транзакций, выполняемых на ведущем сервере.

Количество отменённых запросов и причины отмены можно просмотреть через системное представление pg_stat_database_conflicts на резервном сервере. Системное представление pg_stat_database так же содержит итоговую информацию.

26.5.3. Обзор административной части

Если в файле postgresql.conf для параметра hot_standby задано значение on (по умолчанию) и существует файл recovery.conf , сервер запустится в режиме горячего резерва. Однако может пройти некоторое время, прежде чем к нему можно будет подключиться, так как он не будет принимать подключения, пока не произведёт восстановление до согласованного состояния, подходящего для выполнения запросов. (Информация о согласованности состояния записывается на ведущем сервере в контрольной точке.) В течение этого периода клиенты при попытке подключения будут получать сообщение об ошибке. Убедиться, что сервер включился в работу, можно либо повторяя попытки подключения из приложения до успешного подключения, либо дождавшись появления в журналах сервера этих сообщений:

LOG: entering standby mode ... then some time later ... LOG: consistent recovery state reached LOG: database system is ready to accept read only connections

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

    Пишущая транзакция имеет более 64 подтранзакций

    Очень длительные пишущие транзакции

Если вы применяете файловую репликацию журналов («тёплый резерв»), возможно, придётся ожидать прибытия следующего файла WAL (максимальное время ожидания задаётся параметром archive_timeout на ведущем сервере).

Значения некоторых параметров на резервном сервере необходимо изменить при модификации их на ведущем. Для таких параметров значения на резервном сервере должны быть не меньше значений на ведущем. Таким образом, если вы хотите увеличить их, вы сначала должны сделать это на резервных серверах, а затем применить изменения на ведущем. И наоборот, если вы хотите их уменьшить, сначала сделайте это на ведущем сервере, а потом примените изменения на всех резервных. Если параметры имеют недостаточно большие значения, резервный сервер не сможет начать работу. В этом случае можно увеличить их и повторить попытку запуска сервера, чтобы он возобновил восстановление. Это касается следующих параметров:

  • max_prepared_transactions

    max_locks_per_transaction

    max_worker_processes

Очень важно для администратора выбрать подходящие значения для max_standby_archive_delay и max_standby_streaming_delay . Оптимальное значение зависит от приоритетов. Например, если основное назначение сервера - обеспечение высокой степени доступности, то следует установить короткий период, возможно даже нулевой, хотя это очень жёсткий вариант. Если резервный сервер планируется как дополнительный сервер для аналитических запросов, то приемлемой будет максимальная задержка в несколько часов или даже -1, что означает бесконечное ожидание окончания запроса.

Вспомогательные биты статуса транзакций, записанные на ведущем, не попадают в WAL, так что они, скорее всего, будут перезаписаны на нём при работе с данными. Таким образом, резервный сервер будет производить запись на диск, даже если все пользователи только читают данные, ничего не меняя. Кроме того, пользователи будут записывать временные файлы при сортировке больших объёмов и обновлять файлы кеша. Поэтому в режиме горячего резерва ни одна часть базы данных фактически не работает в режиме «только чтение». Следует отметить, что также возможно выполнить запись в удалённую базу данных с помощью модуля dblink и другие операции вне базы данных с применением PL-функций, несмотря на то, что транзакции по-прежнему смогут только читать данные.

Следующие типы административных команд недоступны в течение режима восстановления:

    Команды определения данных (DDL) - например: CREATE INDEX

    Команды выдачи привилегий и назначения владельца - GRANT , REVOKE , REASSIGN

    Команды обслуживания - ANALYZE , VACUUM , CLUSTER , REINDEX

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

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

Функции pg_cancel_backend() и pg_terminate_backend() работают на стороне пользователя, но не для процесса запуска, который обеспечивает восстановление. Представление pg_stat_activity не показывает восстанавливаемые транзакции как активные. Поэтому представление pg_prepared_xacts всегда пусто в ходе восстановления. Если требуется разобрать сомнительные подготовленные транзакции, следует обратиться к pg_prepared_xacts на ведущем и выполнить команды для разбора транзакций там либо разобрать их по окончании восстановления.

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

Модуль check_pgsql для Nagios будет работать, так как сервер выдаёт простую информацию, наличие которой он проверяет. Скрипт мониторинга check_postgres так же работает, хотя для некоторых выдаваемых показателей результаты могут различаться или вводить в заблуждение. Например, нельзя отследить время последней очистки, так как очистка не производится на резервном сервере. Очистка запускается на ведущем сервере и результаты её работы передаются резервному.

Команды управления файлами WAL, например pg_start_backup , pg_switch_wal и т. д. не будут работать во время восстановления.

Динамически загружаемые модули работать будут, включая pg_stat_statements .

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

Системы репликации на базе триггеров, подобные Slony , Londiste и Bucardo не могут запускаться на резервном сервере вовсе, хотя они превосходно работают на ведущем до тех пор, пока не будет подана команда не пересылать изменения на резервный. Проигрывание WAL не основано на триггерах, поэтому поток WAL нельзя транслировать с резервного сервера в другую систему, которая требует дополнительной записи в БД или работает на основе триггеров.

Новые OID не могут быть выданы, хотя, например генераторы UUID смогут работать, если они не пытаются записывать новое состояние в базу данных.

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

Команда DROP TABLESPACE может быть выполнена только если табличное пространство пусто. Некоторые пользователи резервного сервера могут активно использовать табличное пространство через параметр temp_tablespaces . Если имеются временные файлы в табличных пространствах, все активные запросы отменяются для обеспечения удаления временных файлов, затем табличное пространство может быть удалено и продолжено проигрывание WAL.

Выполнение команды DROP DATABASE или ALTER DATABASE ... SET TABLESPACE на ведущем сервере приводит к созданию записи в WAL, которая вызывает принудительное отключение всех пользователей, подключённых к этой базе данных на резервном. Это происходит немедленно, вне зависимости от значения max_standby_streaming_delay . Следует отметить, что команда ALTER DATABASE ... RENAME не приводит к отключению пользователей, так что обычно она действует незаметно, хотя в некоторых случаях возможны сбои программ, которые зависят от имени базы данных.

Если вы в обычном режиме (не в режиме восстановления) выполните DROP USER или DROP ROLE для роли с возможностью подключения, в момент, когда этот пользователь подключён, на данном пользователе это никак не отразится - он останется подключённым. Однако переподключиться он уже не сможет. Это же поведение действует в режиме восстановления - если выполнить DROP USER на ведущем сервере, пользователь не будет отключён от резервного.

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

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

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

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

Уровень изоляции транзакции Serializable в настоящее время недоступен в горячем резерве. (За подробностями обратитесь к Подразделу 13.2.3 и Подразделу 13.4.1) Попытка выставить для транзакции такой уровень изоляции в режиме горячего резерва вызовет ошибку.