Czy podwójne procesory zapewniają odporność na awarie?

16

Załóżmy, że kupiłem dwa procesory Intel Xeon i zainstalowałem je na sprzęcie klasy serwerowej ... Jeśli jeden procesor ulegnie awarii, czy drugi nadal będzie działał i odbierze luz, zapewniając w ten sposób odporność na awarie?

Nie wydaje się to bardzo prawdopodobne, ale pomyślałem, że zapytam, zamiast poczynić jakiekolwiek założenia.

Soviero
źródło

Odpowiedzi:

29

W normalnym systemie z dwoma gniazdami nie, chociaż istnieją serwery, które umożliwiają wymianę procesorów i pamięci RAM na gorąco. Więc te rzeczy zrobić istnieją, ale są one na bardzo wysokim segmencie rynku.

To naprawdę nie jest wielka sprawa - ze wszystkiego na serwerze, co może zawieść, procesor znajduje się na dole listy, obok tych małych mosiężnych taśm nośnych, które utrzymują płytę główną poza obudową.

Mark Henderson
źródło
1
Źle zainstalowana pasta termiczna może spowodować przegrzanie procesora podczas szczytowego obciążenia. Jestem pewien, że dzieje się o wiele więcej niż samoistna awaria mosiężnej kolumny.
Dziwne,
8
@Oddthinking Myślę, że wziąłeś to zbyt poważnie.
Peter
5
Nawet w przypadku procesorów wymienianych podczas pracy system nadal nie toleruje nagłej awarii jednego z nich. Załóżmy, że jądro systemu operacyjnego aktualnie wykonuje procesor, który umiera, nie może po prostu wznowić wykonywania na drugim procesorze. W przypadku procesorów wymienianych podczas pracy jądro musi najpierw z wdziękiem wyłączyć ten procesor.
Patrick
4
@Patrik: tak, racja. Wiesz - ŹLE;) Jest to standardowe zachowanie dla wysokiej klasy procesorów - oczywiście, jest to komputer mainframe, gdzie procesor kosztuje 5000+ USD. Mimo to używają pamięci transakcyjnej, a transakcja zostanie ponownie uruchomiona na innym procesorze.
TomTom
5
@TomTom: Oczywiście mówimy o czcigodnym TANDEMIE (i jego współczesnych następcach), a nie o architekturze waniliowej x86-64.
Piskvor
9

Mówiąc o sprzęcie towarowym x86, jeśli system działa, a procesor zawiedzie, rzeczy normalnie się zatrzymają. Jednak system będzie działał dobrze po restarcie, choć nieco wolniej.

Wiele procesorów ma przeważnie równoległe przetwarzanie, a nie tolerancję na awarie. Ale miło jest mieć system, który nadal uruchamia się, gdyby procesor (lub więcej) zawiódł.

Powiedziałbym, że jest bardziej prawdopodobne, że procesor zawiedzie, niż sugeruje Mark Henderson, ale nadal jest bardzo mało prawdopodobne. Z mojego doświadczenia wynika, że ​​najczęściej dzieje się tak, gdy system często się przegrzewa i wyłącza (jest to dość łatwe w źle klimatyzowanej biurowej serwerowni). Procesory raczej tego nie lubią.

Oczywiście, jeśli masz ładny komputer mainframe IBM lub podobny, zamiana procesora na gorąco (płyta) jest wystarczająco łatwa.

aseq
źródło
Hmmm, ale nawet w przypadku twardego restartu: IIRC, jeśli procesor nr 0 ulegnie awarii, nadal masz problemy - brak testu POST, co oznacza brak dalszego rozruchu, ponieważ tylko pierwszy procesor jest używany do procesu wczesnego uruchamiania.
Piskvor,
Nie wiem czy tak by było. Powinienem to przetestować na serwerze. Pomyślałem, że to nie będzie miało znaczenia i dopóki będzie obecny 1 procesor, system będzie działał poprawnie.
aseq
5

