Эффективное использование спотовых узлов Amazon EC2 /...

Preview:

Citation preview

Эффективное использование спотовых узлов Amazon EC2 для параллельных научных вычислений

Дмитрий Пушкаревpushkarev@cs.stanford.edu

22 Апреля 2013

James Clark Center

Вычислительная инфраструктура• Продукт N1:

– 2000 CPU*часов вычислительного времени– 100 GB данных– 24 часа – время на выполнение– Непредсказуемая нагрузка

Вычислительная инфраструктура• 10 пользователей в день:

– 30TB/мес трафика– 1GBit uplink– 100TB fast NAS– 50 dual socket серверов– $400k in infrastructure cost

AWS (S3 / EC2)

Simple Storage Service (S3)

Хранилище объектов

99.999999999% durability and 99.99% availability

Низкоуровневый REST API – buckets/objects/ACL

$100/TB/месяц

Name Server

Name Server

Name Server

Load Balancer

REST API S3

S3

S3

Файловая система поверх S3 Сложности:

- High Latency, high variability- Нет native поддержки структуры каталогов- Нет механизмов регуляции совместного доступа- Нет поддержки API блоковых устройств- Eventual Consistency

- Существующие решения т.к. Fuse/s3cmd работают нестабильно и медленно- Писать native s3 приложения достаточно трудоемко из-за REST API

es3 (Extreme S3)Клиент для S3 с rsync-like интерфейсом.

Многопоточная загрузка файловОбработка медленных серверов S3Multipart upload APIGZIP сжатие на летуПроверка “eventual consistency” Интерфейс схожий с rsync

• #!/bin/bash –e –o pipefail• es3 rm s3://moleculo/output/• es3 test s3://moleculo/input/.success• es3 sync s3://moleculo/input/ ./• run_analysis_pipeline.sh• es3 sync ./ s3://moleculo/output• es3 touch s3://moleculo/output/.success

Архитектура системы

Workflow manager

ES3

WWW

S3Uploader ES3

m2.xlarge

OMjobs

OM controller

c1.xlargeCc1.4.xlarge

Спотовые цены. Правила игры:

Amazon выставляет среднюю цену

Вы делаете ставку на набор узлов по определенным ценам

средняя цена < ставки : заявка выполняется и вы платите среднюю цену

средняя цена > ставки: узлы останавливаются без предупреждения.

Сложности со спотовыми ценами и решение• Сложно предсказать цену• Нет гарантий доступности• Узлы убиваются без предупреждения – часть кластера может неожиданно

исчезнуть

• Решение:– Использование различных типов узлов и выбор комбинации узлов в зависимости от спотовых

цен.– Разбивка задач таким образом чтобы они не занимали более 20 минут– Использование более одного регион

Overmind

Оптимальный набор узлов

M M M

R

Планировщик задач

Через 1:50 узлы остановлены

12 cc2.8xlarge узлов запущено

40x human genome in 768 CPU*hours24 node*hours24*$0.253 = $6.07 billed

• MapReduce задача запущена• Создано 573 map задач• Выбран (us-east-1d, сс2.8,$0.253/hr)• Оценка времени исполнения• Запущено 12 узлов cc2.8xlarge

Service Level Agreement (SLA)Правила для планирования задач:

Пример:

Продукт 1, требует 2000 CPU часов и должен посчитаться менее чем за сутки.

Блок задач X – относится к R&D, должен быть посчитан как можно быстрее Вне зависимости от спотовых цен.

Заключение• Посмотрели на структуру AWS/EC2/S3

• Пример построения масштабируемой системы, использующей S3 в качестве файлового хранилища

• Рассмотрели механизм работы спотовых узлов, ограничения связанные с ними и способы их обхода.

• Пример построения планировщика задач, использующего комбинацию спотовых узлов которая меняется во времени для решения задач за минимально возможную цену в рамках SLA для продукта.

Спасибо!

MickeyDmitry

Tim

Jared

Alex

Maria

There is one more thing…

С чего начать• es3 (https://github.com/moleculo/extreme-s3)• MIT Starcluster / Amazon Elastic MapReduce• Chef/Puppet• Boto – S3/EC2/AWS python interface• http://aws.amazon.com/ec2/spot-and-science/

• Q? pushkarev@cs.stanford.edu

Recommended