ECC 등록 및 ECC 비 버퍼링


15

항상있을 스토리지 서버 (GNU / Linux 또는 FreeBSD 기반)를 구축하고 싶습니다. 데이터 손상을 막기 위해 (이러한 문제는 없었지만 미안보다 안전합니다) ECC RAM을 사용하고 싶습니다.

EDD (?)만큼 좋지는 않지만 (비싸지 만) 추가 보호 기능을 제공합니다. ECC는 단일 비트 오류 만 수정하는 것으로 보입니다.

ECC 등록 RAM은 Intel Xeon 또는 AMD interlagos / magny-cours / valencia g34 또는 c32와 같은 워크 스테이션 / 서버 보드에서만 사용할 수 있습니다.

ECC 언 버퍼 드는 Intel Xeon lga1155 또는 Asus 보드의 AMD AM3 +에서 사용할 수 있습니다.

두 번째 옵션은 프로세서와 마더 보드 측면에서 훨씬 저렴할 것이며 16GB 이상의 RAM이 필요할 것입니다 (4x4GB ECC 버퍼되지 않은 것이 가장 저렴한 스틱입니다).

내가 가지고있는 의문은 (주로 asus am3 + 보드에 관한 것입니다) ECC-unbuffered RAM은 ECC 등록 RAM만큼이나 안전합니다 (안전성과 신뢰성의 관점에서)? 아니면 더 나쁜 선택입니까? 나는 속도를별로 신경 쓰지 않습니다.

자세한 내용 : 서버는 최대 24 x 3.5 ''드라이브의 서버 케이스를 사용하며 가능한 적게 소비해야합니다. LGA1155는 그런 의미에서 다른 두 배 (> 80W)보다 2 배 더 나은 내기 (TDP ~ 20-95W) 인 것으로 보인다. 어떤 제안이라도 환영합니다. 유휴 상태에서 120W 미만 (24 개 중 10 개의 하드 디스크 사용)을 가정 해 봅시다.


1
수퍼 유저에게 물어 보면 수퍼 유저 답변을 얻을 수 있습니다. ServerFault에 묻 으면 ServerFault 응답이 표시됩니다. 드리프트 줘?
채드 해리슨

FAQ는 수퍼 유저에게 하드웨어 질문을 할 수 있음을 나타냅니다.
user51166

@hydroparadise FAQ 확인-모든 하드웨어 질문이 허용됩니다.
Simon Sheehan

Sry, 나는 그것이 가정되었다고 생각했다. OS 측에서는 ECC를 해결하는 방법에있어 다른 고려 사항이있을 수 있다고 언급 한 것입니다. 이것이 서버 응용 프로그램이 될 것이기 때문입니다.
채드 해리슨

1
간신히. 대부분의 경우 칩셋은 ECC 수정 (있는 경우)을 처리합니다. OS에서 사용하지 않아도됩니다. (그러나 DMI를 사용하여 ECC 또는 QPI 오류에 대한 정보를 얻을 수 있습니다.)
Hennes

답변:


-2

글쎄, 서버 RAM 범위가 아닌 16GB RAM 만 사용하면 거의 모든 표준 데스크탑 RAM / 시스템으로 괜찮을 것입니다.

스토리지 서버 일 경우 CPU 성능이 그다지 필요하지 않습니다.

당신이 말했듯이, Sandy bridge와 함께 가면 시원하고 성능이 뛰어나고 안정적인 시스템을 제공합니다.

16GB RAM 범위에 대해 말하면 ECC에 대해 걱정할 필요가 없습니다.


빠른 답변 감사합니다. 4GB RAM 이상이지만 ECC가 필요합니다. 256GB RAM 또는 1 / 2TB RAM ECC는 필수입니다. 그러나 16GB는 한계가 있었지만 어쨌든 이상합니다 ... Xeon 4C / 8T Sandybridge는 동등한 데스크탑 CPU보다 100 달러 저렴합니다. 총 비용은 ~ 동일합니다. ECC에는 단점이 없습니다. ECC가 필요하지 않습니까?
user51166

@ user51166 100 % 확실합니다. 16GB는 요즘 중 / 고급 굴착 장치의 표준과 같습니다.
inf

2
그것이 사실상의 표준이라는 사실이 반드시 그것이 충분히 신뢰할 수 있다는 것을 의미하지는 않습니다. 인터넷의 경우 디스크의 모든 데이터가 SATA 컨트롤러가 아니라 하드 디스크가 아닌 RAM으로 인해 HDD에서 손상된 경우에 대해 이미 읽었습니다.
user51166

