-
Notifications
You must be signed in to change notification settings - Fork 0
Mesos
분산 환경하의 클러스터 매니저. 클러스터간의 자원 할당 및 스케줄링을 담당한다.
- 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 플랫폼
- 데이터센터 내의 자원 공유/격리를 관리
- 분산 환경에서 작업 실행 최적화
- 응용 프로그램을 동적 클러스터 환경에서 리소스 공유와 분리를 통해 자원 최적화가 가능하다
- 응용 프로그램에 맞는 최적의 자원을 할당(공유된 기존 자원을 다이내믹하게 할당)해서 돌아간다. 응용 프로그램 간의 자원 간섭을 막아(격리) 독립적으로 응용프로그램이 해당 자원을 잘 활용해 실행을 완료하게끔 한다.
즉, 클러스터에서 사용 가능한 계산 자원을 추적하고 사용자의 요구에 따라 그것을 할당하는 일을 한다.
- 애플리케이션 간의 디테일한 리소스(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에 보냄
- 적합한 리소스를 실행기에 할당한 슬레이브에게 마스터는 차례대로 작업을 보냄
- 최종적으로 프레임워크가 작업 실행
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들을 수행한다.
- cpus
- how many CPU cores are available
- mem
- how many megabytes of memory are available
- disk
- port
- 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
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.