Чи забезпечують подвійні процесори толерантність до помилок?


16

Скажімо, я купив два Intel Xeon та встановив їх у апаратне забезпечення серверного класу ... Якщо один процесор не вдався, чи все-таки функціонуватиме і набиратиме слабкість, таким чином забезпечуючи відмову?

Це здається не дуже ймовірним, але я подумав, що прошу замість робити будь-які припущення.

Відповіді:


29

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

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


1
Погано встановлена ​​термопаста може спричинити перегрів процесора під час пікового навантаження. Я впевнений, що випадків цього трапляється набагато більше, ніж спонтанної несправності латунного стояка.
Відмінне мислення

8
@Oddthinking Я думаю, що ти сприйняв це занадто серйозно.
Петро

5
Навіть із процесорами з гарячою заміною, система все ще не може терпіти різкого відмови одного з них. Припустимо, ядро ​​ОС в даний час виконує процессор, який гине, він не може просто відновити виконання на іншому процесорі. Для процесорів з можливістю заміни з гарячою можливістю ядро ​​спочатку витончено закриває цей процесор.
Патрік

4
@Patrik: Так, так. Ви знаєте - WRONG;) Це стандартна поведінка для процесорів високого класу - надано, це мейнфрейм, де CPU коштує 5000+ USD. Проте вони використовують транзакційну пам'ять, і транзакція буде перезапущена в іншому процесорі.
TomTom

5
@TomTom: Звичайно, тоді ми говоримо про такі речі, як поважна TANDEM (та її сучасні спадкоємці), а не архітектура vanilla x86-64.
Пісквор

9

Якщо говорити про товарне обладнання x86, якщо система працює, а процесор виходить з ладу, речі нормально зупиняться. Однак система буде працювати нормально після перезавантаження, хоча і дещо повільніше.

Кілька процесорів здебільшого є для того, щоб паралельно обробляти, а не на відміну від помилок. Але приємно мати систему, яка все-таки завантажувала б процес CPU (або більше).

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

Звичайно, якщо у вас був хороший мейнфрейм IBM або подібний, гаряча заміна CPU (плати) досить "проста".


Гммм, але навіть у випадку жорсткої перезавантаження: IIRC, якщо CPU # 0 виходить з ладу, ви все одно накрутили - немає POST, що не означає подальшого завантаження, оскільки для першого процесу запуску використовується лише перший процесор.
Пісквор

Я не знаю, чи це було б так. Я повинен перевірити це на сервері. Я думав, що це не має значення, і поки є 1 процесор, система завантажиться нормально.
асек

5

Якщо центральний процесор вийшов з ладу - що вкрай малоймовірно, за іншими відповідями - система в основному нічого не могла б відновити. Залежно від способу його відмови, це може призвести до пошкодження пам'яті дивними способами, або знищення таблиці процесів, або, хто знає, що ще. Якби у вас була якась активна система моніторингу, яка веде вкладки на процесорі, щоб переконатися, що вона працює добре (і здатна, скажімо, відмовити будь-які зміни, внесені процесором під час смерті), це також була б іншою системою що може вийти з ладу, і визначити програмне забезпечення відмови програмно досить непросто (в основному єдиний спосіб, який ви можете практично зробити, це зробити інший процесор, що робить той самий матеріал точно в той самий час і порівняти результати - що згодом призведе до уповільнення речей вниз так, що там '

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


1
+1 за вказівку, що подвоєння процесорів збільшує потенціал відмови машини. Більше "рухомих частин" означає більше можливостей виникнення невдач.
Еван Андерсон

4

Вам доведеться точно визначити, які невдачі ви хочете усунути. Якщо ми розглядаємо колекцію ядер / процесорів / комп’ютерів, що працюють разом, як мережу, один з типів відмови полягає в тому, що вузол просто перестає відповідати. Набагато серйозніший збій - це коли вузол починає пошкоджувати дані та надсилає несправну інформацію іншим. Це називається візантійською невдачею , і в гіршому випадку це активно порушує роботу мережі через стратегічні «брехні». Порівняно легко показати, що жодна система не може обробляти третину або більше своїх вузлів, що переходять у візантійську.

Що вам потрібно зробити - це вирішити, які саме невдачі ви очікуєте, і спроектуйте свою систему з огляду на це, і прийняти той факт, що проблема поводження з довільною кількістю шкідливих вузлів нерозв’язна. У вашому випадку вам потрібно щонайменше чотири ЦП, якщо один з них несправний.

Зі сторони: у квантовій фізиці немає неможливості, але якщо доведеться чекати довше, ніж вік Всесвіту, щоб статистично мати шанс спостерігати певну поведінку, ми не повинні говорити, що це можливо. Майте це на увазі, коли ви проектуєте свою систему. ;)


2

Збій процесора може бути рідкісним. Невдача, ймовірно, призведе до інших проблем на рівні ОС. Я б не вважав це будь-якою формою відмовостійкості.


1

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


1
Ну, я б не назвав це надзвичайно рідкісним. Щойно відбулося на одному з моїх серверів. На даний момент у процесі її усунення. Подвійний сервер CPU щойно втратив один з процесорів через помилку вентилятора.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.