1
@ user51166 ECC가 아닌 사람은 확실히 그의 문제가 아니라고 말했다.
inf

1
"등록 된 ECC> 버퍼되지 않은 ECC"없음 / 때때로. 버퍼링되지 않은 / 등록되지 않은 ECC는 실제로 더 빠릅니다. 버퍼링 / 등록 된 ECC는 하나 이상의 레지스터 동작이 느리지 만 메모리 채널에 더 많은 DIMM을 추가 할 수 있습니다. (그리고 더 많은 메모리를 CAN 에도 대기 시간이 증가하는 경우, 빠른 시스템을 만들). 따라서 어려운 "예 / 아니오"정답은 "의존"입니다.
Hennes

45

ECC는 단일 비트 오류 만 수정하는 것으로 보입니다.

옳은. 더 많은 오류를 수정하려면 더 많은 비트가 필요합니다. 그대로, 이미 10 비트를 사용하여 8 비트의 정보를 저장하여 메모리 칩의 20 %를 '낭비'하여 단일 비트 수정과 최대 2 비트의 오류 감지가 가능합니다.

다음과 같이 작동합니다. a 0또는 a를 상상해보십시오 1. 내가 읽는다면 나는 옳은 것을 읽었 으면 좋겠다. 우주 방사선이나 불량 칩으로 인해 0이 1로 바뀌면 알 수 없습니다.

과거에는 패리티로 해결하려고했습니다. 패리티는 저장된 8 비트 당 9 번째 비트를 추가했습니다. 우리는 바이트에 몇 개의 0과 몇 개의 1이 있는지 확인했습니다. 아홉 번째는 짝수로 설정되었습니다. (패리티도) 바이트를 읽고 숫자가 틀린 경우 무언가 잘못되었다는 것을 알 수 있습니다. 그래도 어떤 비트가 잘못되었는지 모릅니다.

ECC가 확장되었습니다. 단일 비트가 플립 된 시점을 발견하기 위해 10 비트와 복잡한 알고리즘을 사용합니다. 또한 원래 값이 무엇인지 알고 있습니다. 그 방법을 설명하는 매우 간단한 방법은 다음과 같습니다.

모든 교체 0에들 000. 모든 교체 1에들 111.

이제 6 가지 조합을 읽을 수 있습니다.
000
001
010
100
101
111

우리는 원래 저장된 것이 100 % 확실하지 않습니다. 우리가 읽는 000다면 000그것은 우리가 기대했던 것일 수도 있고, 또는 세 비트 모두가 뒤집 혔을 수도 있습니다. 후자는 거의 없을 것입니다. 비트는 무작위로 뒤집 히지 않지만 발생합니다. 쉬운 계산을 위해 열 번에 하나씩 발생한다고 가정하십시오 (실제로는 훨씬 적습니다). 올바른 값을 읽을 수있는 다음과 같은 가능성이 있습니다.

000-> 000(99.9 % 확신) 또는 트리플 플립 (1/1000 확률)

001-> 무언가 잘못되었다는 것을 알고 있습니다. 그러나 그것은 0001 비트 뒤집 혔거나 (1:10 기회), 1112 비트 넘겼습니다 (1 : 100 기회). 따라서 000오류를 읽지 만 기록하는 것처럼 취급하겠습니다 .

010 -> 위와 동일합니다.

100 -> 위와 동일합니다.

011 -> 위와 동일하지만, 111

101 -> 위와 동일하지만, 111

110 -> 위와 동일하지만, 111

111-> 111(99.9 % 확신) 또는 트리플 플립 (1/1000 확률)

111-> 000(99.9 % 확신) 또는 트리플 플립 (1/1000 확률)

ECC는 유사한 트릭을 수행하지만 더 효율적입니다. 8 비트 (1 바이트)의 경우 10 비트 만 사용하여 감지하고 수정합니다.


ECC 등록 RAM은 워크 스테이션 / 서버 보드에서만 사용할 수 있습니다. 버퍼링되지 않은 ECC는 Intel Xeon lga1155 또는 AMD AM3 +에서 사용할 수 있습니다.

ECC 부분이 무엇인지, 이제 등록 된 부분과 버퍼되지 않은 부분을 이미 언급했습니다.

