Могу ли я запустить mysqld поверх glusterfs?

12

Я недавно играл с glusterfs.

Я хочу попробовать запустить mysqld поверх glusterfs таким же образом, как и MySQL поверх DRBD .

Я знаком с репликацией MySQL и преимуществами ее использования вместо этого подхода, а также знаю MongoDB и другие решения NoSQL.

Тем не менее, это было бы простым решением для нескольких конкретных проектов, которые у меня есть, если бы я мог оставить MySQL как есть и реплицировать базовую файловую систему.

Возможно ли это, и если это где я могу узнать, как?

Ричард Холлоуэй
источник

Ответы:

16

Из-за достаточно большой задержки без ответов я выяснил методом проб и ошибок.

Ответ: да, я могу запустить mysqld поверх glusterfs.

Я настроил это на Ubuntu и кратко вот шаги:

Настоящая проблема заключается в том, как MySQL обрабатывает блокировки.

Однако вы можете передать все это glusterfs для обработки, чтобы многие процессы mysqld (работающие на отдельных узлах) могли обращаться к одним и тем же файлам базы данных в / mnt / glusterfs. Вы должны прочитать это внимательно .

Ричард Холлоуэй
источник
2
Какие проблемы с производительностью вы видите?
CMCDragonkai
4
Это действительно очень интересно! Однако, для протокола, я настоятельно рекомендую не использовать это в любой ситуации, где важны ваши данные. То, что это работает, не означает, что это безопасно. Возможно, вам просто повезло, и вы еще не столкнулись с условиями гонки, что может привести к потере данных.
июля
вы собираетесь использовать 1 сервер за раз, верно? Я уверен, что он не будет работать с нескольких серверов. вы потеряете ваши данные
Диего Рочча
3

Попытка это на кластере K8. MySQL работает внутри контейнера, GlusterFS устанавливается непосредственно на узле (не в контейнере). Контейнер MySQL имел сходство, настроенное на постоянную работу на том же узле, что и GFS, при монтировании тома с использованием собственного драйвера тома GFS K8.

Опытная случайная высокая задержка для сайтов WordPress, даже с включенным кэшированием NGINX FastCGI (PHP-FPM). После переключения на том hostPath для контейнера MySQL проблемы с задержкой исчезли.

Аман Б.
источник
2

Я не думаю, что это возможно. Ричард, ссылка, которую вы предоставили, говорит о MyIsam, и они говорят, что это не рекомендуется в любом случае. Я где-то читал (я не помню где), что использование файлов innoDB, совместно используемых несколькими узлами, приведет к повреждению данных.

rtacconi
источник
2

Я не знаю, почему вы хотите получить доступ к одним и тем же файлам БД из разных процессов сервера MySQL, но если причина в производительности, вы должны взглянуть на Galera.

http://www.codership.com/content/using-galera-cluster

Интегрировано в базу данных Maria DB и Percona XTRA DB.

Энгель Дер
источник
Как насчет репликации Мастер-Мастер на GlusterFS?
CMCDragonkai
-1 для Галеры, если вы не ищете масштабируемость для чтения. Galera не подходит для больших баз данных или баз данных, для которых важна производительность записи. Я говорю из опыта и рекомендаций из контракта на поддержку с MariaDB.
Росс
@RossPeoples, честно говоря, OP вряд ли сделает это для производительности записи. Gluster может увеличить задержку каждой транзакции. Вероятно, он с большей вероятностью ищет HA, возможно, с помощью Kubernete, чтобы убедиться, что работает один экземпляр дБ.
Арон
1

В теории вы можете. На практике, и особенно в отношении производительности, руководство Gluster предполагает, что оно не предназначено для использования для репликации файлов БД или других систем ввода / вывода с мелким зерном.

Смотрите официальный обзор Gluster здесь:

http://docs.gluster.org/en/latest/Install-Guide/Overview/#is-gluster-going-to-work-for-me-and-what-i-need-it-to-do

Gluster собирается работать на меня и что мне нужно для этого?

... С другой стороны, добавив в смесь достаточное количество серверов Gluster, некоторые люди увидели лучшую производительность с нами, чем другие решения, из-за масштабируемого характера технологии - Gluster не поддерживает так называемые «структурированные данные», то есть оперативные Базы данных SQL. Конечно, было бы неплохо использовать Gluster для резервного копирования и восстановления базы данных - Gluster традиционно лучше при использовании файлов размером не менее 16 КБ (со сладостью около 128 КБ или около того).

Еще раз, если вы хотите иметь репликацию MySQL, я предлагаю:

  1. Используйте традиционную MySQL Master / Slave репликацию https://dev.mysql.com/doc/refman/5.7/en/replication.html

  2. Используйте кластер Codership Galera, который в настоящее время реализован во всех разновидностях MySQL, таких как Oracle MySQL или MariaDB

Майк Маунтракис
источник