BBWC : 이론 상으로는 좋은 아이디어이지만 데이터를 저장 한 적이 있습니까?


26

나는 BBWC (Battery-backed write cache)가 무엇을 하려는지 잘 알고 있으며 이전에는 우수한 UPS로도 서버에서 사용했습니다. 보호 기능을 제공하지 않는 명백한 장애가 있습니다. 실제로 실제로 이점을 제공하는지 이해하고 싶습니다.

(NB는 특히 BBWC를 가지고 있고 충돌 / 실패한 사람들과 BBWC가 회복에 도움이되었는지 아닌 사람들의 답변을 찾고 있습니다)

최신 정보

여기에 피드백을 한 후, BBWC가 어떤 가치를 추가하는지에 대해 회의적입니다.

데이터 무결성에 대한 확신을 갖기 위해 파일 시스템은 데이터가 비 휘발성 스토리지에 커밋 된 시점을 반드시 알아야합니다. 데이터가 디스크에 커밋되었을 때 많은 디스크가 놓여 있다는 점에 주목할 가치가 있습니다 ( http://brad.livejournal.com/2116715.html ). 온 디스크 캐시를 비활성화하면 디스크를 더 정직하게 만들 수 있다고 가정하는 것이 합리적이지만 여전히이 경우에 대한 보장은 없습니다.

BBWC의 일반적으로 큰 버퍼로 인해 배리어는 디스크에 커밋하는 데 훨씬 더 많은 데이터가 필요하므로 쓰기 지연이 발생할 수 있습니다. 일반적인 조언은 비 휘발성 쓰기 백 캐시를 사용할 때 배리어를 비활성화하는 것입니다. 디스크 캐싱). 그러나 이는 쓰기 작업의 무결성을 손상시키는 것으로 보입니다. 비 휘발성 스토리지에 더 많은 데이터가 유지된다고해서 더 일관성이 있다는 의미는 아닙니다. 실제로 논리적 트랜잭션들 사이의 경계가 없다면 논란의 여지가없는 것보다 일관성을 보장 할 기회가 적어 보인다.

BBWC가 디스크에 커밋하지 않고 데이터가 비 휘발성 스토리지에 들어가는 시점에서 장벽을 인식해야한다면 성능 저하없이 데이터 무결성 요구 사항을 충족하는 것으로 보이며 장벽이 여전히 활성화되어 있어야 함을 의미합니다. 그러나 이러한 장치는 일반적으로 데이터를 물리적 장치로 플러시 (방벽이 있으면 상당히 느림)하고 방벽을 비활성화하는 광범위한 조언과 일치하는 동작을 나타내므로 이러한 방식으로 작동 할 수 없습니다. 왜 안돼?

OS의 I / O가 일련의 스트림으로 모델링 된 경우 OS에서 쓰기 캐싱을 관리 할 때 쓰기 장벽의 차단 효과를 최소화 할 수있는 범위가 있습니다.이 수준에서는 논리적 트랜잭션 (단일 스트림 만) )를 커밋해야합니다. 반면, 어떤 비트의 데이터가 트랜잭션을 구성하는지 알지 못하는 BBWC는 전체 캐시를 디스크에 커밋해야합니다. 커널 / 파일 시스템이 실제로 이것을 구현하는지 여부는 현재 투자하려는 것보다 훨씬 많은 노력이 필요합니다.

디스크에 결합 된 것을 디스크에 결합하면 커밋 된 내용과 갑작스런 전원 손실로 인해 손상이 발생합니다. 저널링 또는 로그 구조 파일 시스템을 사용하면 정전 후 전체 fsck를 수행하지 않아 손상이 단독으로 감지되지 않을 가능성이 높습니다. 그것을 수리하려는 시도.

고장 모드와 관련하여 필자의 경험에 따르면 대부분의 갑작스런 정전은 주 전원 손실로 인해 발생합니다 (UPS 및 관리 종료로 쉽게 완화됨). 랙에서 잘못된 케이블을 뽑는 사람들은 데이터 센터 위생이 불량하다는 것을 의미합니다 (라벨 및 케이블 관리). UPS에 의해 방지되지 않는 일부 유형의 갑작스런 전원 손실 이벤트가 있습니다. PSU 또는 VRM의 장애로 장애가있는 BBWC는 장애 발생시 데이터 무결성을 제공하지만, 이러한 이벤트가 얼마나 흔한가? 여기에 응답이 없기 때문에 매우 드문 판단입니다.

