Langkah-demi-Langkah: Cara mengkonfigurasi cluster failover Linux di Google Cloud Platform (Google Compute Engine) tanpa penyimpanan bersama #google #gce #sanless #cluster
Dalam panduan langkah demi langkah ini saya akan membawa Anda melalui semua langkah yang diperlukan untuk mengonfigurasi cluster MySQL 2-node (plus server saksi) yang sangat tersedia di Google Cloud Platform (Google Compute Engine, alias GCE). Panduan ini mencakup tangkapan layar, perintah shell dan cuplikan kode yang sesuai. Saya berasumsi bahwa Anda agak terbiasa dengan Google Cloud Platform dan sudah memiliki akun. Jika tidak, Anda dapat mendaftar untuk uji coba gratis hari ini. Saya juga akan berasumsi bahwa Anda memiliki keterampilan administrasi sistem linux dasar serta memahami konsep dasar failover clustering seperti IP Virtual, kuorum, dll.
Penafian: Awan adalah target yang bergerak cepat. Dengan demikian, fitur / layar / tombol pasti akan berubah seiring waktu sehingga pengalaman Anda mungkin sedikit berbeda dari apa yang akan Anda lihat di bawah. Sementara panduan ini akan menunjukkan kepada Anda bagaimana membuat database MySQL sangat tersedia, Anda tentu bisa menyesuaikan informasi dan proses ini untuk melindungi aplikasi atau database lain, seperti SAP, PostgreSQL, Oracle, WebSphere MQ, server file NFS, dan banyak lagi. Ini adalah langkah-langkah tingkat tinggi untuk membuat database MySQL yang sangat tersedia di dalam Google Compute Engine:
- Buat Proyek
- Buat Mesin Virtual (Mesin Virtual)
- Buat Grup Instance
- Buat Aturan Firewall untuk memungkinkan akses VNC
- Konfigurasi OS Linux
- Instal dan Konfigurasikan MySQL
- Instal dan Konfigurasikan Cluster
- Buat Penyeimbang Beban Internal
- Buat Aturan Firewall untuk Penyeimbang Beban Internal
- Konektivitas Cluster Uji
Ikhtisar
Artikel ini akan menjelaskan cara membuat cluster dalam satu wilayah Google Cloud. Node kluster (node1, node2 dan server saksi) semuanya akan berada di wilayah "us-central1" (jaringan 10.128.0.0/20/20) tetapi Anda dapat memilih wilayah Anda dengan tepat. Konfigurasi akan terlihat seperti ini: Alamat IP berikut akan digunakan:
- simpul1: 10.128.0.2
- simpul2: 10.128.0.3
- saksi: 10.128.0.4
- IP Load Balancer Internal: 10.128.0.99
- Port MySQL: 3306
Buat Proyek
Saat masuk pertama, Anda akan melihat Beranda Dasbor yang kosong dan akan diminta untuk membuat Proyek. Semua sumber daya Google Compute Engine yang akan kami buat akan menjadi milik proyek Google Cloud Platform ini. Di sini kita akan memanggil Proyek kami "LinuxCluster" yang baru dibuat:
Buat Mesin Virtual (Mesin Virtual)
Kami akan menyediakan 3 Mesin Virtual dalam panduan ini. Dua VM pertama (Saya akan menyebutnya "node1" dan "node2") akan berfungsi sebagai node cluster dengan kemampuan untuk membawa database MySQL dan sumber daya terkaitnya secara online. VM ketiga akan bertindak sebagai server saksi cluster untuk perlindungan tambahan terhadap split-brain. Untuk memastikan ketersediaan maksimum, ketiga VM akan berada di zona berbeda di kawasan (dalam contoh ini: us-central1-a, us-central1-b, us-central1-c).
Buat Instance "node1"
Buat instance VM pertama Anda ("node1"). Jika ini adalah pertama kalinya Anda membuat sebuah instance, layar Anda akan terlihat seperti gambar di bawah ini. Klik tombol "Buat Instance" di bagian tengah layar Anda: Jika Anda memiliki instance lain yang sudah berjalan di GCE, layar Anda akan terlihat sedikit berbeda. Tetap saja, klik “create instance” untuk melanjutkan: Secara default, Debian linux biasanya dipilih secara default. Kami * TIDAK * menginginkan ini karena kami akan menggunakan CentOS 6.X dalam panduan ini. Beri instance nama ("node1"), pilih zona pertama (a) di wilayah kami (us-central1) dan pastikan untuk mengklik "Ubah" untuk memilih gambar boot yang tepat. Anda dapat mengukur instance berdasarkan pada beban kerja Anda, tetapi untuk keperluan panduan ini kami akan menggunakan ukuran default untuk meminimalkan biaya, yang merupakan VM yang cukup kecil (1 vCPU dan hanya 3,75GB RAM) Dalam disk Boot pop di layar, pilih CentOS 6 dan di bagian bawah kita akan pergi dengan disk boot SSD. 10GB lebih dari cukup untuk keperluan panduan ini. Anda dapat mengukur sistem Anda sesuai: Setelah mengklik "Pilih", Anda akan dibawa kembali ke layar Create An Instance. Ke bagian bawah, klik "Manajemen, disk, jaringan, kunci SSH" karena kami akan menambahkan disk ke-2 untuk VM kami. Disk ke-2 ini akan digunakan untuk menyimpan basis data kami, dan inilah yang nantinya akan direplikasi / disinkronkan oleh perangkat lunak pengelompokan. Pilih tab "Disk", dan klik "Tambahkan item" untuk menambahkan disk ke-2 ke instance ini: Klik "Buat disk": Beri nama pada disk baru, pilih jenis yang diinginkan, dan mulai dengan disk kosong. 10 GB harus lebih dari cukup untuk kebutuhan kita di sini dalam contoh konfigurasi ini. CATATAN: Ingat nilai yang Anda tetapkan di sini. Kedua node cluster (node1 dan node2) harus berukuran SAMA: Akhirnya, klik tab "Networking", dan berikan node1 IP Internal pelanggan. Klik "Buat" untuk meluncurkan contoh baru Anda:
Buat "node2"
Ulangi langkah-langkah di atas dua kali untuk membuat simpul cluster kedua Anda ("node2"). Buat instance ini seperti yang Anda lakukan simpul1, termasuk penambahan disk ke-2. PENTING: pastikan ada di zona yang berbeda (us-central1-b) dan berikan IP unik (10.128.0.3)
Buat "saksi" VM
Buat VM ketiga Anda ("saksi") dan pastikan ada di zona yang berbeda (us-central1-c) dari dua contoh pertama. CATATAN: Mesin virtual ini TIDAK perlu disk tambahan. Mungkin perlu sedikit waktu untuk 3 instance VM Anda untuk ketentuan. Setelah selesai, Anda akan melihat VM Anda terdaftar di layar VM Instances di Google Cloud Console Anda. Verifikasi bahwa Anda meluncurkan setiap VM dengan benar ke zona yang berbeda:
Buat Grup Instance
Kemudian dalam panduan ini kita akan membuat Penyeimbang Beban Internal untuk merutekan lalu lintas ke node cluster aktif. Semua konfigurasi penyeimbang muatan yang tersedia di Google Cloud Platform memerlukan grup contoh untuk melayani lalu lintas yang dikirim dari penyeimbang beban. Dua kelompok contoh akan dibuat, dan masing-masing akan berisi satu simpul gugus.
Buat Grup Instance 1
Beri grup instance pertama Anda nama ("instance-group-1a"), pilih "Single-zone" dan pastikan untuk memilih Zona di mana instance VM pertama Anda berada. Di sini, kami memilih us-central-1a, karena di situlah "node1" digunakan. Di bawah ini, pilih "Pilih instance yang ada" dan pilih "node1" dari drop down VM instance:
Buat Grup Instance 2
Ulangi langkah sebelumnya sekali lagi, kali ini memilih zona tempat simpul kedua Anda berada. us-central-1b dan node2:
Buat Aturan Firewall untuk memungkinkan akses VNC
Anda dapat melihat semua aturan firewall yang ada dengan menavigasi ke: Jaringan -> Aturan Firewall Secara default, satu-satunya port yang terbuka di "Google firewall" dari dunia luar ke VM Anda adalah ping, SSH (port 22) dan RDP ( port 3389). Kemudian dalam panduan ini, kita akan menggunakan VNC untuk mengakses desktop "node1" dan mengkonfigurasi cluster menggunakan GUI. Buat Aturan Firewall untuk memungkinkan akses VNC. Dalam panduan ini port 5902 digunakan. Sesuaikan ini sesuai dengan konfigurasi VNC Anda.
Konfigurasi OS Linux
Selanjutnya, kita perlu mengkonfigurasi OS Linux dari instance kita dan membuat tangan kita kotor pada baris perintah, yang sebagai administrator Linux Anda harus terbiasa sekarang. Ada beberapa cara untuk terhubung ke konsol VM linux Anda. Anda dapat memulai koneksi SSH langsung dari antarmuka web GCE, atau Anda dapat menginstal Google Cloud SDK secara lokal di laptop / workstation Anda. Untuk SSH menggunakan browser Anda, pergi ke Compute -> VM Instances dan ke kanan VM yang ingin Anda sambungkan, di bawah "Connect" pilih "Open in browser window". Jika Anda lebih suka menginstal alat baris perintah Google Cloud secara native di laptop / workstation Anda, silakan lihat dokumentasi di sini: https://cloud.google.com/sdk/docs/quickstarts Setelah tersambung gunakan perintah "sudo" untuk dapatkan root privilege:
$ sudo su -
Edit / etc / hosts
Kecuali jika Anda sudah memiliki pengaturan server DNS, Anda ingin membuat entri file host di ketiga server sehingga mereka dapat saling menyelesaikan dengan benar dengan nama Tambahkan baris berikut di akhir file / etc / hosts Anda:
10.128.0.2 node1 10.128.0.3 simpul2 10.128.0.4 saksi 10.128.0.99 mysql-vip
Nonaktifkan SELinux
Edit / etc / sysconfig / linux dan atur “SELINUX = disable”:
# vi / etc / sysconfig / selinux # File ini mengontrol keadaan SELinux pada sistem. # SELINUX = dapat mengambil salah satu dari tiga nilai ini: # Menegakkan - SELinux kebijakan keamanan diberlakukan. # Permissive - SELinux mencetak peringatan alih-alih menegakkan. # Dinonaktifkan - Tidak ada kebijakan SELinux yang dimuat. SELINUX = dinonaktifkan # SELINUXTYPE = dapat mengambil salah satu dari dua nilai ini: # Tertarget - Proses yang ditargetkan dilindungi, # Mls - Perlindungan Multi Level. SELINUXTYPE = ditargetkan
Instal berbagai paket RPM
Selanjutnya, instal beberapa paket rpm yang akan dibutuhkan nanti sebagai prasyarat untuk perangkat lunak pengelompokan kami:
# yum instal patch redhat-lsb
Instal dan Konfigurasi VNC (dan paket terkait)
Untuk mengakses GUI server linux kami, untuk mengkonfigurasi cluster kami, instal server VNC pada node cluster Anda. Dalam pengaturan saya, saya hanya melakukan ini pada "node1"
# yum instal tigervnc-server xterm # vncpasswd # vi / etc / sysconfig / vncservers VNCSERVERS = "2: root" VNCSERVERARGS [2] = "- geometri 1024x768" # service vncserver mulai # chkconfig vncserver aktif
Uji konektivitas dengan membuka klien VNC di laptop / desktop Anda, dan sambungkan ke IP Publik node cluster Anda
Reboot Node Cluster
Mulai ulang agar SELinux dinonaktifkan. Ketiga sistem (node1, node2, saksi) perlu di-boot ulang.
Partisi dan Format disk "data"
Selama pembuatan instance VM, disk tambahan ditambahkan ke setiap node kluster untuk menyimpan data aplikasi yang akan kami lindungi. Dalam hal ini adalah database MySQL. Konfigurasi disk VM kami adalah sebagai berikut:
- / dev / sda – disk OS
- / dev / sdb – disk data
Disk ke-2 ditambahkan selama pembuatan instance / dev / sdb. Anda dapat menjalankan perintah "fdisk -l" untuk memverifikasi. Anda akan melihat bahwa / dev / sda (OS) sudah memiliki partisi disk dan sedang digunakan.
# fdisk -l Disk / dev / sda: 10,7 GB, 10737418240 byte 255 kepala, 63 sektor / jalur, 1305 silinder Unit = silinder 16065 * 512 = 8225280 byte Ukuran sektor (logis / fisik): 512 byte / 4096 byte Ukuran I / O (minimum / optimal): 4096 byte / 4096 byte Pengidentifikasi disk: 0x00035e98 Perangkat Booting Mulai Akhir Blok Sistem Id / dev / sda1 * 1 1306 10484736 83 Linux Disk / dev / sdb: 10,7 GB, 10737418240 byte 64 head, 32 sektor / track, 10240 silinder Unit = silinder 2048 * 512 = 1048576 byte Ukuran sektor (logis / fisik): 512 byte / 4096 byte Ukuran I / O (minimum / optimal): 4096 byte / 4096 byte Pengidentifikasi disk: 0x762b810b
Di sini kita akan membuat partisi (/ dev / sdb1), memformatnya, dan memasangnya di lokasi default untuk MySQL, yaitu / var / lib / mysql. Lakukan langkah-langkah berikut pada KEDUA "simpul1" dan "simpul2":
# fdisk / dev / sdb Command (m for help): n Perintah tindakan e diperpanjang p partisi primer (1-4) hal Nomor partisi (1-4): 1 Silinder pertama (1-1305, default 1): <enter> Menggunakan nilai default 1 Silinder, silinder, atau ukuran terakhir {K, M, G} (1-1305, standar 1305): <enter> Menggunakan nilai default 1305 Command (m for help): w Tabel partisi telah diubah! Memanggil ioctl () untuk membaca kembali tabel partisi. Menyinkronkan disk. [root @ node1 ~] # # mkfs.ext4 / dev / sdb1 # mkdir / var / lib / mysql
Pada node1, pasang sistem file:
# mount / dev / sdb1 / var / lib / mysql
Instal dan Konfigurasikan MySQL
Selanjutnya, instal instal paket-paket MySQL, inisialisasi basis data sampel, dan atur kata sandi "root" untuk MySQL.
Pada "node1":
# yum -y install mysql mysql-server # / usr / bin / mysql_install_db --datadir = "/ var / lib / mysql /" --user = mysql # mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 --datadir = / var / lib / mysql --log & # # # CATATAN: Perintah selanjutnya ini memungkinkan koneksi jarak jauh dari host APAPUN. BUKAN ide bagus untuk produksi! # echo "perbarui set pengguna Host = '%' di mana Host = 'node1'; hak istimewa flush" | mysql mysql # # # Atur kata sandi root MySQL ke 'SIOS' # echo "perbarui set pengguna Kata Sandi = PASSWORD ('SIOS') di mana Pengguna = 'root'; hak istimewa flush" | mysql mysql
Buat file konfigurasi MySQL. Kami akan menempatkan ini pada disk data (yang nantinya akan direplikasi – /var/lib/mysql/my.cnf). Contoh:
# vi /var/lib/mysql/my.cnf [mysqld] datadir = / var / lib / mysql socket = / var / lib / mysql / mysql.sock pid-file = / var / lib / mysql / mysqld.pid pengguna = root port = 3306 # Menonaktifkan tautan simbolis disarankan untuk mencegah berbagai risiko keamanan symbolic-links = 0 [mysqld_safe] log-error = / var / log / mysqld.log pid-file = / var / run / mysqld / mysqld.pid [klien] pengguna = root kata sandi = SIOS
Hapus file konfigurasi MySQL asli, yang terletak di / etc, jika ada:
# rm /etc/my.cnf
Pada "node2":
Pada "node2", Anda HANYA perlu menginstal paket MySQL. Langkah-langkah lain tidak diperlukan:
[root @ node2 ~] # yum -y install mysql mysql-server
Instal dan Konfigurasikan Cluster
Pada titik ini, kami siap untuk menginstal dan mengkonfigurasi cluster kami. SIOS Protection Suite untuk Linux (alias SPS-Linux) akan digunakan dalam panduan ini sebagai teknologi pengelompokan. Ini menyediakan fitur failover clustering (LifeKeeper) ketersediaan tinggi serta replikasi data level blok waktu nyata (DataKeeper) dalam satu solusi terintegrasi. SPS-Linux memungkinkan Anda untuk menyebarkan cluster "SANLess", alias cluster "nothing nothing" yang berarti bahwa node cluster tidak memiliki penyimpanan bersama, seperti halnya dengan Azure VMs.
Instal SIOS Protection Suite untuk Linux
Lakukan langkah-langkah berikut pada ALL 3 VM (node1, node2, saksi): Unduh file gambar instalasi SPS-Linux (sps.img) dan dan dapatkan lisensi percobaan atau beli lisensi permanen. Hubungi SIOS untuk informasi lebih lanjut. Anda akan mengulang mount itu dan menjalankan skrip "setup" di dalam, sebagai root (atau "sudo su -" pertama untuk mendapatkan shell root) Sebagai contoh:
# mkdir / tmp / install # mount -o loop sps.img / tmp / install # cd / tmp / install # ./mempersiapkan
Selama skrip instalasi, Anda akan diminta untuk menjawab sejumlah pertanyaan. Anda akan menekan Enter di hampir setiap layar untuk menerima nilai default. Perhatikan pengecualian berikut:
- Pada layar berjudul "High Availability NFS" Anda dapat memilih "n" karena kami tidak akan membuat server NFS yang sangat tersedia
- Menjelang akhir skrip pengaturan, Anda dapat memilih untuk menginstal kunci lisensi percobaan sekarang, atau yang lebih baru. Kami akan menginstal kunci lisensi nanti, sehingga Anda dapat memilih "n" dengan aman pada saat ini
- Di layar akhir "pengaturan" pilih ARK (Application Recovery Kits, mis. "Agen klaster") yang ingin Anda instal dari daftar yang ditampilkan di layar.
- ARK HANYA diperlukan pada "node1" dan "node2". Anda tidak perlu menginstal pada "saksi"
- Navigasikan daftar dengan panah atas / bawah, dan tekan SPACEBAR untuk memilih yang berikut:
- lkDR – DataKeeper untuk Linux
- lkSQL – LifeKeeper MySQL RDBMS Recovery Kit
- Ini akan menghasilkan RPM tambahan berikut yang diinstal pada "node1" dan "node2":
- steeleye-lkDR-9.0.2-6513.noarch.rpm
- steeleye-lkSQL-9.0.2-6513.noarch.rpm
Instal paket Saksi / Kuorum
Paket Dukungan Server Kuorum / Saksi untuk LifeKeeper (steeleye-lkQWK) yang dikombinasikan dengan proses failover yang ada pada inti LifeKeeper memungkinkan kegagalan sistem terjadi dengan tingkat kepercayaan yang lebih besar dalam situasi di mana total kegagalan jaringan bisa terjadi. Ini secara efektif berarti bahwa kegagalan dapat dilakukan sambil sangat mengurangi risiko situasi "otak ganda". Instal rpm Saksi / Kuorum pada ketiga simpul (simpul1, simpul2, saksi):
# cd / tmp / install / kuorum # Rpm -Uvh steeleye-lkQWK-9.0.2-6513.noarch.rpm
Pada SEMUA 3 node (node1, node2, saksi), edit / etc / default / LifeKeeper, atur NOBCASTPING = 1 ON ONLY server Witness ("saksi"), edit / etc / default / LifeKeeper, set WITNESS_MODE = off / none
Instal kunci Lisensi
Pada ketiga node, gunakan perintah "lkkeyins" untuk menginstal file lisensi yang Anda peroleh dari SIOS:
# / opt / LifeKeeper / bin / lkkeyins <path_to_file> / <filename> .lic
Mulai LifeKeeper
Pada ketiga node, gunakan perintah "lkstart" untuk memulai perangkat lunak cluster:
# / opt / LifeKeeper / bin / lkstart
Tetapkan Izin Pengguna untuk GUI LifeKeeper
Pada ketiga node, edit / etc / group dan tambahkan pengguna "tony" (atau nama pengguna apa pun yang Anda masuki) ke grup "lkadmin" untuk memberikan akses ke GUI LifeKeeper. Secara default hanya "root" adalah anggota grup, dan kami tidak memiliki kata sandi root di:
# vi / etc / group lkadmin: x: 502: root, tony
Buka GUI LifeKeeper
Buat koneksi VNC ke alamat IP Publik node1. Berdasarkan konfigurasi VNC dan Aturan Firewall dari atas, Anda akan terhubung ke <Public_IP>: 2 menggunakan kata sandi VNC yang Anda tentukan sebelumnya. Setelah masuk, buka jendela terminal dan jalankan LifeKeeper GUI menggunakan perintah berikut:
# / opt / LifeKeeper / bin / lkGUIapp &
Anda akan diminta untuk terhubung ke node cluster pertama Anda ("node1"). Masukkan linux userid dan kata sandi yang ditentukan selama pembuatan VM: Selanjutnya, hubungkan ke "simpul2" dan "saksi" dengan mengklik tombol "Hubungkan ke Server" yang disorot dalam tangkapan layar berikut: Sekarang Anda akan melihat ketiga server di GUI, dengan ikon tanda centang hijau yang menunjukkan mereka sedang online dan sehat:
Buat Jalur Komunikasi
Klik kanan pada "node1" dan pilih Create Comm Path Pilih KEDUA "node2" dan "saksi" dan kemudian ikuti wizard. Ini akan membuat jalur kom antara:
- simpul1 & simpul2
- simpul1 & saksi
Jalur kom masih perlu dibuat antara node2 & saksi. Klik kanan pada "node2" dan pilih Create Comm Path. Ikuti wizard dan pilih "saksi" sebagai server jauh: Pada titik ini jalur kom berikut telah dibuat:
- simpul1 <—> simpul2
- simpul1 <—> saksi
- simpul2 <—> saksi
Ikon di depan server telah berubah dari "tanda centang" hijau ke "tanda bahaya" kuning. Ini karena kami hanya memiliki jalur komunikasi tunggal antar node. Jika VM memiliki beberapa NIC (informasi tentang cara membuat Azure VM dengan banyak NIC dapat ditemukan di sini, tetapi tidak akan dibahas dalam artikel ini), Anda akan membuat jalur kom yang berlebihan antara setiap server. Untuk menghapus ikon peringatan, buka menu Lihat dan pilih-pilih "Comm Path Redundancy Warning": Hasil:
Verifikasi Jalur Komunikasi
Gunakan perintah "lcdstatus" untuk melihat status sumber daya gugus. Jalankan perintah berikut untuk memverifikasi bahwa Anda telah membuat jalur kom dengan benar pada setiap node ke dua server lain yang terlibat: # / opt / LifeKeeper / bin / lcdstatus -q -d node1 MESIN ALAMAT JARINGAN / ALAT-ALAT PERANGKAT KERJA / NEGARA PERANGKAT PRIO node2 TCP 10.128.0.2/ 10.128.0.3 HIDUP 1 saksi TCP 10.128.0.2/10.128.0.4 HIDUP 1 # / opt / LifeKeeper / bin / lcdstatus -q -d node2 MESIN JARINGAN ALAMAT / ALAT-ALAT PERANGKAT KERJA / NEGARA PERANGKAT PRIO node1 TCP 10.128.0.3/10.128.0.2 ALIVE 1 saksi TCP 10.128.0.3/10.128.0.4 HIDUP 1 # / opt / LifeKeeper / bin / lcdstatus -q -d saksi MESIN JARINGAN ALAMAT / PERANGKAT NEGARA NEGARA PRIO node1 TCP 10.128.0.4/10.128.0.2 HIDUP 1 node2 TCP 10.128.0.4/10.128.0.3 HIDUP 1
Membuat sumber daya klaster Replikasi Data (mis. Cermin)
Selanjutnya, buat sumber daya Replikasi Data untuk mereplikasi partisi / var / lib / mysql dari node1 (sumber) ke node2 (target). Klik ikon "tambah hijau" untuk membuat sumber daya baru: Ikuti wizard dengan pilihan ini:
Silakan Pilih Kit Pemulihan: Replikasi Data Tipe Switchback: cerdas Server: node1 Jenis Hierarki: Replikasi Sistem File yang Keluar Mount Point yang ada: / var / lib / mysql Sumber Daya Replikasi Data Tag: datarep-mysql Tab Sumber Daya Sistem File: / var / lib / mysql File Bitmap: (nilai default) Aktifkan Replikasi Asinkron: Tidak
Setelah sumber daya dibuat, wisaya “Perpanjang” (mis. Tentukan server cadangan) akan muncul. Gunakan pilihan berikut:
Server Target: node2 Tipe Switchback: Cerdas Prioritas Templat: 1 Prioritas Target: 10 Disk Target: / dev / sdb1 Sumber Daya Replikasi Data Tag: datarep-mysql File Bitmap: (nilai default) Jalur Replikasi: 10.128.0.2/10.128.0.3 Mount Point: / var / lib / mysql Root Tag: / var / lib / mysql
Cluster akan terlihat seperti ini:
Buat hirarki sumber daya MySQL
Selanjutnya, buat sumber daya cluster MySQL. Sumber daya MySQL bertanggung jawab untuk menghentikan / memulai / memonitor database MySQL Anda. Untuk membuat, klik ikon "hijau plus" untuk membuat sumber daya baru: Ikuti wizard dengan untuk membuat sumber daya IP dengan pilihan ini:
Pilih Recovery Kit: Database MySQL Tipe Switchback: Cerdas Server: node1 Lokasi my.cnf: / var / lib / mysql Lokasi executable MySQL: / usr / bin Tag Database: mysql
Perpanjang sumber daya IP dengan pilihan berikut:
Server Target: node2 Tipe Switchback: cerdas Prioritas Templat: 1 Prioritas Target: 10
Akibatnya, kluster Anda akan terlihat sebagai berikut. Perhatikan bahwa sumber Replikasi Data dipindahkan secara otomatis di bawah basis data (ketergantungan dibuat secara otomatis) untuk memastikannya selalu dibawa online sebelum basis data:
Buat Penyeimbang Beban Internal
Jika ini adalah kluster lokal di tempat yang menggunakan server fisik atau virtual, Anda akan selesai pada saat ini. Klien dan Aplikasi akan terhubung ke Virtual IP dari cluster (10.128.0.99) untuk mencapai node aktif. Di Google Cloud, ini tidak berfungsi tanpa konfigurasi tambahan. Untuk terhubung ke cluster, Google menyediakan fitur jika Anda dapat mengatur Internal Load Balancer (ILB). Pada dasarnya, ketika Anda terhubung ke alamat IP ILB (yang akan kami setel ke 10.128.0.99) Anda dialihkan ke node cluster yang saat ini aktif. Buat Penyeimbang Beban TCP: Ini akan menjadi penyeimbang beban internal, jadi pilih "Hanya di antara VM saya": Selanjutnya, beri nama penyeimbang beban ("internal-lb") lalu klik Konfigurasi backend: Pastikan Anda memilih yang tepat wilayah ("us-central1") dan konfigurasikan Backend. Klik “Tambah backend” dan tambahkan kedua grup instan (instance-grup-1a DAN instance-grup-1b): Penyeimbang beban memutuskan simpul mana yang akan dirutekan ke lalu lintas berdasarkan pemeriksaan kesehatan. Dalam contoh ini, pemeriksaan kesehatan untuk melihat apakah MySQL berjalan (memeriksa port default 3306) akan dikonfigurasi. Pilih "Buat pemeriksaan kesehatan": Beri nama pemeriksaan kesehatan baru ("mysql-health-check") dan konfigurasikan untuk port TCP 3306: Selanjutnya, konfigurasikan Frontend dari load balancer. Pilih "Konfigurasi ujung depan" dan di bawah alamat IP, tentukan IP internal statis khusus sebesar 10.128.0.99. Port haruslah 3306, yang merupakan port default untuk MySQL: Akhirnya, tinjau dan selesaikan pembuatan load balancer. Klik "Buat": Hasil. Anda akan melihat bahwa penyeimbang beban sedang daring, namun, tidak menunjukkan salah satu contoh grup sehat! (seperti yang ditunjukkan oleh 0/0). Kami akan memperbaikinya di bagian selanjutnya:
Buat Aturan Firewall untuk Penyeimbang Beban Internal
Per dokumentasi Google (lihat bagian "Konfigurasi aturan firewall untuk memungkinkan penyeimbangan beban internal"), dua aturan firewall perlu dibuat. Yang pertama memungkinkan lalu lintas ke penyeimbang beban dan dari penyeimbang beban ke instance. Yang kedua memungkinkan pemeriksaan kesehatan dari pemeriksa kesehatan. Buat aturan firewall baru: Beri nama aturan baru (allow-internal-lb) dan tentukan "10.128.0.0/20" sebagai kisaran IP sumber. Protokol dan port yang diizinkan harus "tcp: 3306": Setelah mengklik "Buat", Anda akan dikembalikan ke halaman aturan Firewall dan dapat melihat aturan yang baru dibuat dalam daftar. Klik "Buat Aturan Firewall" lagi sehingga kami dapat membuat aturan yang diperlukan ke-2: Beri nama aturan ke-2 ("bolehkan cek kesehatan"). DUA rentang IP sumber yang berbeda perlu ditentukan:
- 130.211.0.0/22
- 35.191.0.0/16
Catatan: Selalu ide yang baik untuk mengecek dokumentasi Google cloud untuk memastikan bahwa rentang IP ini masih valid. Sekarang Anda akan melihat kedua aturan firewall yang baru dibuat dalam daftar:
Konektivitas Cluster Uji
Pada titik ini, semua konfigurasi Google Cloud dan Cluster kami sudah selesai! Sumber daya Cluster saat ini aktif di node1: Anda juga akan melihat bahwa Internal Load Balancer menunjukkan node1, yang merupakan anggota instance-group-1a sebagai "sehat" dan karenanya, mengarahkan lalu lintas yang masuk ke IP virtual (10.128.0.99 ) ke node1: SSH ke dalam server saksi, "sudo su -" untuk mendapatkan akses root. Instal klien mysql jika diperlukan:
[root @ saksi ~] # yum -y instal mysql
Uji konektivitas MySQL ke kluster:
[root @itness ~] # mysql --host = 10.128.0.99 mysql -u root -p
Jalankan query MySQL berikut untuk menampilkan nama host dari node cluster aktif:
mysql> pilih @@ hostname; ------------ | @@ hostname | ------------ | node1 | ------------ 1 baris dalam set (0,00 dtk) mysql>
Menggunakan LifeKeeper GUI, failover dari Node1 -> Node2 ″. Klik kanan pada sumber daya mysql di bawah node2, dan pilih "Dalam Layanan …": Setelah failover, sumber daya dibawa online pada simpul2: Anda sekarang akan melihat bahwa Penyeimbang Beban Internal menunjukkan instance-group-1b, yang berisi node2, sebagai sehat . Lalu lintas sekarang dialihkan ke node2: Setelah failover selesai, jalankan kembali permintaan MySQL. Anda akan melihat bahwa klien MySQL telah mendeteksi bahwa sesi itu hilang (selama failover) dan secara otomatis menyambung kembali: Jalankan permintaan MySQL berikut untuk menampilkan nama host dari simpul gugus aktif, memverifikasi bahwa sekarang “simpul2” aktif:
mysql> pilih @@ hostname; ERROR 2006 (HY000): Server MySQL telah hilang Tidak ada koneksi. Mencoba menyambung kembali ... ID koneksi: 48 Database saat ini: mysql ------------ | @@ hostname | ------------ | node2 | ------------ 1 baris dalam set (0,56 detik) mysql>