/ DISTRIBUTED SYSTEM

6. 프로세스

1. Virtualization (가상화)

분산 시스템에서 가상화의 역할

1 Virtualization can help here by porting the legacy interfaces to the new platforms and thus immediately opening up the latter for large classes of existing programs.

2. that system administrators maintain a large and heterogeneous collection of server computers, each one running very different applications, which can be accessed by clients. 현대 컴퓨터는 대부분 인터넷 네트워크 서비스를 지원하기 때문에 각 클라이언트는 서로 다른 많은 서버 컴퓨터들에 접근이 가능해야한다. (라이브러리, OS 가 달라도 공통된 플랫폼에서 어플리케이션이 돌아가야함.)

3. virtualization provides a high degree of portability and flexibility.

컴퓨터 시스템은 보통 4가지 interface로 구성되어있다.

2. Google DCN Virtualization & SDN

1. MapReduce: divide and conquer

2. Google File System

  • B4
  • GGC
  • Jupiter : 데이터 센터 안의 네트워크가 어떻게 구성되어 있나!
  • Freedome
  • Andromeda

3. Big Table

Jupiter

그 전까지는 비싼 라우터를 4개 정도 썼다. 하지만 확장성도 떨어져서 곧 쓸 수 없게 되었다.

Clos Topology: 저렴한 라우터(스위치)를 엄청 많이 사용하자. 

Centralized Control Protocols: 그러기 위해 Software Defined Networking(SDN) 기술을 사용하겠다. Master Node가 link-state 정보를 네트워크를 통해 모으는 방식이다. 각각의 스위치는 자신만의 테이블을 계산한다. 

SDN

라우터 마다 control plane을 가지고 있을 때, 다른 라우터와 정보를 교환해서 어디로 보낼지 정해주는 forwarding table을 작성했다.

하지만 control plane을 하나로 합쳐 controller 라는 서버로 두고, 라우터는 data plane의 일만 한다. CA(control agents)는 데이터를 보내는 일만 함. bandwidth이 커졌기 때문에 로컬상태에서 연결하는 것 같은 효과를 볼 수 있다.

장점: 네트워크 관리가 쉬워짐, 라우터가 forwarding table을 작성하는 부담이 줄었음, 새로운 알고리즘을 적용할 수 있음(open implementation)

3. Clients/Servers

4. Code Migration

5. Cloud Computing: MapReduce