Chciałbym zbudować serwer pamięci (oparty na GNU / Linux lub FreeBSD), który będzie cały czas włączony. Aby zapobiec uszkodzeniu danych (co jest mało prawdopodobne, ponieważ nigdy nie miałem takiego problemu, ale lepiej być bezpiecznym niż przykro), chciałbym użyć ECC RAM.
Chociaż nie jest tak dobry jak EDD (?) (Który jest znacznie droższy) i zapewnia dodatkową ochronę. ECC wydaje się korygować tylko błędy pojedynczych bitów.
Pamięć RAM zarejestrowana przez ECC może być używana tylko z płytami stacji roboczych / serwerów, takimi jak Intel Xeon lub AMD interlagos / magny-cours / valencia g34 lub c32.
Niebuforowane ECC można stosować na Intel Xeon lga1155 lub AMD AM3 + na płytach Asus.
Druga opcja będzie o wiele tańsza po stronie procesora i płyty głównej i wątpię, że będę potrzebować więcej niż 16 GB pamięci RAM (4x4 GB ECC niebuforowane to największe przystępne karty).
Wątpliwości, które mam (głównie dotyczące płyty asus am3 +): czy pamięć RAM niebuforowana ECC jest tak dobra, jak pamięć RAM zarejestrowana przez ECC (z punktu widzenia bezpieczeństwa i niezawodności)? Czy jest to gorszy wybór. Nie dbam o szybkość.
Więcej informacji: serwer użyje skrzynki serwera z dyskami do 24 x 3,5 '' i powinien zużywać jak najmniej. LGA1155 wydaje się w tym sensie lepszym wyborem (TDP ~ 20-95 W) w porównaniu do innych (> 80 W) za dwukrotność ceny. Wszelkie sugestie są mile widziane. Powiedzmy, że mniej niż 120 W na biegu jałowym (~ z 10 dyskami twardymi na 24).
źródło
Odpowiedzi:
Cóż, jeśli użyjesz tylko 16 GB pamięci RAM - która nie jest zakresem pamięci RAM serwera - będziesz w porządku z całkiem standardową dowolną pamięcią RAM / s na pulpicie.
Jeśli jest to tylko serwer pamięci, nie potrzebujesz nawet tak dużej wydajności procesora.
Jak powiedziałeś, idź z Sandy Bridge, da ci fajny, wydajny i niezawodny system.
Mówiąc o zakresach 16 GB RAM, nie musisz się martwić o ECC.
źródło
Poprawny. Poprawienie większej liczby błędów wymagałoby więcej bitów. W tej chwili używasz już 10 bitów do przechowywania 8 bitów informacji, „marnując” 20% układów pamięci, aby umożliwić korektę jednego bitu i maksymalnie dwa bity wykrywania błędów.
Działa w następujący sposób. Wyobraź sobie a
0
lub an1
. Jeśli czytam, muszę mieć nadzieję, że przeczytam właściwą rzecz. Jeśli 0 zostanie odwrócone do 1 przez promieniowanie kosmiczne lub przez zły układ, nigdy się nie dowiem.W przeszłości próbowaliśmy rozwiązać to z parytetem. Parzystość dodawała dziewiąty bit na 8 przechowywanych bitów. Sprawdziliśmy, ile zer i ile 1 było w bajcie. Dziewiąta została ustalona, aby liczba parzysta. (dla parzystości) Jeśli kiedykolwiek przeczytałeś bajt, a liczba była niepoprawna, to wiedziałeś, że coś jest nie tak. Nie wiesz jednak, który bit był zły.
ECC rozszerzyło tę kwestię. Wykorzystuje 10 bitów i złożony algorytm do wykrycia, kiedy jeden bit się odwrócił. Wie także, jaka była pierwotna wartość. Bardzo prosty sposób wyjaśnienia, w jaki sposób to działa:
Zamień wszystkie
0
s na000
. Zamień wszystkie1
s na111
.Teraz możesz odczytać sześć kombinacji:
000
001
010
100
101
111
Nigdy nie jesteśmy w 100% pewni, co zostało pierwotnie zapisane. Gdybyśmy czytali,
000
to mogło być właśnie to,000
czego się spodziewaliśmy, lub wszystkie trzy bity mogły się przewrócić. To ostatnie jest bardzo mało prawdopodobne. Bity nie są losowo odwracane, chociaż tak się dzieje. Powiedzmy, że zdarza się to raz na dziesięć razy w przypadku niektórych prostych obliczeń (rzeczywistość jest znacznie mniejsza). Działa to z następującymi szansami odczytania poprawnej wartości:000
-> Albo000
(na pewno 99,9%), albo potrójne odwrócenie (szansa 1/1000)001
-> Wiemy, że coś poszło nie tak. Ale albo był000
i trochę przewrócony (szansa 1:10), albo był111
i dwa bity się przewróciły (szansa 1: 100). Traktujmy to tak, jakbyśmy czytali,000
ale rejestrowali błąd.010
-> Taki sam jak powyżej.100
-> Taki sam jak powyżej.011
-> Taki sam jak wyżej, ale przy założeniu, że to111
101
-> Taki sam jak wyżej, ale przy założeniu, że to111
110
-> Taki sam jak wyżej, ale przy założeniu, że to111
111
-> Albo111
(na pewno 99,9%), albo potrójne odwrócenie (szansa 1/1000)111
-> Albo000
(na pewno 99,9%), albo potrójne odwrócenie (szansa 1/1000)ECC robi podobne sztuczki, ale robi to bardziej efektywnie. W przypadku 8 bitów (jeden bajt) używają tylko 10 bitów do wykrywania i korygowania.
Wspomniałem już, czym była część ECC, teraz część zarejestrowana vs. niebuforowana.
We współczesnych procesorach kontroler pamięci jest na kości procesora, zaczynając od dawna dla układów AMD Opteron i od serii Core i dla procesorów Intel. Większość procesorów do komputerów stacjonarnych następnie komunikuje się bezpośrednio z gniazdami DIMM utrzymującymi pamięć RAM. Działa i nie jest wymagana dodatkowa logika. Jest to tania w budowie, a prędkość jest wysoka, ponieważ nie ma opóźnienia z kontrolera pamięci do pamięci RAM.
Ale kontroler pamięci może napędzać ograniczony prąd przy dużych prędkościach. Oznacza to, że istnieje ograniczenie liczby gniazd pamięci, które można dodać do płyty głównej. (I aby uczynić to bardziej złożonym, do tego, ile DIMM może zużyć, co prowadzi do rang pamięci. Pominę to, ponieważ jest to już długie).
Na płytach serwerowych często chcesz zużywać więcej pamięci niż system stacjonarny. Dlatego do pamięci dodawany jest bufor „rejestru”. Odczyty z układów na DIMM są najpierw kopiowane do tego bufora. Cykl zegara później bufor ten łączy się z kontrolerem pamięci w celu przesłania danych.
Ten bufor / rejestr opóźnia rzeczy, spowalniając pamięć. Jest to niepożądane i dlatego jest używane / potrzebne tylko na płytkach, które mają wiele banków pamięci. Większość płyt konsumenckich tego nie potrzebuje, a większość procesorów konsumenckich tego nie obsługuje.
Bezpośrednio podłączona, niebuforowana pamięć RAM vs. buforowana / zarejestrowana pamięć RAM nie jest przypadkiem, w którym jedna jest lepsza lub gorsza od drugiej. Mają po prostu różne kompromisy, jeśli chodzi o liczbę gniazd pamięci. Zarejestrowana pamięć RAM pozwala na więcej pamięci RAM kosztem pewnej prędkości (i ewentualnie kosztów). W większości przypadków, gdy potrzebujesz jak najwięcej pamięci, ta dodatkowa pamięć z nadwyżką rekompensuje działanie pamięci RAM z nieco wolniejszą prędkością.
Z punktu widzenia bezpieczeństwa i stabilności, bufory ECC niebuforowane i zarejestrowane ECC są takie same.
24 dyski będą zużywać dużo energii. Ile zależy od dysków. Mój dysk SAS o pojemności 140 GB i prędkości 15 000 obr./min pobiera zaledwie 10 W na biegu jałowym, podobnie jak dysk SATA 7k2 o pojemności 1 TB. Przy użyciu oba rysują więcej.
Pomnóż to przez 24. 24x10 W na biegu jałowym oznacza 240 watów, po prostu utrzymując talerze wirujące, pokonując opór powietrza. Podwójnie używany.
Intel jest lepszy w procesorach o niskiej mocy, w momencie pisania i w procesorach, o których wspomniałeś.
Jeśli wybierasz FreeBSD, przyjrzyj się ZFS. To może być świetne. Wiele jego bardziej zaawansowanych funkcji (np. Deduplikacja i / lub kompresja) wymaga dużej mocy procesora i wymaga dużej ilości pamięci. ZFS do podstawowego użytku z ZRAID poradzi sobie dobrze zarówno na wspomnianych zestawach procesorów, jak i na 16 GB, ale jeśli włączysz takie funkcje, jak deduplikacja, powinieneś dokładnie przyjrzeć się zalecanej pamięci potrzebnej dla twojej pojemności dysku; Niektóre przewodniki zalecają do 5 GB na TB przestrzeni dyskowej .
Jeszcze dwie rzeczy:
źródło
Dwie osobne kwestie.
ECC kontra spoza ECC
Zarejestrowane kontra niebuforowane:
źródło