최신 CPU에서 메모리 컨트롤러는 오래 전에 AMD Opteron 칩과 Intel의 Core i 시리즈에서 시작하여 CPU 다이에 있습니다. 그런 다음 대부분의 데스크탑 CPU는 RAM이있는 DIMM 소켓과 직접 통신합니다. 작동하며 추가 논리가 필요하지 않습니다. 메모리 컨트롤러에서 RAM으로 지연되는 시간이 없기 때문에 구축 비용이 저렴하고 속도가 빠릅니다.

그러나 메모리 컨트롤러는 제한된 전류 만 고속으로 구동 할 수 있습니다. 이는 마더 보드에 추가 할 수있는 메모리 소켓 수에 제한이 있음을 의미합니다. (더 복잡하게, 얼마나 많은 DIMM을 사용할 수 있는지, 메모리 순위로 이어집니다. 이미 길었으므로 생략하겠습니다).

서버 보드에서는 종종 데스크탑 시스템보다 더 많은 메모리를 사용하려고합니다. 따라서 "레지스터"버퍼가 메모리에 추가됩니다. DIMM의 칩에서 읽은 내용이 먼저이 버퍼에 복사됩니다. 클럭 사이클 후이 버퍼는 메모리 컨트롤러에 연결하여 데이터를 전송합니다.

이 버퍼 / 레지스터는 작업을 지연시켜 메모리를 느리게 만듭니다. 이는 바람직하지 않으므로 메모리 뱅크가 많은 보드에서만 사용 / 필요합니다. 대부분의 소비자 보드는이를 필요로하지 않으며 대부분의 소비자 CPU는이를 지원하지 않습니다.

직접 연결된 비 버퍼 RAM과 버퍼 / 등록 RAM은 하나가 다른 것보다 낫거나 나쁜 경우는 아닙니다. 얼마나 많은 메모리 슬롯을 가질 수 있는지에 따라 다른 절충점이 있습니다. 등록 된 RAM은 약간의 속도 (및 비용)로 더 많은 RAM을 허용합니다. 가능한 많은 메모리가 필요한 대부분의 경우 추가 메모리는 약간 느린 속도로 실행되는 RAM을 보완합니다.

내가 가지고있는 의문은 (주로 asus am3 + 보드에 관한 것입니다) ECC-unbuffered RAM은 ECC 등록 RAM만큼이나 안전합니다 (안전성과 신뢰성의 관점에서)? 아니면 더 나쁜 선택입니까? 나는 속도를별로 신경 쓰지 않습니다. **

안전성과 안정성의 관점에서 ECC-unbuffered와 ECC-registered는 동일합니다.


자세한 내용 : 서버는 최대 24 x 3 ½ ''드라이브의 서버 케이스를 사용하며 가능한 적게 소비해야합니다.

24 개의 드라이브는 많은 전력을 소비합니다. 드라이브에 따라 다릅니다. 140GB 15K RPM SAS 드라이브는 1TB SATA 7k2 디스크와 마찬가지로 유휴 상태에서 불과 10 와트 만 소비합니다. 둘 다 더 많이 그립니다.

유휴 상태에서 24x24x24W를 곱하면 240W를 의미하므로 디스크 플래터가 회전하면서 공기 저항을 극복 할 수 있습니다. 사용중인 것을 두 배로하십시오.


LGA1155는 그런 의미에서 다른 두 배 (> 80W)보다 2 배 더 나은 내기 (TDP ~ 20-95W) 인 것으로 보인다.

인텔은 쓰기 시점과 언급 한 CPU에 대해 저전력 CPU에서 더 좋습니다.

어떤 제안이라도 환영합니다. 유휴 상태에서 120W 미만 (24 개 중 10 개의 하드 디스크 사용)을 가정 해 봅시다.

FreeBSD를 원한다면 ZFS를 열심히 살펴보십시오. 훌륭 할 수 있습니다. 더 많은 고급 기능 (예 : 중복 제거 및 / 또는 압축)은 심각한 CPU 성능을 사용하며 충분한 메모리를 원합니다. ZRAID와의 기본 사용을위한 ZFS는 언급 한 CPU 세트와 16GB 모두에서 잘 작동하지만 중복 제거와 같은 기능을 켜면 디스크 용량에 필요한 권장 메모리를주의 깊게 살펴 봐야합니다. 일부 안내서 에서는 스토리지 TB 당 최대 5GB를 권장 합니다 .

