Czy mogę uruchomić mysqld na glusterfs?


12

Ostatnio gram z glusterfs.

Chcę spróbować uruchomić mysqld na glusterfs w podobny sposób, jak to możliwe, aby uruchomić MySQL na DRBD .

Znam replikację MySQL i zalety korzystania z niej zamiast tego podejścia, a także znam MongoDB i inne rozwiązania NoSQL.

Byłoby to jednak łatwe rozwiązanie dla kilku konkretnych projektów, które wymyśliłem, gdybym mógł pozostawić MySQL bez zmian i zreplikować podstawowy system plików.

Czy to możliwe i czy to gdzie mogę dowiedzieć się, jak to zrobić?

Odpowiedzi:


16

Z powodu dość długiego opóźnienia bez odpowiedzi dowiedziałem się metodą prób i błędów.

Odpowiedź brzmi: tak, mogę uruchomić mysqld na glusterfs.

Skonfigurowałem to na Ubuntu i pokrótce oto kroki:

Prawdziwy problem polega na tym, jak MySQL obsługuje zamki.

Możesz jednak przekazać to wszystko glusterfsowi, aby wiele procesów mysqld (działających na osobnych węzłach) mogło uzyskać dostęp do tych samych plików bazy danych na / mnt / glusterfs. Musisz to uważnie przeczytać .


2
Jakie widzisz problemy z wydajnością?
CMCDragonkai

4
To naprawdę bardzo interesujące! Jednak, dla przypomnienia, zdecydowanie odradzam używanie tego w każdej sytuacji, w której twoje dane są ważne. To, że wydaje się działać, nie oznacza, że ​​jest bezpieczne. Być może po prostu masz szczęście i nie spotkałeś się jeszcze z warunkami wyścigu, co może spowodować utratę danych.
jlh 13.04.16

zamierzasz używać jednocześnie 1 serwera, prawda? Jestem pewien, że nie będzie działać z wielu serwerów. stracisz swoje dane
Diego Roccia

3

Próbowano to zrobić w klastrze K8. MySQL działający w kontenerze, GlusterFS zainstalowany bezpośrednio w węźle (bez konteneryzacji). Kontener MySQL miał ustawione powinowactwo, aby zawsze działało w tym samym węźle co GFS, podłączając wolumin przy użyciu natywnego sterownika woluminu GFS K8.

Doświadczono losowego wysokiego opóźnienia dla witryn WordPress, nawet z włączonym buforowaniem NGINX FastCGI (PHP-FPM). Przełączono na wolumin HostPath dla kontenera MySQL, problemy z opóźnieniami zniknęły.


2

Nie sądzę, żeby to było możliwe. Richard, podany przez ciebie link mówi o MyIsam i mówią, że i tak nie jest to zalecane. Czytałem gdzieś (nie pamiętam gdzie), że używanie plików innoDB współdzielonych przez kilka węzłów doprowadzi do uszkodzenia danych.


2

Nie wiem, dlaczego chcesz uzyskać dostęp do tych samych plików DB z różnych procesów serwera MySQL, ale jeśli powodem jest wydajność, powinieneś spojrzeć na Galera.

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

Zintegrowany z klastrem DB Maria i Percona XTRA


Co z replikacją Master to Master na GlusterFS?
CMCDragonkai

-1 dla Galera, chyba że szukasz skalowalności odczytu. Galera nie nadaje się do dużych baz danych lub baz danych, w których liczy się wydajność zapisu. Mówię z doświadczenia i zaleceń zawartych w umowie wsparcia z MariaDB.
Ross Peoples,

@RossPeoples, szczerze mówiąc, jest mało prawdopodobne, aby OP robił to dla wydajności zapisu. Gluster prawdopodobnie spowoduje opóźnienie każdej transakcji. Prawdopodobnie jest bardziej prawdopodobne, że szuka HA, prawdopodobnie używając Kubernete, aby upewnić się, że działa jedna instancja dB.
Aron

1

Teoretycznie możesz. W praktyce, a zwłaszcza w odniesieniu do wydajności, instrukcja Gluster sugeruje, że nie jest przeznaczona do replikacji plików DB lub innych drobnoziarnistych systemów I / O.

Zobacz oficjalny przegląd Gluster tutaj:

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

Czy Gluster będzie dla mnie pracował i co musze zrobić?

... Z drugiej strony, po dodaniu wystarczającej liczby serwerów Gluster do miksu, niektórzy ludzie widzieli z nami lepszą wydajność niż inne rozwiązania ze względu na skalowalny charakter technologii - Gluster nie obsługuje tak zwanych „danych strukturalnych”, co oznacza na żywo , Bazy danych SQL. Oczywiście, używanie Glustera do tworzenia kopii zapasowych i przywracania bazy danych byłoby w porządku - Gluster jest tradycyjnie lepszy, gdy używa plików o wielkości co najmniej 16 KB (ze słabym punktem około 128 KB).

Jeszcze raz, jeśli chcesz mieć replikację MySQL, proponuję:

  1. Użyj tradycyjnej replikacji MySQL Master / Slave https://dev.mysql.com/doc/refman/5.7/en/replication.html

  2. Użyj klastra Codership Galera, który obecnie jest wdrażany we wszystkich odmianach MySQL, takich jak Oracle MySQL lub MariaDB

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.