확실히 내결함성을 스택에서 더 높이 옮기는 것은 BBWC에 비해 훨씬 더 비쌉니다. 그러나 서버를 클러스터로 구현하면 성능 및 가용성에 대한 다른 많은 이점이 있습니다.

갑작스런 전원 손실로 인한 영향을 완화 할 수있는 다른 방법은 SAN을 구현하는 것입니다. AoE는이를 실용적인 제안으로 만들지 만 (실제로 iSCSI의 요점을 볼 수는 없지만) 비용이 더 높습니다.


3
NetApp 파일 서버는 수년 동안 NVRAM 쓰기 캐시를 가지고 있었고, 많은 사람들이 전원을 잃고 파일 시스템을 폐기하지 않았습니다. 어떤 것이 저장 되었기 때문에 재난이 발생하지 않았기 때문에 무언가를 저장했음을 증명하는 것은 어렵습니다. 어떤 증거를 찾고 있습니까?
MadHatter는 Monica

배터리 백업 쓰기 캐시의 장애 모드가 배터리없이 쓰기 캐시와 비교되는 경우도있을 것입니다.
Stefan Lasiewski

1
여론 조사-나는 이것을 조사하는 데 많은 시간을 보냈으며-BBWC가해야 할 일에 대한 많은 정보를 찾을 수 있지만 실제로 어떤 이점이 실현되었는지에 대한 정보는 거의 없습니다. 누군가가 BBWC가 데이터를 저장했다고 말하는 곳에서 내가 유일하게 응답 한 것은 정전이 발생했을 때 관리 종료가없는 것입니다. 지금까지 BBWC가 일부 상황에서 데이터를 저장할 수 있지만 이러한 상황은 다른 방법으로 피할 수 있다는 의심을 반박 한 것은 없습니다.
symcbean

1
아닙니다. 이는 BBWC없으면 데이터를 잃을 수 있다는 증거입니다 . 이 시스템의 장거리 시스템 관리자 대부분은 정전시 휘발성 데이터 손실 된 사례가 있다고 생각합니다 . 가장 확실한 것은 -BBWC가 데이터를 저장할 수 있다는 것을 증명하지는 못합니다 . 이것이 OP가 요청한 것입니다.
MadHatter는 Monica

1
일부 추가 분석 및 모델링은 BBWC + 장벽이 NOOP 이외의 다른 IO 스케줄러에서 감지되지 않은 손상을 초래할 수 있음을 시사합니다 (이에 대해서는 틀릴 수 있지만 다른 방법으로 제안하기 위해 열심히 노력했습니다). 도 참조 symcbean.blogspot.co.uk/2014/03/...
symcbean

답변:


34

확실한. 배터리 백업 캐시 (BBWC)와 이후 플래시 백업 쓰기 캐시 (FBWC)는 충돌 및 갑작스런 전원 손실 후 기내 데이터를 보호합니다.

HP ProLiant 서버에서 일반적인 메시지는 다음과 같습니다.

POST Error: 1792-Drive Array Reports Valid Data Found in Array Accelerator

어떤 수단 " 이봐, 재부팅 / 전력 손실을 살아 쓰기 캐시의 데이터가 !! 지금은 디스크가 다시 쓰기 거기 갈거야 있어요! "

흥미로운 사례는 토네이도 동안 전력을 잃은 시스템의 사후 사후 였습니다. 배열 순서는 다음과 같습니다.

POST Error: 1793-Drive Array - Array Accelerator Battery Depleted - Data Loss
POST Error: 1779-Drive Array Controller Detects Replacement Drives
POST Error: 1792-Drive Array Reports Valid Data Found in Array Accelerator

1793 POST 오류는 고유합니다. -시스템을 사용하는 동안 데이터가 Array Accelerator 메모리에있는 동안 전원이 차단되었습니다. 그러나 이것이 토네이도 였기 때문에 4 일 이내에 전원이 복원되지 않아 어레이 배터리가 고갈 되어 내부 데이터가 손실되었습니다. 서버에는 두 개의 RAID 컨트롤러가 있습니다. 다른 컨트롤러에는 배터리보다 훨씬 오래 지속되는 FBWC 장치가 있습니다. 드라이브가 제대로 복구되었습니다. 빈 배터리로 백업 된 어레이에서 일부 데이터 손상이 발생했습니다.


