Upload
ontico
View
351
Download
8
Embed Size (px)
Citation preview
Эффективное использование спотовых узлов Amazon EC2 для параллельных научных вычислений
Дмитрий Пушкарев[email protected]
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? [email protected]