LINUX.ORG.RU
ФорумAdmin

Docker и Percona Cluster

 , , , ,


0

2

Обнаружил на просторах интернета вот такой мануал http://www.percona.com/blog/2014/05/26/installing-three-node-percona-xtradb-c...

Собственно, насколько я знаю, Percona Сluster обеспечивает HA для собственно кластера БД. Насколько разумно это делать средствами Docker, при условии что этот «кластер» будет размещен на одной ноде, расположенной на Amazon EC2? Ведь если нода упадет, то упадет весь кластер?

Собственно, задача - создать отдельный сервер с БД для имеющегося LAMP-based приложения. Изначально планировалось выделение просто MySQL на отдельный сервер, но потом нашел вышеприведенную ссылку и задумался о возможности создания Docker-кластера на базе того самого сервера. Будет ли профит, и если да, то в чем?

Кастану KRoN73 val-amart, может подскажете чего.

★★★

А какой профит ты ожидаешь, если все ноды кластера на одном компе? Профит будет только если что-то случится не со всеми нодами. Например в одной из нод мускуль сойдёт с ума и самоубьётся. Какие ещё возможны проблемы затрагивающие только один из контейнеров на хосте?

P.S. можно использовать репликацию для создания бекапов без дополнительной нагрузки на мастера и его простоя, но для этого будет достаточно обычной мускульной репликации.

MrClon ★★★★★ ()
Ответ на: комментарий от dvrts

Репликация тоже в рамках докера или как?

это как? я что-то пропустил в этой жизни?

вообще надо, конечно, начать с требований (производительность, отказоустойчивость, тип нагрузки) и доступных ресурсов (время, деньги).

исходя из того что прдполагается что одной виртуалки на амазоне хватит, требований считай нет. значит, если тебе дорого свое время, достаточно развернуть один инстанс чего-нибуть и забыть об этом, пока это не станет проблемой. это прагматичный, практичный подход. упадет и надо будет перезапустить виртуалку на другом железе, а с ней и все приложение? для многих приложений это не проблема, так что не стоит оверинжинирить прежде времени.

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

если цель — обучение, то это другой вопрос и надо читать, много, потом играться с вариантами. и не смешивать, а изучать вещи отдельно, потом станет яснее как они между собой взаимодействуют.

val-amart ★★★★★ ()

Потеря производительности в 3-4 раза.

Имеет смысл, если:

  • сервис не нагружен
  • приложение LAMP самописное
  • планируется увеличение нагрузки и переезд на несколько серверов c обязательным повышением надёжности системы

Т.е. если это по-сути разработка, то будет проще адаптировать приложуху к особенностям галеры.

anonymous ()
Ответ на: комментарий от anonymous

Потеря производительности в 3-4 раза.

Гонял тесты на уютненьком локалхосте, помнится просадка производительности была не настолько драматичной. Цифры не помню. Но да, просадка есть, и одна существенная.

MrClon ★★★★★ ()
Ответ на: комментарий от anonymous

бред. откуда просадка в 3-4 раза? для определенных нагрузок (ИО в первую очередь), да под kvm а не ОС-контейнерами, да, может быть потеря в процентов 15-25, и то если не пробрасывать блочные устройства.

остальное верно.

val-amart ★★★★★ ()
Ответ на: комментарий от val-amart

Анон походу про просадку от репликации (в сравнении с одиночным сервером) говорил. У mysql galera (псевдосинхронный мультимастер для mysql, о которой тут речь) просадка на запись действительно существенная.

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

а, ну да. ну так, как при любой синхронной репликации. плюс она будет только расти с увеличением латентности записи или ртт до слейвов.

val-amart ★★★★★ ()
Ответ на: комментарий от val-amart

>Репликация тоже в рамках докера или как?

это как? я что-то пропустил в этой жизни?

Имел в виду репликацию благодаря тому, что докер позволяет нам запустить несколько Galera-нод.

исходя из того что прдполагается что одной виртуалки на амазоне хватит, требований считай нет. значит, если тебе дорого свое время, достаточно развернуть один инстанс чего-нибуть и забыть об этом, пока это не станет проблемой.

