Ну, разве вас не бесит это также как и меня, когда посреди полета, пилот вдруг заявляет по громкой связи, что в связи с прискорбным отказом второго двигателя, мы скоро все разобьемся, и любезно советует, знаете ли, попробовать найти духовное единение со своим создателем или «что-то типа того»?
Но постойте-ка, обычно так не бывает.
Что, в общем-то, забавно, потому что двигатели у самолетов отказывают постоянно. Серьезно, это случается так часто, что Федеральное авиационное агентство США даже не ведет статистику отказов — это такая же обыденность, как и временная недоступность какого-то сайта в интернете.
Вот тут пилоты прикидывают, что отказы авиадвигателей происходят с частотой от одного раза на каждую тысячу летных часов, до одного раза на каждые десять тысяч часов. Вроде как нечасто. Но так кажется до тех пор, пока вы не примете во внимание, что в любой день, в воздухе над США выполняется около 30 000 коммерческих рейсов.
Тем не менее, каждый день, вы просыпаетесь, ходите на работу, читаете новости и не слышите страшные истории про падающие с небес самолеты, хотя есть все шансы, что где-то в этот день у очередного самолета прямо в воздухе снова отказал двигатель. Мало того, если вы много летаете, то вполне возможно, что такое случалось и с самолетом на котором вы сами летели.
Только вы про это не узнаете,
никто не обязан вам о таком рассказывать
В этом нет большой проблемы, потому что все самолеты, кроме самых маленьких, имеют несколько двигателей. Даже с отказавшим двигателем, самолет летит, как ни в чем не бывало.
Если бы двигатели переставали работать раз в сто полетов (цифра с потолка и сильно завышенная) и на самолете был только один двигатель, то, понятно, один раз из ста полетов он бы отказывал.
А вот уже при двух установленных двигателях, хотя отказы двигателей происходили бы каждые 50 полетов, в среднем только один из 10 000 полетов, заканчивался бы трагически.
Именно поэтому, большие и тяжелые самолеты, которым для полета требуются два работающих двигателя, имеют целых четыре. Это еще больше уменьшает вероятность возникновения настоящих проблем.
Но, как я уже говорил, рейсов-то очень много и, в конце-концов, статистика берёт свое.
Если вы посмотрите эту ссылку, то узнаете, что в одном из рейсов над Индийским океаном произошло целых пять отказов двигателей. И тем не менее, этот рейс успешно приземлился, благодаря разным бортовым системам безопасности.
На самом деле, IT инфраструктура — это набор систем, работающих вместе для предоставления каких-то услуг. Каждая из систем относится к определенной категории, например физической, сетевой или хостовой. Для того, чтобы построить действительно отказоустойчивую инфраструктуру, каждая из категорий должна быть избыточна.
К физической категории относятся такие вещи, как местоположение, серверная комната, стойки, электричество. Если вы обратите внимание на последовательность в этом списке, то заметите, что перечисление начинается с самых общих вещей (местоположение) и движется в сторону частного (электричество). Это должно быть отражено в вашем планировании избыточности.
К сожалению, этот полет был бы очень захватывающим,
не в лучшем значении этого слова для пассажиров
Одного источника питания явно не достаточно. Любое оборудование зависит от питания, и если происходит отключение — тогда оопс, мы приплыли. Для борьбы с этим дата-центры имеют два независимых входа с электричеством от разных подстанций. Каждый сервер имеет по два блока питания, что и обеспечивает избыточность.
Сами дата-центры предоставляют питание от двух отдельных электросистем, каждая со своими аккумуляторными батареями и генераторами. Высококачественные дата-центры для обеспечения надежности используют схемы N+1
и N+2
. Это означает, что на каждые N-единиц оборудования, необходимого для нормальной работы, у них есть одна (или две) запасная. Самолеты с N+1
, с N+2
.
Это не так хорошо, как два независимых входа питания, но лучше чем ничего.
Сетевая инфраструктура обеспечивает удаленный доступ к нашим ресурсам. Через нее предоставляются сервисы наших организаций, и если сеть вдруг ложится, они перестают быть доступны вне зависимости, работают ли сами сервера.
Итак, мы используем многоуровневую защиту, чтобы обеспечить надежное функционирование сети.
Подключение серверов в локальной сети одним кабелем очень рискованно. Всегда есть риск зацепить и выдернуть провода. Сетевые карты сбоят, а порты на свичах умирают. Сервер станет недоступен в любом из таких случаев. Чтобы избежать возникновения подобных проблем, современные сервера выпускаются с двумя встроенными сетевыми картами. Раньше я не понимал зачем, но потом узнал об объединении интерфейсов (interface bonding).
Конечно, подключить машину двумя кабелями к одному свичу — недостаточно. Свичи тоже не слишком надежны. Они иногда сбоят и тихо умирают, а кроме того, все свичи, которые я видел, из низкой и средней ценовой категории, имели только один блок питания, то есть если он умрет (см. выше), — то доступ к вашей сети или серверам, тоже исчезнет.
Так что покупайте сразу два свича как парни и подключайте сетевые карты одного сервера всегда к разным свичам.
Понятно, что эти советы не ограничиваются ethernet-сетями. Сети хранения данных подвержены тем же проблемам, возможно, даже с более тяжелыми последствиями для ваших данных. Все, известные мне технологии сетей хранения данных поддерживают multipath-функциональность, которая работает аналогично связыванию интерфейсов.
Получив отказоустойчивую инфраструктуру, обеспечивающую функционирование и связывающую наши серверы, нужно задуматься о самих серверах. Как я уже говорил, современные серверы для надежности производятся с дублирующимися частями. Многие BIOS-ы поддерживают зеркалирование ОЗУ, практически любой сервер имеет зеркалирование системного диска. Но, не смотря на все эти предосторожности, сбои все равно происходят.
Взрываются конденсаторы на материнских платах, ошибаются люди, а зазеркалированные диски стираются ошибочно введенной командой, не выдерживают нагрузочного тестирования.
Но даже кластер серверов не поможет в случае катастрофического происшествия.
На картинке выше изображен естественный враг сетевых администраторов. Это специальный самонаводящийся оптико-искательный экскаватор, и одного такого достаточно (и в нашей стране они, управляемые красноносыми Операторами, встречаются целыми пачками), чтобы разрушить все ваши тщательно продуманные планы, которые мы перечислили выше.
Одним легким движением рычага, его зияющая пасть разрывает самые тяжело бронированные оптические кабеля и лишает интернета целые кварталы города. Пощады не будет ни для какого провайдера. В таком случае заранее мыльте веревку.
Хорошая новость: к счастью, обезопасить себя от этого можно. Плохая — к несчастью, это непросто и недешево
Ответом, конечно же, будет второй дата-центр, где-нибудь подальше от вашего основного, с повторением всей вышеописанной инфраструктуры. Похоже на полет в самолете, но с дополнительным самолетом рядом, — так, на всякий случай.
И это единственный способ стать лучше в том, что вы делаете каждый день.
Original article: Matt Simmons, 2011
Translated by Ivan Pesin
3 комментария
2 прова на fail over
питание обычное +Ups с запасом
2 серверных, vpn полет нормальный
Спасибо за замечательную статью, было интересно.
Мне кажется, воплощению избыточности сегодня мешает вовсе не невежество проектировщиков - все более-менее читают интернеты. Воплощению избыточности мешает ограниченный бюджет.
Один нарисует схему с двумя серверами в стойке и успокоится.
Другой нарисует кластер, узлы которого сильно разнесены географически, соотв., каждый имеет свой ввод питания, дублирующее оборудование, провайдера. Нагрузка узлы будет распределяться специальными серверами (тоже разнесенными географически), запросы к которым еще и балансируются (вдруг попрут изо всех сил?). И выделит еще специальный узел, доступный только для чтения, для бэкапа всех-всех данных в режиме реального времени. Ну, паранойя, с кем не бывает...
Но от недоступного файлообменника люди не умирают - я не слышал, во всяком случае. Как веб-сервисы рассчитывают цену оффлайна? У авиации задача бескомпромиссная (цена в несколько десятков человеческих жизней), а у веб-сервисов - нет. А у меня, как назло, с чувством меры с детства проблемы, я каждый системный вызов проверяю на ошибку. Оценивают "недополученную прибыль"?
P.S. От городского экскаватора можно защититься металлической трубой и глубиной залегания. Можно немного выше значимой трубы проложить пустую, чтобы пометить территорию. Может, звучит странно, но это дешевле второго дата-центра, хотя все зависит от целеустремленности экскаватора.