Skip to content
jahyun-koo edited this page Jan 5, 2016 · 4 revisions

정의

분산 환경하의 클러스터 매니저. 클러스터간의 자원 할당 및 스케줄링을 담당한다.

  • Cloud infrastructure 및 Computing Engine 들의 자원을 통합적으로 관리할 수 있는 자원 관리 프로젝트.
  • 분산 시스템 커널. 리눅스 커널과 동일하며 추상화 레벨만 다름
  • 모든 머신에서 동작하며 실행 애플리케이션에 대해 리소스 관리와 스케쥴링 API 제공
  • a platform for sharing your computer cluster between many disparate applications.
  • Mesos is a system that allows you to harness all of the different machines in your computer cluster or data center and treat them as a single logical entity
  • Mesos is an orchestration platform for managing CPU, memory, and other resources across a cluster
  • it allows you to treat your cluster as a single, large group of resources
  • 범용 PaaS 플랫폼
  • 데이터센터 내의 자원 공유/격리를 관리
  • 분산 환경에서 작업 실행 최적화
  • 응용 프로그램을 동적 클러스터 환경에서 리소스 공유와 분리를 통해 자원 최적화가 가능하다
  • 응용 프로그램에 맞는 최적의 자원을 할당(공유된 기존 자원을 다이내믹하게 할당)해서 돌아간다. 응용 프로그램 간의 자원 간섭을 막아(격리) 독립적으로 응용프로그램이 해당 자원을 잘 활용해 실행을 완료하게끔 한다.

즉, 클러스터에서 사용 가능한 계산 자원을 추적하고 사용자의 요구에 따라 그것을 할당하는 일을 한다.

구조

Master 데몬
  • 애플리케이션 간의 디테일한 리소스(CPU, 메모리 등)의 공유를 가능하게 한다.
  • 주어진 정책에 따라 각 프레임워크에 대해 얼마나 많은 자원을 할당할지 여부를 결정한다.
  • Fair Sharing
  • Strict Sharing
  • They are the central source of truth for running tasks.
  • They fairly share the cluster between all the connected frameworks.
  • They host the primary UI for the cluster.
  • They ensure high availability and efficient allocation of resources. Considered together, they are a single point of failure, but Mesos automatically handles and recovers from individual master failures.
  • Masters are the central source of truth for all running tasks.
  • all task metadata is kept in memory
  • nodes that run the master should have plenty of memory
  • Masters fairly share the cluster between connected frameworks
  • Masters host the primary UI
  • Masters ensure high availability

동작원리

  • 슬레이브에 여유 리소스가 생기면 마스터에 여유 리소스 통보
  • 할당 정책에 따라, 마스터는 얼마나 많은 리소스가 각 프레임워크에 할당되었는지 결정
  • 그 다음, 마스터가 제안을 보내고, 스케줄러는 어느 제안 리소스가 받아들여졌는지 선택
  • 프레임워크가 제안 리소스를 받아들이면, 실행할 작업 내용을 Mesos에 보냄
  • 적합한 리소스를 실행기에 할당한 슬레이브에게 마스터는 차례대로 작업을 보냄
  • 최종적으로 프레임워크가 작업 실행
Slave 데몬
Frameworks

Mesos 위에서 돌아가는 Application을 Framework라고 부른다. Framework는 두 부분으로 구성된다. Controller 역할을 하는 Scheduler와 Worker 역할인 Executors다.

Mesos Cluster에서 Fraemwork를 실행시키기 위해 Scheduler를 실행시켜야 한다. Scheduler는 단순히 Mesos protocol을 통해 대화하는 프로세스다. Scheduler가 실행된 후 Mesos 클러스터에 접속해 리소스를 사용한다.

  • Scheduler
  • Master에 필요한 리소스 요청을 등록한다.
  • Master가 각 프레임워크에 대해 얼마나 많은 자원을 할당할지 결정할 때, 각 프레임워크의 Scheduler는 제안된 리소스안에 어느 것을 사용할지를 결정한다.
  • 프레임워크가 제공된 자원을 수령한 경우 Mesos에 대해 어떤 작업을 수행할 것인지 실행 정보를 전달한다.
  • Mesos는 프레임워크에서 받은 실행 정보를 바탕으로 Slave 노드에 Task들을 구동시킨다.
  • Executor
  • Scheduler의 Worker
  • Slave 노드 상에서 런칭해 프레임워크의 Task들을 수행한다.

Resources

  • cpus
  • how many CPU cores are available
  • mem
  • how many megabytes of memory are available
  • disk
  • port

Executor / Task

  • An executor is a process container that runs tasks.
  • A task is the unit of work in Mesos.
  • If your task simply launches a command-line application (and optionally downloads it from a location in storage) or a Docker image, you can specify a CommandInfo when launching a task

HA

Masters ensure high availability. Only one master is elected leader at a time. The leader is thus able to efficiently compute and make decisions about resource allocations. losing a majority of the masters does force the Mesos cluster to operate in a "safe mode". when a majority of the masters are down, frameworks will not be able to allocate new resources or launch new tasks; however, running tasks will continue as normal. This means that even during a master outage, as long as the frameworks in use can continue to function without launching new tasks, the cluster as a whole can offer uninterrupted service even as individual components fail.

Clone this wiki locally