BBU의 목적이 무엇인지 궁금합니다. 처음 이해 한 것은 정전 중에 캐시가 데이터를 디스크에 쓸 수 있다는 것입니다. 그러나 일부 사양에 따르면 BBU는 최대 72 시간 동안 데이터를 보유 할 수 있다고합니다. 데이터가 밀리 초 이내에 디스크에 기록 될 것으로 기대합니다 (디스크에도 여전히 전원이 공급 됨).
그렇다면 BBU는 캐시를 보호 할뿐만 아니라 몇 초 동안 전체 디스크를 보호해야합니까? 캐시 데이터는 캐시 주변에 있고 전원을 다시 기다리는 대신 디스크에 기록되므로 더 안전하지 않습니까? 1 초 정도 지나면 디스크가 종료 될 수 있습니다.
답변
디스크에 전원을 공급하지 않으며 컴퓨터를 다시 온라인 상태로 전환 할 때까지 최대 72 시간 동안 캐시에 데이터를 유지합니다. 머신의 전원을 켜면 캐시의 내용이 디스크에 다시 쓰여집니다.
그것은 정전으로부터 보호하는 것입니다. 어떤 이유로 디스크에서 데이터를 깨끗하게 플러시하지 않고 기기의 전원이 꺼지면 배터리는 기기를 다시 시작할 수있을 때까지 캐시 내용을 유지합니다.
디스크는 외부 디스크 어레이 또는 다른 전원 회로에있을 수 있으므로 디스크 용 UPS가 아닙니다. UPS조차도 실패 할 수 있습니다.
답변
다음과 같이 작동합니다.
대부분의 운영 체제에는 소위 “동기 쓰기”를 허용하는 시스템 호출이 있습니다. 즉, 쓰기 작업 중에 쓰기가 완료되면 디스크에 커밋되었음을 보증합니다.
따라서 동기 쓰기는 캐시되지 않습니다. 완료 될 때까지 응용 프로그램을 차단합니다. 이러한 종류의 작업은 캐시 된 쓰기보다 속도가 느리므로 디스크가 충분히 유휴 상태가되어 데이터를 쓸 때까지 OS 메모리에 데이터를 유지합니다.
데이터베이스 소프트웨어와 같은 일부 중요 소프트웨어는 전원 손실시 절반으로 작성된 업데이트가 데이터베이스 무결성에 해로울 수 있으므로 중요 데이터에 대한 동기 쓰기를 수행합니다.
RAID-5 쓰기에서는 RAID 컨트롤러의 속도가 느려 악의적 인 응용 프로그램 소프트웨어가 많은 동기 쓰기를 사용하는 경우 문제가됩니다. 이러한 이유로 RAID-5 컨트롤러에는 자체 캐시가 장착되어 있습니다.
RAID 컨트롤러는 데이터를 캐시에 대신 LIES를 OS에 쓰고 데이터를 디스크에 커밋 한 반면 데이터는 실제로는 여전히 RAID 캐시에 있음을 알려줍니다.
그러나 데이터가 여전히 RAID 컨트롤러의 버퍼에있는 동안 전원이 꺼지면 어떻게해야합니까? 디스크에 절반으로 작성되고 일관성이없는 데이터가있을 것입니다.
이 동작이 동기 쓰기의 목적을 상실한다고 말할 수 있습니다 … 캐시 쓰기가 괜찮다면 앱 소프트웨어는 처음에 동기화 쓰기를 요청하지 않습니다.
타협은 이것입니다. RAID 컨트롤러는 여전히 데이터를 디스크에 커밋 한 OS에 있지만 정전시이 중요한 데이터를 보호하기 위해 RAID 컨트롤러에는 전원이 공급 될 때까지 일정 시간 동안 캐시를 유지하는 배터리가 있습니다. 복원되었습니다.
따라서 전원이 다시 공급되고 디스크가 회전하고 초기화 된 후에도 컨트롤러는 배터리 덕분에 캐시에 해당 데이터를 보유하고 트랜잭션을 디스크에 기록하는 것을 완료 할 수 있습니다.
모두 행복합니다.
이것이 바로 기능적이고 충전 된 배터리 장치가없는 한 RAID 컨트롤러가 쓰기 캐시를 활성화 할 수없는 이유입니다.
답변
일부 최신 디스크 컨트롤러에는 이제 일반적인 72 시간보다 훨씬 더 오래 데이터를 유지하는 고속 플래시 캐시가 제공되며 종종 훨씬 더 크다 (~ 1GB). 부품 세부 정보가 필요하면 알려주십시오.
답변
해당 BBU 캐시는 저널 파일 시스템에서 제공하는 것과 비슷한 수준의 보호 기능을 추가하는 것으로 생각하십시오. 정전으로 인해 트랜잭션이 중단 된 경우 트랜잭션 (이 경우 간단한 쓰기)을 완료 할 수 있습니다. 전원이 차단되면 컨트롤러가 계속 쓸 수 없으므로 결과를 완전히 예측할 수 없습니다. 대신, 데이터는 가능한 한 오래 유지되며 전원이 재개되면 데이터 쓰기가 완료됩니다. 그것이하지 않는 것은 드라이브의 UPS처럼 행동하는 것입니다.
답변
정전이 거의없는 경우에도 특히 DB 서버에서 100 달러짜리 배터리를 구입해야합니다. 트랜잭션이 활성화 되어 있고 변경 사항이 캐시를 떠나 디스크에 커밋되기 전에 서버의 전원이 꺼진 경우에도 불완전한 쿼리 또는 손상된 데이터가 남게됩니다.
답변
쓰기 캐시를 사용하는 경우 서버가 충돌하거나 중단되거나 누군가 전원 케이블을 뽑으면 BBU가 손상되거나 손실 된 데이터로부터 사용자를 보호합니다. USV를 사용하면 정전으로부터 보호됩니다.
쓰기 캐시를 사용하지 않으려면 BBU가 필요하지 않습니다.
답변
RAID 카드는 1GB의 캐시를 가질 수 있습니다. 일반적으로 쓰기 캐시에 모두 사용되는 것은 아니지만 쓰기되지 않은 데이터의 대기열을 상당히 오래 저장한다고 가정 할 수 있습니다.
파일 시스템과 데이터베이스는 정전이 발생하더라도 동기 쓰기가 순서를 바꾸지 않는다고 가정합니다. 일반적으로 동기 쓰기는 데이터가 디스크에있는 후에 만 반환되지만 상대적으로 느립니다. RAID 카드는 작은 쓰기를 함께 그룹화하고 덜 무작위로 다시 정렬하여 성능을 향상시킵니다.
BBU가없는 경우,로드시 정전으로 인해 결과가 좋지 않을 수 있으며 RAID 카드가 손실 될 것이라고 약속 한 쓰기 (파일 시스템의 경우 새 파일 또는 디렉토리에 대한 참조가있을 수 있지만 파일 시스템은 파일 시스템이 파일을 참조하기 전에 새 파일을 특별히 만들었더라도) 백업에서 복원하거나 데이터가 너무 엉망이되지 않기를 바랍니다. 더 나쁜 것은 누군가가 비밀 파일을 삭제하고 다른 사람이 세계가 읽을 수있는 파일을 만든 경우 비밀 파일의 일부 내용이 세계가 읽을 수있는 파일에서 발견 될 수 있습니다. 파일 시스템이 구축되었다고 가정하면 모든 것이 가능합니다.
UPS가 무정전 전원 공급을 보장한다고 가정하면; 기계가 고장 나서 전원 코드를 뽑아야합니까?
소비자 SATA 디스크 (및 SSD)는 때때로 동기식 쓰기도 캐시하지만, 캐시는 훨씬 작고 소비자 사용이 덜 까다로워 일반적으로이를 벗어날 수 있습니다.
최신 RAID 컨트롤러에는 플래시가있어 정전시 쓰기 캐시의 내용을 복사하므로 배터리가 몇 초 이상 지속될 필요가 없습니다.