시설에서 배터리 사용 시간이 많음에도 불구하고 전원 및 위험 조건이없는 4 일 동안 누구나 서버를 안전하게 종료 할 수 없었습니다. 여기에 이미지 설명을 입력하십시오


5
그러나 출력을 오래 유지하는 데 도움이되는 유익한 정보입니다.
deed02392

흥미 롭습니다! HP가 스마트 어레이 컨트롤러에 P2000과 동일한 무 배터리 캐시를 포함시킬 계획인지 궁금합니다.
Gabriel Talavera

4
@GabrielTalavera 그렇습니다. HP는 2010 년부터 플래시 백 (캐패시터) 캐시를 사용하고 있습니다. 더 이상 배터리가 없습니다.
ewwhite

Adaptec을 사용하는 것과 동일합니다.
TomTom

감사합니다 ewwhite-내가 찾고있는 것의 종류. 한 가지 질문 : UPS 전원은 어떻게 되었습니까? 부족할 때 UPS가 시스템을 중단시키지 않습니까?
symcbean

10

그렇습니다.

데이터 센터에 UPS가없는 서버 (데이터 센터에 UPS가 있음). PDU 오류-시스템이 갑자기 충돌했습니다. 데이터 손실이 없습니다.

그리고 그것은 기본적으로입니다. BBWC의 장점은 머신에 있다는 것입니다. UPS를 믿으십시오. 때로는 누군가가 잘못된 케이블을 뽑는 것과 같은 어리석은 짓을합니다. UPS는 외부입니다. 아, 그 케이블;)


감사합니다 TomTom. 따라서 저널링 또는 로그 구조 파일 시스템을 사용하지 않는 한 데이터를 이전 장벽으로 롤백하는 대신 다음 장벽으로 롤 포워드 할 수 있습니다. 이것이 내가 여기서 평가하려는 핵심 요점 중 하나입니다. 파일 서버 역할을 약간 더 잘 유지하는 것처럼 보이지만 파일 시스템 또는 OLTP DB 무결성에는 도움이되지 않습니다.
symcbean

OLTP는 로그 쓰기가 정확하게 작성되는 한 서버 전원 장애를 정상적으로 처리하도록 구성되어 있습니다. 비 휘발성 캐시가 없으면 데이터 손실이 발생할 수 있습니다.
TomTom

RedHat은 BBWC를 사용하여 장벽을 해제해야한다고 생각합니다. 성능이 향상되지만 정전과 같은 갑작스런 정전시에는 보호 기능이 없습니다! access.redhat.com/site/documentation/en-US/…
symcbean

@symcbean 당신은 당신의 환경에서 갑작스러운 전원 손실이 없어야합니다. 가장 쉬운 상황 중 하나입니다. 왜 서버가 같이 실행되도록 쓰레기 비교적 자주 발생하는 시간의 100 %?
ewwhite

1
BBWC가 존재하는 모든 이유는 갑작스런 정전 문제를 완화하기위한 것입니다. 따라서 장벽이없는 것이 좋습니다.
TomTom

4

HW RAID 컨트롤러의 배터리 백업 캐시가 완전히 고장난 경우가 2 건있었습니다 (2 개의 별도 회사에서).

BBC는 배터리가 작동한다는 놀라운 아이디어에 의존합니다. 캐치의 어느 시점에서 컨트롤러의 배터리가 고장 나고 파괴적인 것은 많은 HW 레이드 컨트롤러에서 자동으로 실패한다는 것 입니다. 전원 손실로부터 보호되는 캐시가 있다고 생각했지만 그렇지 않았습니다.

정전시 RAID 어레이 데이터 손실이 너무 커서 모든 디스크 내용을 복구 할 수 없게되었습니다. 모든 것이 없어졌습니다. 하나의 사례는 전적으로 테스트 전용 기계와 관련이 있지만 여전히 그렇습니다.

그 후 "절대로 다시는 말하지 않겠다"고 Linux + 저널 기반 fs에서 소프트웨어 기반 디스크 미러링 (mdadm)으로 전환하여 전원 손실 (ext4)에 대한 복원력이 우수하고 다시 돌아 보지 않았습니다. 물론 IO 사용량이 극히 적은 서버에서 사용했습니다.


감사합니다 JD : 특별히 내가 요구하는 것은 아니지만 이것이 사람들이 BBWC에 대해 가정하는 것과 많은 관련이 있음을 알 수 있습니다. 그것은 하드웨어 대 소프트웨어 RAID에 대한 많은 토론과 공명합니다. 나는 소프트웨어 RAID가 캐싱 제어 장치 (휘발성 또는 다른)의 사용을 배제 하지 않는다는 후손을 지적해야한다고 생각합니다 .
symcbean

