분산시스템

허준·2023년 9월 12일

분산시스템 특징

  • 여러개의 컴퓨터가 하나의 일관성있는 시스템으로 움직이는 것
  • 하나의 시스템으로 움직이기 위해서는 동일한 시간이 필요한데, 각 노드들 사이에는 공통의 물리적인 시간이 존재하지 않습니다. (하나의 컴퓨터에는 하나의 시간이 존재하지만, 여러개의 컴퓨토에는 각자 다른 시간을 가지고 있습니다.)
  • 그렇지만 어떤 이벤트가 먼저 일어났는지 알수있기 때문에 물리적 시간이 아닌 이벤트 발생 순서를 통하여 공통의 논리적인 시간을 추정할수는 있습니다.

overlay network(오버레이 네트워크)

  • 각각의 노드는 한 시스템 내부에 있는 다른 노드와 연결될수있습니다.
  • 고정되어 있을 수도 있고, 새로이 연결을 시도할 수 있습니다.
  • 잘 알려진 예제: peer to peer (P2P 시스템)
  • 구조화(Structured): 각 노드는 통신할 수 있는 잘 정의된 이웃 집합(트리,링)
  • 비정형: 각 노드는 시스템에서 임의로 선택된 다른 노드에 대한 참조를 가집니다.

coherent system(일관성있는 시스템)

  • 분산 투명성
    • 최종 사용자는 계산이 어디에서 발생하는지 알 수 없습니다
    • 사용자는 어떤 서버를 쓰는지, 어디에 데이터가 저장되어 있는지 알수없습니다.
    • 만약 내가 넷플릭스를 보는데 영어컨텐츠를 보는데는 속도가 느리고, 한국컨텐츠를 보는데 속도가 빠르다면 내가 어느 컨텐츠는 어느 서버에 있는지 추측할수있으므로, 분산 투명성이 깨진것입니다.
  • 부분 고장
    • 언제든지 분산시스템의 일부가 고장나는 것을 막을 수는 없습니다.
    • 분산투명성을 완전히 이루어내는것은 많이 어렵다.

분산시스템의 목표

  • 자원공유 지원(CPU,GPU,데이터 저장 등등)
    • 클라우드 기반 공유 스토리지 및 파일
    • 공유 웹 호스팅 (콘텐츠 유통망 생각)
  • 분산 투명성
    • 접근: 데이터 표현의 차이와 개체에 액세스하는 방법 숨기기
    • 위치: 개체가 있는 위치를 숨기기
    • 이전: 사용 중에 개체를 다른 위치로 이동할 수 있음을 숨깁니다
    • 이주: 개체가 다른 위치로 이동할 수 있음 숨기기
    • 복제: 개체 복제 숨김
    • 동시성: 개체를 여러 독립 사용자가 공유할 수 있음을 숨깁니다
    • 실패: 개체의 실패 및 복구를 숨깁니다
  • 개방성
  • 확장성

    그러나 완벽한 분산투명성을 이뤄내고자 하는것은 굉장한 부담이된다.
    한 서버에서의 통신속도와 다른 서버와의 통신속도를 완벽하게 동일하게 만들어내는 방법은 모든 서버에 모든 데이터들을 복제해두면 거의 해결되지만 그러면 각서버에 부담이 너무 많이 되고 분산시스템을 이룬 이유가 없다.
    분산투명성의 적절한 선을 찾아내야한다.

    분산시스템의 종류 3가지

    • 고성능 분산 컴퓨팅 시스템 --고성능 AI연산을 위한 High Performance (고성능 계산)
    • 분산정보시스템 -- 일반 서버
    • 퍼베이시브 컴퓨팅을 위한 분산형 시스템 -- 유비쿼터스, IoT(internet of things)
profile
개발자를 리스펙하는 개발자

0개의 댓글