MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Cara Menyebarkan Database Chamilo MariaDB untuk Ketersediaan Tinggi

Platform Learning Management System (LMS) memungkinkan Anda belajar/mengajar dari jarak jauh, sesuatu yang sangat penting karena situasi saat ini di seluruh dunia.

Dengan demikian, kami juga dapat mengatakan bahwa Ketersediaan Tinggi adalah suatu keharusan dalam platform semacam ini, jika tidak, itu tidak dapat diakses saat dibutuhkan.

Di blog ini, kita akan melihat cara men-deploy database MariaDB untuk Ketersediaan Tinggi yang akan digunakan untuk salah satu opsi platform LMS paling populer, Chamilo LMS.

Apa itu Chamilo?

Chamilo LMS adalah Sistem Manajemen Pembelajaran (LMS) gratis yang dirancang untuk pendidikan online dan dikembangkan melalui kolaborasi banyak perusahaan dan pengembang individu.

Sebagai guru, menggunakan Chamilo Anda dapat mengakses serangkaian alat yang berguna untuk menciptakan lingkungan belajar yang efektif. Beberapa alat tersebut adalah:

  • Impor atau buat dokumen (audio, video, gambar) dan publikasikan
  • Buat tes dan ujian dengan skor dan masukan otomatis sesuai kebutuhan
  • Menyetel dan menerima tugas virtual
  • Jelaskan komponen kursus melalui bagian deskripsi
  • Berkomunikasi melalui forum atau chat
  • Publikasikan pengumuman
  • Tambahkan tautan
  • Buat kelompok kerja atau kelompok laboratorium
  • Siapkan ruang kelas virtual
  • Buat survei
  • Tambahkan wiki untuk membuat dokumen secara kolaboratif
  • Gunakan glosarium dan agenda
  • Aktifkan pelacakan pelajar di kursus Anda
  • Daftar kehadiran
  • Menguraikan buku harian kelas, dan banyak lagi

Platform Chamilo sangat fleksibel. Semua alatnya dapat dikustomisasi sesuai dengan kebutuhan masing-masing kursus. Ini menyediakan antarmuka pengguna yang ramah dan intuitif yang tidak memerlukan pengetahuan atau keterampilan teknis khusus sebelumnya.

Jadi, pertanyaannya adalah, bagaimana Anda dapat menerapkan database MariaDB untuk Ketersediaan Tinggi agar dapat digunakan untuk sistem ini?

Database MariaDB untuk Ketersediaan Tinggi

Ada berbagai pendekatan untuk menerapkan Database MariaDB untuk Ketersediaan Tinggi. Mari kita lihat dua opsi utama.

Replikasi Master-Slave MariaDB

Anda dapat menjalankan penyiapan master-slave menggunakan replikasi asinkron atau semi-sinkron. Keuntungan dari opsi sederhana ini adalah, ketika master tidak tersedia, Anda dapat mempromosikan salah satu budak dan terus bekerja seperti biasa. Masalah utama dengan pengaturan ini adalah bahwa failover harus dilakukan secara manual, atau bahkan menggunakan alat eksternal seperti ClusterControl. Ini berarti Anda akan mengalami waktu henti (singkat), yang dapat diterima atau tidak untuk bisnis Anda.

Kluster MariaDB

Pendekatan lain adalah menggunakan Galera Cluster untuk menyimpan data dari Chamilo LMS. Anda dapat mulai menggunakannya dengan tiga node, dan secara otomatis dapat menangani kegagalan salah satu node ini. Dua node yang tersisa akan terus bekerja menerima koneksi dari aplikasi Chamilo. Artinya, Anda tidak akan mengalami waktu henti dalam kasus ini, tetapi karena ini adalah topologi yang lebih kompleks, Anda akan memerlukan lebih banyak pengetahuan tentang teknologi ini, dan bergantung pada beban kerja, ini bukan pilihan terbaik.

Load Balancer

Untuk meningkatkan Ketersediaan Tinggi, kedua opsi akan memerlukan Penyeimbang Beban di depannya, yang akan menangani lalu lintas dan mengarahkannya ke simpul yang tersedia/sehat.