Jeśli procesor ulegnie awarii - co jest bardzo mało prawdopodobne, zgodnie z innymi odpowiedziami - w zasadzie nic nie można zrobić, aby przywrócić system. W zależności od tego, w jaki sposób zawiedzie, może to w dziwny sposób uszkodzić pamięć, zniszczyć tabelę procesów lub wiedzieć, co jeszcze. Jeśli miałbyś mieć jakiś aktywny system monitorowania, który pilnuje procesora, aby upewnić się, że działa dobrze (i, na przykład, mógł cofnąć wszelkie zmiany dokonane przez procesor podczas jego śmierci), byłby to również inny system które mogą zawieść, a programowe określenie awarii oprogramowania jest dość trudne (w zasadzie jedynym sposobem, w jaki można to praktycznie zrobić, jest to, że inny procesor wykonuje dokładnie te same czynności w tym samym czasie i porównuje wyniki - co w rezultacie spowoduje spowolnienie) w dół tak, że tam

To powiedziawszy, choć tak rzadka jak awaria procesora, zwiększenie liczby procesorów w systemie spowoduje wzrost wskaźnika awaryjności, ponieważ teraz masz dwa razy więcej rzeczy, które mogą zawieść. Masz również inne podsystemy, które również mogą ulec awarii, takie jak te, które utrzymują synchronizację pamięci podręcznych procesorów, a wzrost zużycia energii i mocy cieplnej również przyczynia się do czynników powodujących ogólną awarię systemu (i oczywiście wentylatory z aktywnym chłodzeniem są kolejnym punkt awarii).

puszysty
źródło
1
+1 za wskazanie, że podwojenie procesorów zwiększa potencjał awarii maszyny. Więcej „części ruchomych” oznacza większą szansę na niepowodzenie.
Evan Anderson
4

Będziesz musiał dokładnie określić, jakie rodzaje awarii chcesz obsłużyć. Jeśli uważamy zbiór rdzeni / procesorów / komputerów pracujących razem za sieć, jednym typem awarii jest to, że węzeł po prostu przestaje odpowiadać. Znacznie poważniejsza awaria ma miejsce, gdy węzeł zaczyna uszkadzać dane i wysyła błędne informacje do innych. Nazywa się to awarią bizantyjską , aw najgorszym przypadku aktywnie zakłóca działanie sieci poprzez strategiczne „kłamstwa”. Stosunkowo łatwo jest wykazać, że żaden system nie poradziłby sobie z jedną trzecią lub większą liczbą swoich węzłów przechodzących w Bizancjum.

To, co musisz zrobić, to dokładnie zdecydować, jakiego rodzaju awarii się spodziewasz, i zaprojektuj swój system z myślą o tym, i zaakceptuj fakt, że problem związany z obsługą dowolnej liczby złośliwych węzłów jest nierozwiązywalny. W twoim przypadku potrzebujesz co najmniej czterech procesorów, jeśli jeden z nich jest wadliwy.

Na marginesie: w fizyce kwantowej nie ma niemożliwości, ale jeśli trzeba czekać dłużej niż wiek wszechświata, aby statystycznie mieć szansę zaobserwowania określonego zachowania, nie musimy mówić, że jest to możliwe. Pamiętaj o tym podczas projektowania systemu. ;)

Anders Sjöqvist
źródło
2

Awaria procesora może być rzadka. Awaria prawdopodobnie spowodowałaby inne problemy na poziomie systemu operacyjnego. Nie pomyślałbym o tym jako o jakiejkolwiek formie tolerancji na błędy.

ewwhite
źródło
1

Ponieważ inne odpowiedzi bardzo rzadko powodują awarię procesora, a na przeciętnych serwerach nie można wykonać wymiany na gorąco, prawdopodobnie można opuścić serwer z jednym procesorem, dopóki nie zostanie wymieniony uszkodzony, oczywiście to procedura jest całkowicie offline i musisz zatrzymać serwer

Rdzeń
źródło
1
Nie nazwałbym tego super rzadkim. Właśnie wystąpił na jednym z moich serwerów. Obecnie jest w trakcie rozwiązywania problemu. Serwer z dwoma procesorami właśnie stracił jeden z procesorów z powodu awarii wentylatora.