IME, Dell 및 HP RAID 카드는 BBWC에서 고장난 배터리에 대해 불만을 제기합니다 (적절한 모니터링 시스템이 있다고 가정).
mfinni

BBWC에 대한 올바른 절차 에는 배터리 테스트 포함 되어야합니다. 예를 들어 배터리가 일정 시간 동안 테스트되지 않은 경우 3ware 컨트롤러가 경고를 표시하며 배터리가 여전히 정상인지 테스트하기 쉽습니다 (유일한 단점은 쓰기 캐시입니다) 테스트 중에는 사용할 수 없습니다).
iustin

4

이 질문에 대한 두 번째 대답이 필요한 것 같습니다 ...

방금 독립형 VMware ESXi 호스트가 RAID 5 어레이에서 드라이브를 잃어 버렸습니다. 저하 된 어레이는 VM 및 응용 프로그램 수준의 성능에 영향을 미쳤습니다.

Smart Array P410i in Slot 0 (Embedded)    (sn: 5001438011138950)

   array A (SAS, Unused Space: 0  MB)

      logicaldrive 1 (1.6 TB, RAID 5, Recovering, 42% complete)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, Rebuilding)
      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK)
      physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 300 GB, OK)
      physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 300 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 300 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 300 GB, OK, spare)

이 회사의 IT 담당자는 드라이브가 고장났다는 사실을 알지 못했고 서버를 하드 리셋 했습니다 (모두 더 좋게 만들까요? ).

사용량이 많은 가상 머신이 실행중인 상태에서 손상된 어레이에이를 수행하면 다음과 같은 흥미로운 효과가 있습니다.

캐시 상태 세부 정보 : 현재 어레이 컨트롤러에는 마지막으로 재설정하거나 전원을 켰을 때 배터리 / 커패시터 백업 쓰기 캐시에 유효한 데이터가 저장되어 있습니다. 이는 시스템이 정상적으로 종료되지 않았 음을 나타냅니다. 어레이 컨트롤러가이 데이터를 드라이브에 자동으로 쓰거나 쓰려고했습니다. 이 메시지는 다음 번 어레이 컨트롤러의 전원을 껐다 켜거나 다시 켤 때까지 계속 표시됩니다.

따라서 시스템이 갑자기 중단 되더라도 기내 데이터는 BBWC에 의해 보호됩니다. 가상 머신이 모두 올바르게 복구되었으며 이제 시스템 상태가 양호합니다.


3

"데이터 저장"외에 다른 것들에도 좋습니다. 또한 디스크 쓰기 큐를 낮게 유지하여 IO 서브 시스템의 성능을 향상시키기 위해 캐시에 쓰기 버퍼링에 능숙합니다. 이는 대화 형 성능이 가장 중요한 서버 (예 : Citrix XenApp 또는 Windows Terminal Services)에 특히 중요합니다.

이것은 웹 서버 나 파일 서버에서 덜 중요합니다. 약간의 시차를 느끼지 못하거나 익숙하지 않을 수도 있습니다. 그러나 Office 응용 프로그램에서 아이콘을 클릭하면 응답 성이 기대됩니다. 그리고 CEO도 마찬가지입니다.


"
BbwC

2
당신은 또한 말했다 : "실제로 실제로 어떤 혜택을 제공하는지 이해하고 싶습니다." 나는 당신 (그리고 미래의 독자들)에게 구체적인 것을 주었다. 귀하의 질문에 따르면, 귀하가이 혜택에 대해 아는 것이 분명하지 않았습니다. 그리고 내 대답은 틀리지 않습니다.
mfinni

그렇다면 요점은 휘발성 쓰기 캐시와 어떻게 다릅니 까?
symcbean

분명히 그것은 이었다 당신이 알고 있던 기능. 그러나 다시, 당신은 그것을 명확하게하지 않았습니다. @mfinni가 도움이되었습니다.
deed02392

일부 시스템에서는 휘발성 쓰기 캐시를 활성화 할 수 없으므로 그렇게합니다. 그러나 아니요, 데이터에 신경 쓰지 않고 휘발성 쓰기 캐시를 사용할 수 있다면 계속하십시오.
mfinni
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.