# 22.11.29 수정
비정상적으로 전원이 차단되었을 때 (강제전원off, 정전 등..) 쓰기작업 시 RAID Controller 의 캐시에 남아 아직 디스크로 커밋되지 않은 데이터들은 소멸됩니다.
이러한 데이터들을 살리기 위해 캐시배터리라는 것을 이용합니다.
서버에 전원은 차단되었지만 캐시배터리를 이용하여 캐시를 활성화시켜놓는 것 입니다.
이렇게 캐시에 남아있는 데이터들을 살리는 방식에 따라 캐시배터리의 종류가 두가지로 나뉘어 집니다.
BBWC BBU 와 FBWC BBU.
BBU란 Battery Backup Unit 의 약자로 간편하게 그냥 배터리라고 생각하면 됩니다.
BBWC BBU는 BBWC Controller 에서 배터리로써의 역할을 합니다.
보통 리튬배터리로 되어있습니다.
FBWC BBU란 FBWC 방식에서 캐시에 있는 데이터를 플래시메모리로 저장시킬 때 필요한 전원을 공급하는 역할을 합니다. 정확히 말하면 FBWC에서는 캐시배터리로 사용하는 것이 BBU 라는 Battery 형식이 아닌 Super-Capacitor라고 하는 콘덴서 말합니다. 하지만 역할은 동일하므로 일반적으로 FWBC 슈퍼 캐패시터도 BBU라고 칭하는 것 같습니다.
raid controller 에 BBWC 와 FBWC 라는 2가지의 방식이 있습니다.
BBWC는 Battery Backup Write Cache 의 약자로써 전원이 차단됐을 때 BBU의 전원으로 캐시(캐시메모리 라고 함)의 정보를 유지합니다(배터리의 성능만큼의 시간동안만). 그 사이에 장비에 전원을 인가하여 캐시의 정보를 디스크에 기록하게 됩니다. BBU의 전원이 무한대가 아니기 때문에 소멸되기 전에 전원을 인가해야하며 전원이 연결되지 않으면 Data Loss가 발생하게 됩니다.
FBWC는 Flash Backed Write Cache 의 약자로써 전원이 차단됐을 때 super-capacitor 의 전원으로 캐시의 정보를 내장된 플래시 메모리에 저장합니다. 플래시 메모리는 Non-Volatile 메모리이기 때문에 데이터 유지를 위해 전원을 필요로 하지 않습니다. 전원 연결이 다시 되면 플래시 메모리의 데이터를 다시 캐시로 복사하여 데이터를 복구합니다.
BBWC의 장점을 보완한 기술로 BBU 교체가 필요하지 않아 유지보수에 대한 걱정이 없습니다.
다만 캐시에서 플래시로 데이터를 보내기위해 사용되어지는 super-cap의 수명이 다할경우엔 교체해주어야 합니다.
보통 캐패시터는 반영구적으로 알려져 있으나 평균적으로 3~5년정도 지나면 raid 상태창에 cache-battery fail 에러를 확인하는 경우가 많게 됩니다.
다만 여기서 알아야할 점이 있습니다.
쓰기 정책(Write Policy)에서 동작유형을 설정할 수가 있는데 보통 3가지로 나뉘어 집니다.
Write Through, Write Back, Always Write Back 이 3가지 정도로 나뉩니다.
Write Through 는 데이터가 디스크에 기록된 후에 I/O 가 완료됩니다.
Write Back 은 데이터가 캐시에 기록된 후에 I/O 가 완료됩니다.
Through 방식은 Inconsistency를 해소해주며 안정성이 좋지만 디스크 기록때까지 대기해야 하므로 성능이 낮아집니다.
Back 방식은 캐시에 기록되자마자 I/O 가 끝났다고 알려주고 실제 디스크에 기록되는 것은 캐시 내부적 활동에 의해 수행되므로 성능상의 이점이 있습니다 (빠릅니다). 하지만 갑작스런 전원차단 등으로 아직 디스크에 기록되지 못하고 캐시에 남아있는 데이터들은 소멸되어질 수 있기에 Write Back 모드를 사용할 땐 BBU, 즉 캐시배터리가 필요합니다.
Always Write Back 은 BBU 에 관한 체크를 아무것도 하지 않고 매번 Write-Back 모드로 쓰기방식을 사용하는 것 입니다.
(보통 Write Back 방식은 BBU Health Check 후 이상이 있다면 Write Through 로 가게 됩니다)
성능을 포기하더라도 데이터 안정성이 우선이라면 Write Through 방식을 사용하고
데이터 안정성 보다 성능을 중요시 하게 된다면 Write Back 방식을 사용하면 될 듯 합니다.
어찌됐든, Write Back 방식을 사용하지 않으면 캐시배터리는 필요하지 않을 수 있습니다.
(LSI 경우 방식 선택하는 부분이 있고, HP는 Default가 Write-Back 이며 BBU/CAP 문제 시 Thru 전환)
정리해보자면,
캐시배터리는 비정상적인 전원 차단 시 아직 디스크에 기록되지 않고 Raid Controller 의 캐시메모리에 적재된 데이터들을 보호하기위해 필요한 물건입니다.
컨트롤러의 종류(BBWC, FBWC)에 따라 배터리가 BBU 리튬배터리인지 캐패시터인지 나뉘어집니다.
BBWC 경우 BBU를 이용해 캐시메모리의 데이터를 유지하며 배터리에 따른 유효시간이 있어 그 시간안에 장비에 전원을 인가하여 데이터를 복구해야 합니다.
FBWC는 BBWC의 유효시간문제를 해결하기 위해 나온 것으로 super-capacitor라는 배터리를 이용해 캐시의 데이터를 플래시메모리에 옮깁니다. 플래시메모리는 비휘발성으로 전원이 필요가 없어 계속 유지합니다. 그 뒤에 전원을 연결한 후 플래시메모리의 데이터를 다시 캐시로 옮겨 디스크에 기록하게 됩니다.
RAID 구성 시 쓰기정책을 Write Back 방식으로 사용하지 않는다면 캐시배터리는 필요가 없어집니다.
Write Back을 사용했을 때 전원차단에 대비하는 방법에서 가장 강력한건 UPS를 설치하는 것이지만 서버 단독으로 장애가 발생하여 비정상적 shutdown 이 된다고 했을때를 대비하여 내부에 BBU를 필수적으로 설치해두어야 합니다.
결론
- RAID로 구성된 디스크를 사용하고 있고 쓰기정책이 Write Through 방식이라면 캐시배터리 필요없음.
- Always Write Back 이 아니라면 캐시배터리 Fail 시 Write Through 로 전환되어 퍼포먼스 감소
- 초기구성 시 캐시배터리가 들어가 있는 장비에서 캐시배터리가 장애(Fail)가 발생한다면 무시하면 안됨.
(캐시배터리가 팽창하는 등의 문제로 내부 액체가 누수되어 마더보드에 묻으면 시스템장애를 야기할 수 있음)
'Hardware' 카테고리의 다른 글
RJ-45 커넥터의 LED의 의미 (0) | 2021.07.27 |
---|---|
AHCI(Advanced Host Controller Interface) 란? (0) | 2021.07.26 |
Plug and Play, Hot Swap, Hot Plug 개념 (0) | 2021.07.23 |
PCI란? (0) | 2021.01.27 |
[DELL] BIOS UPDATE (0) | 2021.01.26 |