다음과 같이 작동합니다.
대부분의 운영 체제에는 소위 "동기 쓰기"를 허용하는 시스템 호출이 있습니다. 즉, 쓰기 작업 중에 쓰기가 완료되면 디스크에 커밋되었음을 보증합니다.
따라서 동기 쓰기는 캐시되지 않습니다. 완료 될 때까지 응용 프로그램을 차단합니다. 이러한 종류의 작업은 캐시 된 쓰기보다 속도가 느리므로 디스크가 충분히 유휴 상태가되어 데이터를 쓸 때까지 OS 메모리에 데이터를 유지합니다.
데이터베이스 소프트웨어와 같은 일부 중요 소프트웨어는 전원 손실시 절반으로 작성된 업데이트가 데이터베이스 무결성에 해로울 수 있으므로 중요 데이터에 대한 동기 쓰기를 수행합니다.
RAID-5 쓰기에서는 RAID 컨트롤러의 속도가 느려 악의적 인 응용 프로그램 소프트웨어가 많은 동기 쓰기를 사용하는 경우 문제가됩니다. 이러한 이유로 RAID-5 컨트롤러에는 자체 캐시가 장착되어 있습니다.
RAID 컨트롤러는 데이터를 캐시에 대신 LIES를 OS에 쓰고 데이터를 디스크에 커밋 한 반면 데이터는 실제로는 여전히 RAID 캐시에 있음을 알려줍니다.
그러나 데이터가 여전히 RAID 컨트롤러의 버퍼에있는 동안 전원이 꺼지면 어떻게해야합니까? 디스크에 절반으로 작성되고 일관성이없는 데이터가있을 것입니다.
이 동작이 동기 쓰기의 목적을 상실한다고 말할 수 있습니다 ... 캐시 쓰기가 괜찮다면 앱 소프트웨어는 처음에 동기화 쓰기를 요청하지 않습니다.
타협은 이것입니다. RAID 컨트롤러는 여전히 데이터를 디스크에 커밋 한 OS에 있지만 정전시이 중요한 데이터를 보호하기 위해 RAID 컨트롤러에는 전원이 공급 될 때까지 일정 시간 동안 캐시를 유지하는 배터리가 있습니다. 복원되었습니다.
따라서 전원이 다시 공급되고 디스크가 회전하고 초기화 된 후에도 컨트롤러는 배터리 덕분에 캐시에 해당 데이터를 보유하고 트랜잭션을 디스크에 기록하는 것을 완료 할 수 있습니다.
모두 행복합니다.
이것이 바로 기능적이고 충전 된 배터리 장치가없는 한 RAID 컨트롤러가 쓰기 캐시를 활성화 할 수없는 이유입니다.