[Techonology] 장애모델 - 깨치고 나아가 끝내 이기리라 // Failure Model v1.2

□ 장애모델(Failure Model)이란

  ㅇ 개념 
    - 분산 네트워크 특성상, 네트워크 내 노드들이 서로 메세지를 보내며 해당 시스템을 유지하다보면 메세지가 잘 전달되지 않는 문제가 발생할수 있는데, 이런 장애가 일어날수 있는 방식 또는 그 장애를 처리할수 있도록 정의된 모델을 장애모델(Failure Model)이라고 부른다.

  ㅇ 중요성
    - 장애가 발생하는 방식과 그 해법을 알수 있다면, 더 큰 규모에서 더 효율적인 분산환경이 만들어질수 있으며 이는 곧 기술혁명을 불러일으킬수 있다.

  ㅇ 블록체인과의 연관성
    - 블록체인 역시 여러노드들이 존재하는 분산 네트워크이면서, 장애처리능력의 최고단계 즉, 가장 난이도가 높은 장애를 처리하는 방식을 다루고 있으며, 따라서 블록체인이 다른 분산네트워크가 다가기가에 어려우면서 혁신적으로 보이는 이유다.


□ 장애모델의 분류

< 장애모델의 계층도 >

 ㅇ 계층에 따른 종류(난이도 순)

   1) Fail-stop Failure Model
     - 개념 : 장애가 발생(Fail)하면 더이상 상태변화가 일어나지 않는다(Stop)
     - 특징 : 요청한 메시지는 언제나 도착하며 도착한 메시지는 정상이라고 가정한다.
     - 한계 : 메시지가 도착하지 않는 경우를 가정하지 않기 때문에 서버으 작동불능사고(Crash)가 상황발생하는 현실적인 장애를 처리할수 없다.

   2) Crash Failure Model
     - 개념 : 서버 작동불능되는 사고(Crash)에 대한 것도 고려된다
     - 특징 : 요청한 메세지에 대해 응답을 주지 않는 노드는 Crash됐다고 가정한다. 응답을 주지 않는 노드가 있을때의 장애를 대비하여, 그 노드를 대체하는 노드를 실행하여 문제를 해결할수 있다.
     - 한계 : 메세지가 도착하지 않는 원인을 Crash에 국한시켜서 다른 원인들에 대해 대응하지 못한다.

   3) Omission Failure Model
    - 개념 : 메세지가 도착하지 않는 원인을 하나로 보지않고 단순히 누락(Omission)됐다고 간주한다.
    - 특징 : 모든 메세지는 일정시간 이내에 도착하거나 그렇지 않으면 도착하지 않는다고 가정한다.
     - 한계 : 실제적으로 메시지가 도착하는 일정시간을 정할수 없는것이, 영영 도착하지 않거나 엄청 늦게 도착할수도 있지만, 그런 경우들을 고려하지 않았다.

   4) Performance Failure Model
    - 특징 : 메세지가 도착하지 않거나 엄청 늦게 도착하는 상황까지 고려한다.
    - 한계 : 메세지 도착 여부에 대한 고려는 하지만, 그 메세지가 전부 정상적이라고 간주한다.

   5) Authentication-detectable Byzantine Failure Model
    - 특징 : 도착한 메세지 중에서도 의도적이든 의도치 않든 비정상적 메세지를 보내는 장애(Byzantine Failure)까지 고려한다. *인터넷 규모 분산시스템에서 사용
    - 한계 : Byzantine Failure중에서 검증할수 있는 것만 처리한다.
     * 현재 사용되는 '인터넷' 규모의 분산시스템에서 사용되는 장애모델

   6) Byzantine Failure Model
    - 특징 : 메세지 도착 여부와 도착한 메세지의 정상 여부 그리고 검증해야만 하는 모든 장애에 대한 방식과 그 장애를 처리할수 있는 경우까지 처리한다.

ㅇ 관점에 따른 종류

    1) 장애발생 영역
      - 가치영역 : 서비스 응답의 값이 예상과 다르다.(메세지가 올수도 있지만 그게 정상인지는 모른다)
        예) Byzantine, Authentification detectable byzantine
      - 시간영역 : 메세지 처리의 타이밍이 예상과 다르다.(메세지가 오거나 늦게 오거나 아예 오지 않는다)
        예) Performance, Omission, Crash, Fail-stop

    2) 시스템 사용자의 인식에 따른 분류
      - 인식 일치 : 모든 시스템 사용자들이 장애에 대하여 인식(장애원인은 메세지가 도착 안하거나 늦게 도착해서)이 같다
        예) Performance, Omission, Crash, Fail-stop failures
      - 인식 불일치 : 다른 시스템 사용자들이 장애에 대하여 다르게 인식(장애원인이 다양하다)
        예) Byzantine, Authentification detectable byzantine

    3) 상황에 따른 결과
      - 무난한 장애 : 서비스 장애로 인한 결과는 정확한 서비스 제공에 의해 제공되는 이점과 동등하다. (장애의 피해 = 비장애의 이점)
      - 치명적인 실패 : 서비스 실패의 결과(는 올바른 서비스 제공으로 얻는 이익보다 훨씬 심각합니다. (장애의 피해 > 비장애의 이점)


□ 장애모델의 시사점

  ㅇ 블록체인에서의 의미
      - 블록체인 역시 분산 네트워크이기에, 선의든 악의든 비정상적인 행동을 하는 노드들이 있을수 있고 따라서 메세지 전달이 원활하지 않을수 있다. 또한, 블록체인은 탈중앙화를 모토로 하기에  그런 모든 장애에 대하여 별도의 주체없이 그런 장애를 정의하고 처리해야한다.
        - 블록체인을 도래할 4차산업혁명의 혁신들 중 하나로 꼽는 이유는 여러가지이겠지만, 기술적으로 볼때 가장 눈여겨 봐야하는 대목들 중 하나는, 앞서 설명한 가장 난이도가 높은 장애모델에서 실제 구현되었고 그 구현체가 큰 문제없이 돌아가고 있으며 점점 더 많은 참여자들이 가담하는 혁신적인 모델이기 때문이라고 생각한다. 여태까지 비트코인 등을 통하여 이런 난이도 높은 장애모델을 근간으로, 앞으로 블록체인이 우리에게 어떤 다른 도전과 매력을 보여줄지 개인적으로 많이 기대하는 바이다.



법적 고지 : 본 게시글은, 투자를 위한 정보제공을 목적으로 작성되었기에 투자결정은 신중을 기하여 주시기 바라며, 참고자료를 토대로 본인 판단하에 내용을 추가, 편집 등 작성되었기에 본인의 허락없이 복사, 배포, 편집 등을 할 수 없습니다.



<References>
1) https://ti.tuwien.ac.at/cps/teaching/courses/dependable_systems-ss08/dcs_slides/dcs-2007-p5.pdf
2) https://blog.seulgi.kim/2018/05/byzantine-failure-why-blockchain-is-hard.html

댓글

이 블로그의 인기 게시물

[Rave]Raven Devs Meeting(5 July, 2019) // 레이븐 개발자 회의 분석 및 논평(5 July, 2019) v1.0

[Insight] JP모건을 통해 본 월가와 코인시장(2부작) 1부 // Wallstreet and CryptoMarket with JPmorgan part1 v1.2

[Insight] JP모건을 통해 본 월가와 코인시장(2부작) 2부 // Wallstreet and CryptoMarket with JPmorgan part2 v1.3