Да, требований особых нет. Нужен просто отдельный MySQL сервер для обеспечения нормальной работы autoscaling инстансов с приложениями - нод с приложениями может быть несколько, а БД-сервер один. RDS не подходит ввиду архитектурных особенностей приложения и прижимистости заказчика (пришлось бы покупать несколько RDSок, а так можно обойтись одним EC2 c MySQL).

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

Нет, это необязательно на самом деле. Просто а) хотел изначально сделать по-хорошему, б) > цель — обучение this


надо читать, много, потом играться с вариантами. и не смешивать, а изучать вещи отдельно, потом станет яснее как они между собой взаимодействуют.

Разумный подход. Правильно я понимаю, что аналогично создать в «песочнице» на собственном сервере с докером позволит мне понять что к чему в Галере?


И последнее - правильно я понимаю, что в моем случае, даже с одной MySQL-нодой разумно ставить не MySQL из реп (Ubuntu 14.04), а Percona Server? Первое что приходит в голову - возможность осуществлять бэкапы средствами xtrabackup. Из требований (не моих, увы) к MySQL-серверу - полноценная работа phpmyadmin с ним. Перконовские форумы говорят что все ок, но возможно есть нюансы?

dvrts ★★★ ()
Ответ на: комментарий от dvrts

Разумный подход. Правильно я понимаю, что аналогично создать в «песочнице» на собственном сервере с докером позволит мне понять что к чему в Галере?

правильно. см ниже.

Имел в виду репликацию благодаря тому, что докер позволяет нам запустить несколько Galera-нод.

это можно и без докера. вообще если цель поставить поиграться Галеру и опыта с технологиями контейниризации нет, то лучше использовать что-то более очевидное, например, виртуалбокс на локалхосте. поставить убунту, скопировать ВМ-ку пару раз — задача не сильно более требовательная к времени чем докер, зато сразу будет понятно что происходит, чисто внешне все больше похоже на «три сервера и сеть». а с докером можно потом отдельно разобраться, там все просто. стоит там для начала тоже не мускуль, а просто вебсервер запустить посмотреть.

Нет, это необязательно на самом деле.

а, ну тогда ставь один инстанс и даже не думай сейчас за кластеры и прочюю фигню. накладные расходы по а) времени на установку и настройку б) времени на сопровождение и решение проблем (их будет МНОГО) и в) провала по производительности того не стоят. изучай и пробуй для себя конечно, но имхо в продакшен не стоит, потом вероятно пригодится, если не на прямую, то как опыт и понимание принципов и какие где tradeoffs.

И последнее - правильно я понимаю, что в моем случае, даже с одной MySQL-нодой разумно ставить не MySQL из реп (Ubuntu 14.04), а Percona Server? Первое что приходит в голову - возможность осуществлять бэкапы средствами xtrabackup.

Разумно. Что тебе быстрее будет развернуть в рабочее состояние, то и деплой. Играться все равно не там будешь.

Из требований (не моих, увы) к MySQL-серверу - полноценная работа phpmyadmin с ним. Перконовские форумы говорят что все ок, но возможно есть нюансы?

тут не знаю, но историй неуспеха не слышал (если бы были, наверное бы услышал, впрочем, phpmyadmin не очень-то используют мои знакомые дба)

val-amart ★★★★★ ()
Ответ на: комментарий от dvrts

Гонял тоже на докере или чем-то другим виртуализировал?

это не важно. тут проблема не в виртуализации, а в репликации.

val-amart ★★★★★ ()
Ответ на: комментарий от dvrts

Нет, это необязательно на самом деле. Просто а) хотел изначально сделать по-хорошему, б) > цель — обучение this

Обучись делать просто и без лишних наворотов. Это и есть «по уму». Ведь ком-то потом придётся разбираться с тем что ты наваял.
А поизвращаться в своё удовольствие можно и на уютненьком локалхосте.

MrClon ★★★★★ ()
Ответ на: комментарий от dvrts

phpmyadmin работает как обычный похапэйшны mysql клиент. Если что-то, на уровне клиентского протокола и диалекта SQL, совместимо с mysql, то phpmyadmin сможет с этим работать.

MrClon ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.