ProxySQL adalah penyeimbang beban khusus untuk MySQL yang hadir dengan berbagai fitur termasuk pengalihan kueri, cache kueri, dan pembentukan lalu lintas. Ini dapat digunakan untuk dengan mudah mengatur pemisahan baca-tulis dan pengalihan kueri ke node backend yang terpisah.

HAProxy adalah penyeimbang beban yang mendistribusikan lalu lintas dari satu asal ke satu atau beberapa tujuan dan dapat menentukan aturan dan/atau protokol khusus untuk tugas ini. Jika salah satu tujuan berhenti merespons, itu ditandai sebagai offline, dan lalu lintas dikirim ke tujuan lain yang tersedia.

Keepalived adalah layanan yang memungkinkan Anda mengonfigurasi Alamat IP Virtual dalam grup server aktif/pasif. Alamat IP Virtual ini ditetapkan ke server yang aktif. Jika server ini gagal, Alamat IP secara otomatis dimigrasikan ke server pasif “Sekunder”, memungkinkannya untuk terus bekerja dengan Alamat IP yang sama secara transparan untuk sistem.

Menggunakan hanya satu node Load Balancer akan menambah satu titik kegagalan dalam topologi Anda, jadi, Anda dapat menggunakan kombinasi ProxySQL+Keepalived atau HAProxy+Keepalived menggunakan dua node Load Balancer (setidaknya) dan Tetap di antara mereka.

Sekarang, mari kita lihat bagaimana ClusterControl dapat membantu Anda menerapkan penambahan Database MariaDB Load Balancer dan Alamat IP Virtual untuk digunakan di aplikasi Chamilo Anda.

Penerapan Basis Data Chamilo MariaDB

Sebagai contoh, kami akan menerapkan Replikasi Master-Slave MariaDB, yang akan digunakan oleh aplikasi Chamilo. Untuk ini, kami akan menggunakan ClusterControl untuk menerapkan 2 node Database MariaDB (master-slave), dan 2 HAProxy Load Balancer dengan Keepalive yang dikonfigurasi di antaranya.

Penerapan Database MariaDB

Untuk melakukan penerapan dari ClusterControl, cukup pilih opsi “Deploy” dan ikuti petunjuk yang muncul.

Saat memilih Replikasi MySQL, Anda harus menentukan Pengguna, Kunci atau Kata Sandi, dan Port untuk terhubung dengan SSH ke server Anda. Anda juga dapat menambahkan nama untuk cluster baru Anda dan jika Anda ingin ClusterControl menginstal perangkat lunak dan konfigurasi yang sesuai untuk Anda.

Setelah menyiapkan informasi akses SSH, Anda harus memilih vendor database /version, dan tentukan kredensial database, port, dan direktori data. Anda juga dapat menentukan repositori mana yang akan digunakan.

Pada langkah berikutnya, Anda perlu menambahkan server Anda ke cluster yang akan Anda buat menggunakan Alamat IP atau Hostname.

Setelah tugas selesai, Anda dapat melihat klaster MariaDB baru di layar ClusterControl utama.

Sekarang cluster Anda telah dibuat, Anda dapat melakukan beberapa tugas di dalamnya, seperti menambahkan Load Balancer atau replika baru.

Penerapan Penyeimbang Beban

Untuk melakukan penerapan Load Balancer, pilih opsi “Tambahkan Load Balancer” di tindakan cluster, dan lengkapi informasi yang diminta.

Anda hanya perlu menambahkan IP atau Hostname, Port, Policy, dan node yang akan Anda gunakan untuk load balancing. Anda dapat menerapkannya menggunakan dua port yang berbeda (baca/tulis dan hanya baca), atau Anda dapat menggunakan hanya satu port baca/tulis untuk mengirim semua lalu lintas ke sana.

Penerapan yang Dipertahankan

Untuk melakukan penerapan Keepalived, pilih opsi “Tambahkan Load Balancer” di tindakan cluster, lalu buka Tab Keepalive.

Di sini, pilih node HAProxy, dan tentukan Alamat IP Virtual yang akan digunakan untuk mengakses database.

Sekarang, mari hubungkan lingkungan ini ke aplikasi Chamilo.

Konfigurasi Basis Data Chamilo

