[클라우드컴퓨팅/CloudComputing] 8. Fault Tolerance

SooYeon Yeon·2022년 5월 26일
0

Redundancy

  • 자원 중복
  • 여분의 자원을 사용

Redundancy3가지 종류

  1. information redundancy
    • 여분의 데이터를 더 보내는것.
    • 예를들어 해밍코드, x5,6,7을 더 보내서 어떤것에서 잘못되었는 지 알수있게함
  2. time redundancy
    • 재시도 하는 것
  3. physical hw,sw redundancy
    • 물리적 자원을 더 추가 or sw버전 여러개 할때는 다형성 중요

TMR

  • Triple Modular Redundancy의 약자
  • Voter을이용해서 다수결의 결과를 뽑아내는 방식이다
  • . 이 방법을 사용하면 Single point failure을 없애 어느 하나가 잘못돼도 동작하게 한다.
  • 그러나 자원을 많이 쓰게 되는 단점이 있다.

N-version programming (quorum-based)

  • N-version programming (quorum-based) 은 여러버전의 SW 결과 값을 비교해 voting 과반수 이상인 것을 전체 값으로 하는 방법이다.
  • 동시에 여러개를 돌려 선출하며 디자인 다형성을 중시한다.
  • voter을 하나만둠 fault가 발생할 가능성이 적다.
  • 로직이 단순
  • 다수결하려면 2k+1개 replica 필요

Recovery block (primary-based)

  • 시도하는 block을 여러개 두는데, primary가 한번에 하나씩 순차적으로 실행하게 한다.
  • 순서가 정해져있고, 결과값을 수용성 검사한다.
  • 결과값이 논리적으로 이상하거나 결과값을 산출하지 못하면 오류로 판단하고 back up 블록으로 재시도한다.
  • 장점: 여러 시스템들이 동시에 하는게 아니라서 비용면에서 절감가능 .
  • 단점:시간이 오래걸릴 수 있다. 수용성검사시 로직이 복잡할 수 있다.
  • back up두는것 cold standby는 서버두는거, hot standby는 프로그램 다 돌아가는데 active data만 없는것. active data만 주면 됨(백업시간최소화)

Process Resilience

  • 프로세스가 잘 죽지 않게 하는 것

flat group과 hierarchical group

  1. flat group
    • 시멘트릭(다똑같음), 하는일이 똑같으니 하나가 죽는다고 해서 문제없기때문에 no single point of failure, 그러나 complicated decision making
  2. hierarchical group
    • 역할을 다르게 둠. 코디네이터가 있는데 그룹 멤버십이란 것이 필요함. (그룹 멤버심 - 누가 현존하는 그룹 멤버인지 찾아내는것)

Byzantine agreement problem

  • 비잔틴 장애 허용 k개의 faulty process들이 있을 때, 전체가 3k+1이상이 있어야 나머지 노드들이 k의 영향받지않고 이간질 하려는 거에 놀아나지 않는다. (전체의 3분의 1을 넘지않는다면 정상 작동하도록 허용)

RPC semantics에서 exactly once semantics

  1. 딱 한번만 하게끔 구현하는 방법이다.

Two-phase commit protocol

  1. 코디네이터가 모든 참여자들에게 VOTE_REQUEST를 보낸다. 각 참가자는 VOTE_COMMIT이나 VOTE_ABORT 을 리턴한다. 이후 코디네이터는 GLOBAL_COMMIT이나 GLOBAL_ABORT를 보낸다. 메시지를 받고 각 참가자들은 locally commit이나 abort를 한다. 코디네이터가 고장나면 모든 프로세스가 blocking된다.

에러를 복구(Recovery) 하는 방법

  1. backward recovery : 재시도함, 과거로 돌아감
  2. forward recovery : voting 과반수 이상이면 전진할 수 있는 recovery, 시간good 그러나 복잡함

복구에서 message logging에 대해 서술

  1. 메시지를 주고 받을 때 기록을 남기고 recovery 한다.
  2. 메시지 로그가 없으면 다시만들어야하는데 이때 도미노 이펙트가 생길 수 있다
  3. 그래서 중간중간 check point를 두어야 한다.

0개의 댓글