두 가지 더 :

  1. 드라이브 연결에 대해 아무것도 보지 못했습니다. 일부 보드는 최대 10 개의 SATA 포트로 연결될 수 있습니다. 그러나 그 이상을 위해서는 추가 기능 카드가 필요합니다. 하드웨어 RAID를 고려한다면 처음부터 계획하는 것이 가장 좋습니다.
  2. 드라이브 장애 : SATA 포트 멀티 플라이어 를 사용 하는 경우 SATA 드라이브에 장애가 발생할 경우 어떻게 작동하는지주의 깊게 살펴보십시오. 종종 예쁘지 않습니다. 홈 설정에는 큰 문제는 아니지만 엔터프라이즈 급에는 큰 문제가 아닙니다. 개별 드라이브가 오류를 처리하는 방법도 고려해야합니다. 일부 드라이브가 "NAS"또는 "RAID"용으로 표시된 이유는 일반 드라이브와 다르게 오류를 처리하기 때문입니다. RAID가 없으면 드라이브가 가능한 한 여러 번 재 시도되기를 원합니다. RAID를 사용 하면 드라이브가 빨리 고장 나기 를 원하므로 다른 사본에서 읽을 수 있습니다.

5
이것이 실제로 질문에 대한 답변으로 반대하는 반면, 다른 하나는 더 실용적이고 일화적인 조언입니다. 우리는 레지스터 대 버퍼되지 않은 부분에 도착하기 전에 조금 의미가 있다는 것을 무시할 것입니다.)
ernie

1
알겠습니다. 나는 철저하게 노력했지만 실제로 작가가되어서는 안됩니다. (소설 또는 매뉴얼).
Hennes

또한 권력 및 기타 우려 사항을 해결하기 시작했을 때 처음에 독서를 중단했음을 무시합니다. . . ;)
ernie

1
이것은 훌륭한 답변이며, 더 짧을 수 없으며 여전히 모든 질문을 잘 처리합니다. 방금 텍스트를 정리하여 적당히 편집하면 텍스트가 적용되면 도움이됩니다. 두 줄을 다듬기 위해 사과를 제거 했더라도 여기서 받아 들여진 대답은별로 도움이되지 않았습니다. ZFS 중복 제거 문제에 대해 간략히 설명하고 거기에있는 동안 오류 처리를 유도했습니다. 24 개의 드라이브에서도 문제가 되더라도 진동에 빠지지 않기로 결정했습니다.
Greg Smith

등록 된 버퍼와 버퍼되지 않은 버퍼 및 RDIMM을 사용해야하는 이유를 설명해 주셔서 감사합니다.
Mahmoud Al-Qudsi

1

두 가지 별도의 문제.

비 ECC 대 ECC

  • 가동 시간이 중요한 경우 ECC 사용
  • 더 많은 비용-8 대신 9 칩 필요 (여러 개)
  • 메인 보드를 사용하려면이를 지원해야합니다

버퍼링되지 않은 등록 된 대 :

  • 등록 된 DIMM으로 훨씬 많은 총 RAM을 설치할 수 있습니다.
    • 메모리 컨트롤러 인터페이스의 전기 변형 감소
  • 그러나 설치된 모든 DIMM은 등록되어 있어야합니다.
    • 등록으로 업그레이드하는 경우 버퍼되지 않은 DIMM을 제거해야합니다.
  • 또한 비용이 더 비싸고주기가 더 느립니다.
    • 버퍼링되지 않은 경우 약간의 지연 시간이 중요합니다.
    • 모든 랜덤 액세스는 어쨌든 많은주기를 필요로합니다
    • 절대 액세스 대기 시간 (나노초 단위)은 PC의 DRAM 사용 기록에서 크게 개선되지 않았습니다.
      • 대신 비용, 용량 및 대역폭이 크게 향상되었습니다.
      • 메모리 캐시는 대부분의 메모리 액세스에 대한 대기 시간을 숨 깁니다
    • 대기 시간이 길수록 단일 스레드 '실시간'성능이 가장 저하됩니다
      • 일반적으로 '서버'사용 사례에 큰 영향을 미치지 않습니다
    • 대역폭 및 전체 성능의 차이가 최소 / 최소
      • 순차 액세스 대역폭은 영향을받지 않습니다
      • L2 / L3 캐시는 실제 액세스 패턴이 캐시에서 한 번에 한 번에 행을 대체하므로 일반적으로 '버스트'액세스입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.