Двойные процессоры обеспечивают отказоустойчивость?

16

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

Это кажется маловероятным, но я решил спросить, а не делать какие-либо предположения.

Soviero
источник

Ответы:

29

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

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

Марк Хендерсон
источник
1
Плохо установленная термопаста может вызвать перегрев процессора во время пиковой нагрузки. Я уверен, что есть гораздо больше случаев, чем самопроизвольный отказ медного стояка.
Oddthinking
8
@ Мне кажется, ты воспринял это слишком серьезно.
Питер
5
Даже с процессорами с горячей заменой система все равно не потерпит внезапного сбоя одного из них. Предположим, что ядро ​​ОС в данный момент выполняется на умирающем ЦП, оно не может просто возобновить выполнение на другом ЦП. Для процессоров с горячей заменой ядро ​​должно сначала корректно выключить этот процессор.
Патрик
4
@ Патрик: да, верно. Вы знаете - НЕПРАВИЛЬНО;) это стандартное поведение для высокопроизводительных ЦП - предоставлено, это мэйнфрейм, где ЦП стоит более 5000 долларов США. Тем не менее, они используют транзакционную память, и транзакция будет перезапущена на другом процессоре.
TomTom
5
@TomTom: Конечно, тогда мы говорим о почтенном TANDEM (и его современных преемниках), а не о ванильной архитектуре x86-64.
Писквор
9

Если говорить о стандартном аппаратном обеспечении x86, то, если система работает и процессор не работает, все нормально останавливается. Однако система будет нормально работать после перезагрузки, хотя и несколько медленнее.

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

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

Конечно, если у вас был хороший мэйнфрейм IBM или аналогичный, горячая замена процессора (платы) достаточно «проста».

aseq
источник
Хммм, но даже в случае жесткого перезагрузки: IIRC , если CPU # 0 не удается, вы все еще привинчен - нет POST, что означает отсутствие дальнейшей загрузки, а используется только первый процессор для начала процесса запуска.
Piskvor
Я не знаю , если это было бы так. Я должен проверить это на сервере. Я думал , что это не имеет значения , и до тех пор , пока существует 1 CPU присутствует система будет загружаться нормально.
aseq
5

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

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

пушистый
источник
1
+1 за указание на то, что удвоение процессоров увеличивает вероятность отказа машины. Больше «движущихся частей» означает больше возможностей для отказа.
Эван Андерсон
4

Вы должны точно определить , какие неудачи вы хотите обработать. Если мы рассматриваем совокупность ядер / процессоров / компьютеров, работающих вместе, как сеть, одним из типов отказов является то, что узел просто перестает отвечать на запросы. Гораздо более серьезный сбой - когда узел начинает повреждать данные и отправляет ошибочную информацию другим. Это называется византийским провалом , и в худшем случае он активно нарушает работу сети из-за стратегической «лжи». Относительно легко показать, что ни одна система не может обрабатывать треть или более узлов в византийском стиле .

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

С другой стороны: в квантовой физике нет никаких невозможностей, но если вам нужно ждать дольше, чем возраст вселенной, чтобы статистически иметь возможность наблюдать определенное поведение, нам не нужно говорить, что это возможно. Имейте это в виду при разработке вашей системы. ;)

Андерс Шеквист
источник
2

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

ewwhite
источник
1

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

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