Mulai Belajar Cluster MySQL

Saat ini kami sedang memulai belajar membuat cluster MySQL. Kami membuat cluster ini karena ingin meningkatkan kinerja database sekaligus meningkatkan reliabilitas-nya. Tadinya mau experimen di Pekanbaru, tapi karena terkendala waktu saat saya berkunjung ke sana, maka experimen dilakukan di Bekasi. Jika berhasil baik, maka model cluster MySQL ini akan diterapkan di semua RS.

Kami pun menyiapkan 4 buah PC untuk experimen. 4 PC ini hanya ditenagai prosesor Atom dengan RAM 2 GB dan hanya menggunakan USB sebagai media penyimpanannya. Jika dapat berjalan baik, maka kami akan menggunakan 4 buah PC dengan spesifikasi yang lebih tinggi.

Berikut ini beberapa link penting:
~ MySQL Cluster NDB 7.2
~ Download MySQL CLuster
~ MySQL Cluster Quick Start for Linux
~ MySQL Cluster and Ubuntu 12.04

Ada yang pernah punya pengalaman menggunakan cluster MySQL dengan konfigurasi standard?

Iklan

Rencana Membuat Cluster

Dalam waktu dekat ini kami ingin membuat cluster. Untuk menekan tingginya biaya, kami berencana membuat cluster dengan 4 PC. Bukan dengan komputer server beneran, karena server mahalnya minta ampun. Bayangkan saja, 1 server dengan prosesor Xeon saja bisa di atas Rp 15juta.

Tentu saja dipilih PC dengan spesifikasi tinggi. Kami menentukan spek PC dengan prosesor intel i7 2600 dengan clock 3.4GHz. Processor ini memiliki 4 cores (8 threads). Daku kira spek ini sudah mencukupi.

Yang berbeda adalah karena kami ingin merakitnya sendiri. Kami tidak membeli jadi PC tersebut. Tetapi membeli prosesor, motherboard, RAM, harddisk, power supply, fan, dll secara terpisah. Selain ingin ngirit tapi hasil maksimal, kami terinspirasi dari komputer Helmer (baca: “Building home linux render cluster”). Benar-benar sangat inspiratif dimana cluster yang terdiri dari 6 PC ini dibangun di dalam casing IKEA Helmer Cabinet. Hemat tempat.

Hasilnya luar biasa, kekuatan & kecepatannya sudah terbuktikan sesuai cerita di situs tersebut. Malahan sang pembuat memiliki rencana lebih gila dengan menyusun versi Helmer II dengan prosesor AMD Buldozer yang memili 16 cores. Jika terdiri dari 6 processor seperti Helmer I, maka Helmer II bakal memiliki total 96 cores. Mantabs… Yang harus diacungi jempol adalah karena PC cluster tersebut rakitan sendiri dari PC kinerja tinggi.

Sangat sesuai dengan tujuan awal pembuatan cluster, yaitu penggabungan beberapa komputer dengan biaya rendah untuk mencapai kinerja & ketahanan tinggi.

(Masih) Belajar Computer Cluster

Seringkali daku kagum sama penyedia layanan jejaring sosial semacam facebook, twitter, dll. Mereka ini punya anggota yang jutaan (ehm, sudah ratusan juta sebenarnya) tetapi akses terhadap layanan mereka termasuk cepat. Dan yang terpenting adalah kecepatannya tidak terpengaruh oleh laju pertambahan anggota. Di belakang itu, mereka melakukan hal-hal yang luar biasa terhadap optimasi software dan didukung ribuan (puluhan ribu) server dan jaringan paralel dengan bandwidth besar.

Analis bahkan menyebutkan kalau facebook punya lebih dari 60,000 server. Ini melengkapi apa yang telah mereka lakukan sebelumnya, yaitu optimasi di script php dengan meng-compile php ke C++ dengan HipHop yang mereka kembangkan sendiri. Hasilnya adalah layanan yang luar biasa bagi ratusan juta anggotanya di seluruh dunia.

Lebih dari 60,000 server adalah angka yang luar biasa ya? Tapi itu belum seberapa jika dibandingkan dengan server Google. Analis memperkirakan Google menjalankan sekitar 900,000 server. Mungkin lebih. Server sebanyak ini tidak terletak dalam 1 lokasi, tetapi tersebar di seluruh dunia.

Baiklah, ini baru dilihat dari jumlah server, belum menghitung berapa banyaknya (dan besarnya) media penyimpanan mereka dan berapa besar bandwidth jaringan yang mereka gunakan. Dan tentu saja, berapa besar daya listrik yang mereka butuhkan. Tapi intinya adalah bahwa mereka serius sekali membangun infrastruktur mereka. Menandakan kalau mereka menganggap penting sekali layanan mereka. Demikian pula seharusnya dengan perusahaan kita. Dalam dunia usaha ini butuh sekali infrastruktur yang memadai untuk mendukung usaha. Memang sih mengupayakan infrastruktur yang mewah (baca: ribuan server) adalah hal yang sulit. Untungnya adalah bahwa infrastruktur ini bisa diupayakan secara bertahap. Bahkan on-need. Begitu dibutuhkan, infrastruktur bisa ditambahkan. Jadi sistem kita skalabilitasnya tinggi.

Nah, sekarang daku sedang berupaya belajar membuat itu semua jadi kenyataan di perusahaan kami. Ada yang punya pengalaman membangun cluster atau cloud? Bagi-bagi pengalaman donk…

Belajar Computer Cluster

Salah satu tantangan terbesar di dunia IT adalah untuk mempertahankan layanan server berjalan dengan baik & tetap pada performanya. Ini sulit sekali, karena dari hari ke hari data yang tersimpan semakin besar dan proses pengolahannya semakin membutuhkan prosesor dengan tenaga yang besar. Padahal data semakin meningkat dan cenderung exponensial, terutama karena semakin meningkatnya transaksi akibat kemajuan bisnis.

Mengandalkan server yang itu-itu saja tentu tidak cukup. Ibaratnya kita hanya punya 1 bis TransJakarta tetapi harus mengantarkan penumpang yang kian hari kian meningkat. Tentu kita perlu tambahan bis.

Tetapi di dunia IT tidak semudah sekedar menambah server. Karena perlu konfigurasi tertentu sehingga mereka bisa bekerja sama dengan baik. Banyak sih alternatifnya, dari sekedar load balancing, sampai ke yang lebih kompleks seperti clustering, grid, cloud, dll.

Nampaknya kami membutuhkan solusi clustering, karena diharapkan solusi ini tidak sekedar 1-2 tahun ke depan, tetapi diharapkan bisa 5-10 tahun ke depan. Soalnya clustering ini bisa lebih fleksibel dalam hal skalabilitas. Perlu belajar banyak nih. Sekarang daku sedang mengumpulkan banyak bacaan tentang clustering ini. Sebagai awal mungkin belajar dari Mbak Wiki: Computer Cluster baru merambah ke sumber lain. Ada yang bisa memberi kursus gak ya?