Selama penerapan Chamilo, pada langkah 4, Anda perlu menambahkan konfigurasi database.

Di sini Anda harus menggunakan alamat IP Virtual untuk mengakses Database MariaDB Anda, dan kredensial basis data.

Untuk detail lebih lanjut tentang konfigurasi Chamilo, Anda dapat merujuk ke Dokumentasi Resmi.

Itu dia! Anda memiliki Aplikasi Chamilo menggunakan Database MariaDB dengan Ketersediaan Tinggi.

Fitur Pemulihan Otomatis Kontrol Cluster

Jika terjadi kegagalan, ClusterControl akan mempromosikan node slave paling canggih untuk dikuasai serta memberi tahu Anda tentang masalahnya. Itu juga gagal pada node slave lainnya untuk mereplikasi dari server master baru.

Secara default, HAProxy dikonfigurasi dengan dua port berbeda:baca-tulis dan baca-saja. Di port baca-tulis, Anda memiliki master node sebagai online dan node lainnya sebagai offline, dan di port read-only, Anda memiliki node master dan slave online.

Bila HAProxy mendeteksi bahwa salah satu node Anda tidak dapat diakses, HAProxy secara otomatis menandainya sebagai offline dan tidak memperhitungkan pengiriman lalu lintas ke node tersebut. Deteksi dilakukan dengan skrip pemeriksaan kesehatan yang dikonfigurasi oleh ClusterControl pada saat penerapan. Ini memeriksa apakah instance aktif, apakah sedang menjalani pemulihan, atau hanya-baca.

Saat ClusterControl mempromosikan node slave, HAProxy menandai master lama sebagai offline untuk kedua port dan menempatkan node yang dipromosikan online di port baca-tulis.

Jika HAProxy aktif Anda, yang diberi Alamat IP Virtual yang terhubung dengan sistem Anda, gagal, Keepalived memigrasikan Alamat IP ini ke HAProxy pasif Anda secara otomatis. Artinya, sistem Anda dapat terus berfungsi secara normal.

Penerapan Database MariaDB menggunakan ClusterControl CLI

Jika Anda lebih suka menerapkan Klaster MariaDB menggunakan baris perintah, Anda dapat menggunakan alat klien baris perintah ClusterControl yang disebut "s9s". Alat ini akan mengirimkan tugas penerapan ke server ClusterControl dan akan melakukan semua langkah yang diperlukan untuk menerapkan cluster.

Misalnya, Anda dapat menjalankan perintah berikut di server ClusterControl untuk membuat replikasi master-slave MariaDB:

$ s9s cluster --create \

--cluster-type=mysqlreplication \

--nodes='10.10.10.136;10.10.10.137' \

--vendor=mariadb \

--provider-version='10.5' \

--db-admin-passwd='root123' \

--os-user=root \

--os-key-file=/root/.ssh/id_rsa \

--cluster-name='MariaDB1' \

--log

Anda akan melihat log pekerjaan di konsol sehingga Anda dapat memantau kemajuan penerapan di sana, atau Anda juga dapat memantau kemajuan pekerjaan dari UI ClusterControl -> Aktivitas -> Pekerjaan. Setelah selesai, Anda dapat melihatnya terdaftar di UI ClusterControl.

Kesimpulan

Di blog ini, kami menyebutkan beberapa opsi untuk menerapkan Database MariaDB untuk Ketersediaan Tinggi menggunakan ClusterControl dan cara menggunakannya pada aplikasi Chamilo LMS.

Kami menggunakan penerapan master-slave sederhana yang menambahkan penyeimbang beban untuk meningkatkan Ketersediaan Tinggi pada topologi ini, tetapi Anda dapat lebih meningkatkan lingkungan ini dengan menggunakan pendekatan yang berbeda seperti Galera+ProxySQL atau kombinasi yang berbeda dari semuanya .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 Fungsi yang Mengembalikan Bagian Detik dari Nilai Waktu di MariaDB

  2. Anda Tahu Anda Ingin:Bermigrasi dari Oracle ke MariaDB

  3. Langkah-Langkah yang Harus Dilakukan jika Anda Mengalami Pemadaman MySQL

  4. Basis data pembandingan 101 - bagian 1

  5. Operator UNION MariaDB Dijelaskan