Bisakah saya menjalankan mysqld di atas glusterfs?

12

Saya telah bermain dengan gluster baru-baru ini.

Yang ingin saya coba adalah menjalankan mysqld di atas glusterfs dengan cara yang sama seperti mungkin untuk menjalankan MySQL di atas DRBD .

Saya akrab dengan replikasi MySQL dan keuntungan menggunakan itu daripada pendekatan ini dan saya juga menyadari MongoDB dan solusi NoSQL lainnya.

Namun, ini akan menjadi solusi mudah untuk beberapa proyek tertentu yang saya buat jika saya dapat meninggalkan MySQL apa adanya dan mereplikasi sistem file yang mendasarinya.

Apakah ini mungkin dan jika di mana saya bisa mengetahui caranya?

Richard Holloway
sumber

Jawaban:

16

Karena penundaan yang cukup lama tanpa jawaban, saya telah menemukan trial and error.

Jawabannya adalah: Ya, saya bisa menjalankan mysqld di atas glusterfs.

Saya mengatur ini di Ubuntu dan secara singkat inilah langkah-langkahnya:

Masalah sebenarnya adalah bagaimana MySQL menangani kunci.

Namun Anda dapat meneruskan semua ini ke glusterfs untuk ditangani sehingga banyak proses mysqld (berjalan pada node terpisah) dapat mengakses file database yang sama di / mnt / glusterfs. Anda perlu membaca ini dengan seksama .

Richard Holloway
sumber
2
Apa masalah kinerja yang Anda lihat?
CMCDragonkai
4
Ini memang sangat menarik! Namun, sebagai catatan, saya sangat menyarankan agar tidak menggunakan ini dalam situasi di mana data Anda penting. Hanya karena tampaknya berfungsi tidak berarti itu aman. Anda mungkin beruntung dan belum mengalami kondisi balapan yang dapat menyebabkan kehilangan data.
jlh
Anda akan menggunakan 1 server sekaligus, kan? Saya cukup yakin ini tidak akan berfungsi dari beberapa server. Anda akan kehilangan data Anda
Diego Roccia
3

Mencoba ini di kluster K8. MySQL berjalan di dalam sebuah wadah, GlusterFS diinstal langsung pada node (non-containerized). Container MySQL memiliki afinitas yang ditetapkan untuk selalu berjalan pada node yang sama dengan GFS, pemasangan volume menggunakan driver volume GFS asli K8.

Latensi tinggi acak yang berpengalaman untuk situs WordPress, bahkan dengan caching NGINX FastCGI (PHP-FPM) diaktifkan. Beralih ke volume hostPath untuk wadah MySQL, masalah latensi hilang.

Aman B.
sumber
2

Saya pikir itu tidak mungkin. Richard, tautan yang Anda berikan berbicara tentang MyIsam dan mereka mengatakan itu tidak dianjurkan. Saya membaca di suatu tempat (saya tidak ingat di mana) bahwa menggunakan file innoDB yang dibagikan oleh beberapa node akan menyebabkan korupsi data.

rtacconi
sumber
2

Saya tidak tahu mengapa Anda ingin mengakses file DB yang sama dari berbagai proses server MySQL tetapi jika alasannya kinerja Anda harus melihat Galera.

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

Terintegrasi dalam Maria DB dan Percona XTRA DB Cluster

Engel Der
sumber
Bagaimana dengan replikasi Master ke Master di GlusterFS?
CMCDragonkai
-1 untuk Galera kecuali Anda mencari skalabilitas baca. Galera tidak cocok untuk basis data besar, atau basis data tempat menulis kinerja penting. Saya berbicara dari pengalaman, dan rekomendasi dari kontrak dukungan dengan MariaDB.
Ross Peoples
@RossPeoples jujur, OP tidak mungkin melakukan ini untuk kinerja menulis. Gluster cenderung menambah latensi pada setiap transaksi. Dia mungkin lebih mungkin mencari HA, mungkin dengan menggunakan Kubernete untuk memastikan bahwa ada instance dB tunggal yang berjalan.
Aron
1

Secara teori Anda bisa. Dalam praktik dan khususnya mengenai kinerja, manual Gluster menyarankan bahwa itu tidak dimaksudkan untuk digunakan untuk mereplikasi file DB atau sistem I / O butiran halus lainnya.

Lihat ikhtisar resmi Gluster di sini:

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

Apakah Gluster akan bekerja untuk saya dan apa yang perlu saya lakukan?

... Di sisi lain, menambahkan cukup server Gluster ke dalam campuran, beberapa orang telah melihat kinerja yang lebih baik dengan kami daripada solusi lain karena skala keluar sifat teknologi - Gluster tidak mendukung apa yang disebut "data terstruktur", yang berarti langsung , SQL database. Tentu saja, menggunakan Gluster untuk mencadangkan dan mengembalikan basis data akan baik-baik saja - Gluster secara tradisional lebih baik bila menggunakan ukuran file minimal 16KB (dengan sweet spot sekitar 128KB atau lebih).

Sekali lagi, jika Anda ingin memiliki replikasi MySQL saya sarankan:

  1. Gunakan replikasi MySQL Master / Slave tradisional https://dev.mysql.com/doc/refman/5.7/en/replication.html

  2. Gunakan Cluster Codership Galera yang saat ini diimplementasikan dalam semua rasa MySQL seperti Oracle MySQL atau MariaDB

Mike Mountrakis
sumber