제품의 서비스가 중단된 경우 복구해서 정상화하는 과정에 대해 알아보자.
MTTF : mean time to failure, 고장나는 데 걸리는 평균 시간
MTTR : mean time to repair, 고치는 데 걸리는 평균 시간
MTBF : mean time between failures, 고장나고 고치는 시간을 더한 값
만약 고장나는 데 백만 시간이 걸리는 디스크가 있다면, 하루 동안 5만 개의 서버를 구동할 때 하루에 몇 개의 디스크가 고장나는가?
24h * 50,000 servers / 1,000,000 MTTF = 1.2HDDs/day
여기에서 확인할 수 있는 점은 개별 하드 디스크의 MTTF가 길다고 하더라도 장치를 여러 개 사용하면 고장이 증가한다는 점이다. 따라서 장치의 MTTF를 줄이는 것이 중요하다.
메모리에 문제가 생겼을 때 수복하기 위해서 Error Correction Code(ECC)를 사용한다.
SEC는 Single-bit Error Correction의 약자이다.
이를 이해하려면 Hamming distance 에 대해 알아야 한다.
Hamming distance란?
두 개의 비트 패턴 사이에서 일치하지 않는 비트가 몇 개인지를 따져보는 것이다.
출처 : http://alanclements.org/hammingcodes.html
hamming distance가 멀다 = valid한 코드 사이의 거리가 멀다
거리가 4인 경우 1비트 error correction, 2비트 error detection이 가능하다.
이렇게 거리가 계속 멀어지는 경우 check bit라는 것이 필요하다.
예를 들어 ECC DRAM에서는 64비트 데이터에 추가로 체크 비트 8비트를 함께 쓴다.
큰 디스크를 사용하기보다 여러 개의 작은 디스크를 사용하면 성능을 개선할 수 있을 것이라는 아이디어가 있다. 하지만 이 경우 디스크가 고장날 확률이 증가하게 된다.
따라서 여러 개의 디스크를 리스크 없이 사용하려면 데이터를 중복해서 저장해야 한다.
redundant arrays of inexpensive disks의 줄임말이다.
Mirroring 을 수행한다. 디스크가 두 개로 필요하기 때문에 가격이 비싸다.SSD와 HDD는 특성이 달라 혼합 RAID를 구성할 수 없다.
모든 레벨의 메모리 계층 구조에서 유사한 원칙을 적용하고 있다.
DRAM에 블록을 배치하는 방법은 associativity 를 기준으로 정한다.
블록을 찾을 때도 associativity 를 따른다.
L1 -> L2 -> page -> TLB 순서로 크기도 크고 associativity도 커진다.
DRAM page와 TLB 배치의 탐색 차이점
page의 경우 page table을 사용하기 때문에 탐색 속도가 빠르다.
하지만 page table 자체가 오버헤드 요인이 될 수도 있다.
하위 메모리에서 데이터를 가져올 때 상위 메모리에서 어떤 것을 내보낼지 알고리즘을 정한다.