Просмотров: 9853

Избыточность. Советы сисадмину на черный день


Ну, разве вас не бесит это также как и меня, когда посреди полета, пилот вдруг заявляет по громкой связи, что в связи с прискорбным отказом второго двигателя, мы скоро все разобьемся, и любезно советует, знаете ли, попробовать найти духовное единение со своим создателем или «что-то типа того»?

Но постойте-ка, обычно так не бывает.

Что, в общем-то, забавно, потому что двигатели у самолетов отказывают постоянно. Серьезно, это случается так часто, что Федеральное авиационное агентство США даже не ведет статистику отказов — это такая же обыденность, как и временная недоступность какого-то сайта в интернете.

Страховка рисков и жизней

Вот тут пилоты прикидывают, что отказы авиадвигателей происходят с частотой от одного раза на каждую тысячу летных часов, до одного раза на каждые десять тысяч часов. Вроде как нечасто. Но так кажется до тех пор, пока вы не примете во внимание, что в любой день, в воздухе над США выполняется около 30 000 коммерческих рейсов.

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

Только вы про это не узнаете,
никто не обязан вам о таком рассказывать

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

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

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

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

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

сисадмин системный администратор резервирование дублирование UPS мироринг избыточность

Но, как я уже говорил, рейсов-то очень много и, в конце-концов, статистика берёт свое.

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

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

Избыточность — как синоним надежности

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

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

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

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

Сами дата-центры предоставляют питание от двух отдельных электросистем, каждая со своими аккумуляторными батареями и генераторами. Высококачественные дата-центры для обеспечения надежности используют схемы N+1 и N+2 . Это означает, что на каждые N-единиц оборудования, необходимого для нормальной работы, у них есть одна (или две) запасная. Самолеты с 2-мя двигателями используют схему N+1 , с 4-мя двигателями — N+2 .

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

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

сисадмин системный администратор резервирование дублирование UPS мироринг избыточность

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

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

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

Подключение серверов в локальной сети одним кабелем очень рискованно. Всегда есть риск зацепить и выдернуть провода. Сетевые карты сбоят, а порты на свичах умирают. Сервер станет недоступен в любом из таких случаев. Чтобы избежать возникновения подобных проблем, современные сервера выпускаются с двумя встроенными сетевыми картами. Раньше я не понимал зачем, но потом узнал об объединении интерфейсов (interface bonding).

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

Так что покупайте сразу два свича как парни и подключайте сетевые карты одного сервера всегда к разным свичам.

сисадмин системный администратор резервирование дублирование UPS мироринг избыточность

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

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

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

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

Но даже кластер серверов не поможет в случае катастрофического происшествия.

сисадмин системный администратор резервирование дублирование UPS мироринг избыточность

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

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

Хорошая новость: к счастью, обезопасить себя от этого можно. Плохая — к несчастью, это непросто и недешево

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

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

сисадмин системный администратор резервирование дублирование UPS мироринг избыточность

И это единственный способ стать лучше в том, что вы делаете каждый день.

Original article: Matt Simmons, 2011
Translated by Ivan Pesin

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , ,
Эта запись опубликована: Суббота, 18 февраля 2012 в рубрике Unix'овоеМнения.

3 комментария

Следите за комментариями по RSS
  1. 2 прова на fail over

    питание обычное +Ups с запасом

    2 серверных, vpn полет нормальный

  2. Спасибо за замечательную статью, было интересно.

  3. Мне кажется, воплощению избыточности сегодня мешает вовсе не невежество проектировщиков - все более-менее читают интернеты. Воплощению избыточности мешает ограниченный бюджет.

    Один нарисует схему с двумя серверами в стойке и успокоится.

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

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

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

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз