분산 시스템
먼저, 네트워크 시스템은
- 자율성을 가진다.
- 자원들을 소유한다.
- 정보 처리를 수행할 수 있다.
- 다른 시스템들과 통신할 수 있다.
분산 시스템은
- 시스템의 집합이다.
- 요소들 사이에서 명확한 통신이 필요하다.
네트워크 시스템은 자율 시스템으로 컴퓨터 네트워크에서 명확하게 보이는 시스템이다.
분산 시스템은 여러 자율 시스템의 존재가 투명하게 보이는 시스템이다. 여기서 투명하게 보인다는 것은, 시스템이 분산되어 있는 것을 보이지 않게 하는 것이다. 따라서 사용자는 여러 개의 자율 시스템이 사실상 하나의 시스템으로 보이게 된다.
따라서 분산 시스템이란,
autonomous computing elements(노드)의 집합이며, 사용자에게 일관성 있는 단일 시스템으로 보여지게 된다.
일관성 있는 시스템은 전체 동작 방식에 거스르지 않는 자연스러운 요소들로 이루어진 시스템을 말한다.
쉽게 말하면, 사용자에게는 하나의 시스템으로 보이지만 사실상 여러 시스템들로 이루어진 것이 분산 시스템이다.
우리가 현재 당연하게 사용하는 카카오톡이나 유튜브 같은 것들도 분산 시스템이다.
분산 시스템에서의 노드
분산 시스템의 각 노드들은 자신만의 시간 개념을 가지고 자율적으로 행동한다. 독립적인 행동을 하는 것이다.
노드들이 서로 다른 시간 개념을 가지게 된다면 시간 동기화에 문제가 생기게 된다. 분산 시스템의 문제라고도 할 수 있다.
노드들의 관리 방법
- Open Group: 아무 노드나 분산 시스템에 들어오고 나갈 수 있다. (e.g. Tor)
- Closed Group: 멤버 그룹만 분산 시스템에 들어오고 나갈 수 있다. 그룹에 들어오고 나가기 위한 추가적인 메커니즘(e.g. 인증시스템)을 필요로 한다. 통신은 멤버들끼리만 가능하다.
분산 시스템에서 노드들은 오버레이 네트워크에 편성되어있다. 하지만 노드들이 실제 물리적 경로를 통해 연결되는 네트워크 계층은 추상화 되어 사용자에게 보이지 않게 된다. 사용자는 오버레이 네트워크 상에서 노드들 간의 논리적 연결만을 인식하게 된다.
오버레이 네트워크의 대표적인 예시로는 P2P 네트워크가 있다.
P2P 네트워크에서 노드들은 오버레이 네트워크(P2P Network)에서 연결되어 통신하는 것처럼 보이지만, 사실 물리적인 연결과 통신은 숨겨지는 레이어(Network Layer)에서 일어나고 있다.
오버레이에도 종류가 있다.
- Structured Overlay(정형화된 오버레이): 각 노드들은 잘 정의된 이웃 노드들과 연결되어 있다. (e.g. tree)
- Unstructured Overlay: 각 노드들은 다른 노드들과 랜덤하게 연결되어 있다.
일관성 있는 단일 시스템(Single Coherent System)
분산 시스템은 사용자와 애플리케이션 관점에서 단일 시스템이다. 사용자와 애플리케이션은 언제, 어디서든지 분산 시스템과 일관되고 통일되는 방식으로 통신할 수 있다. 사용자와 애플리케이션은 분산을 인식하지 않고 하나의 일관된 시스템처럼 접근하는 것이다.
이러한 분산 투명성(distribution transparency)이 분산 시스템의 핵심 개념이라고 할 수 있다.
사용자들은 시스템의 계산이 어디서 이루어지는지 모르며, 애플리케이션은 데이터가 정확히 어디에 저장되어 있는지 알 필요가 없다.
분산 애플리케이션
분산 애플리케이션은 네트워크 운영체제 서비스를 통해 투명성을 가진다.
A, B, C의 시스템이 존재하지만 분산 애플리케이션은 마치 하나로 보인다.
미들웨어(Middleware): 분산 시스템의 OS 중 하나
분산 애플리케이션이 이 미들웨어 위에서 작동한다. 즉, 미들웨어를 이용하여 통신하는 것이다.
미들웨어 역시 다수의 시스템에 걸쳐 확장되어 있으며, 각 애플리케이션에 같은 인터페이스를 제공한다.
분산 애플리케이션 사진에서 분산 애플리케이션이 로직+분산처리 특징을 가지고 있는 것이고, 분산 처리 특징들만 분리해서 다른 레이어에 넣어놓은 것이 미들웨어이다. 애플리케이션 A, B, C는 각각의 로직들만을 갖고 있다.
분산 시스템의 OS
System | Description | Main Goal |
NOS (Network OS) |
다른 종류의 멀티 컴퓨터들을 위한 느슨하게 결합된 운영체제 | 원격 클라이언트 들에게 지역 서비스 제공 |
DOS (Dstributed OS) |
멀티 프로세서와 동종의 멀티 컴퓨터들을 위한 단단하게 결합된 운영체제 |
하드웨어 자원 숨기기 및 관리 |
Middleware | 범용 서비스를 구현하는 NOS 위의 추가 레이어 | 분산 투명성을 제공 |
단단하게 결합된 운영체제(tightly-coupled OS)란 여러 컴퓨터들이 밀접하게 연결된 방식으로 작동하는 운영체제를 의미한다.
작업의 배분이나 자원관리는 중앙화된 운영체제가 관리하기 때문에, 시스템 자원에 대한 일관성 유지가 가능하다. 이와 반대로 느슨하게 결합됐다는 것은 각 프로세서가 독립적으로 작동하는 것이다.
NOS < NOS+Middleware < DOS 순으로 분산 처리 기능이 강화된다.
+ DOS는 미들웨어가 필요하지 않는가?
→ DOS 자체가 네트워크 상에서 자원을 관리하고 통신을 처리하는 중앙화된 제어와 일관된 인터페이스를 제공하므로 미들웨어가 필요없다.
분산 시스템의 성질
분산 시스템의 가장 기본적인 성질은 "분리"다.
여기 "분리"라는 속성에서 파생된 속성이 몇 가지 있다.
- 이질(heterogeneity): 다양한 구현 기술을 사용한다는 의미이다.
- 명백한 통신: 각 요소들이 통신하기 위한 메커니즘
- 격리
- 동시성: 동기화, 시간에 의한 병렬처리
- 확장성: 요소를 추가하거나 제거
- 유동성
- 부분적인 장애: 한 곳에 장애가 일어나도 다른 시스템에 영향을 끼치지 않는다.
- (Multiple Authorities 여러 당국 ..?): 관리할게 많으니까 여러곳에서 관리한다 뭐 이랬던 것 같다.
부전공하면서 들은 운영체제와 네트워크 수업이 드디어 빛을 발한다.
어느정도의 배경 지식이 있으니까 분산처리 수업은 따라가기 쉽지 않을까 기대해본다.
** 대학교 수업을 듣고 이해한 부분을 최대한 풀어서 작성한 글입니다.
틀린 정보가 존재할 수 있으며, 언제나 피드백은 환영입니다. **
'DKU > 분산처리' 카테고리의 다른 글
Distributed System 6 (0) | 2024.09.30 |
---|---|
Distributed System 5 (2) | 2024.09.23 |
Distributed System 4 (1) | 2024.09.20 |
Distributed System 3 (5) | 2024.09.18 |
Distributed Systems 2 (2) | 2024.09.09 |