Wednesday 27 November 2013

88. Cluster Computing

Cluster Computing

Cluster, dalam ilmu komputer dan jaringan komputer adalah sekumpulan komputer (umumnya server jaringan) independen yang beroperasi serta bekerja secara erat dan terlihat oleh klien jaringan seolah-olah komputer-komputer tersebut adalah satu buah unit komputer. Proses menghubungkan beberapa komputer agar dapat bekerja seperti itu dinamakan dengan Clustering. Komponen cluster biasanya saling terhubung dengan cepat melalui sebuah interkoneksi yang sangat cepat, atau bisa juga melalui jaringan lokal (LAN).
Karena menggunakan lebih dari satu buah server, maka manajemen dan perawatan sebuah cluster jauh lebih rumit dibandingkan dengan manajemen server mainframe tunggal yang memiliki skalabilitas tinggi (semacam IBM AS/400), meski lebih murah. Cluster didesain agar meningkatkan kemampuan sebuah server, yakni dengan meningkatkan hal-hal berikut:
1. Toleransi kesalahan (fault tolerance), yang dapat menyebabkan server lainnya akan mengambil alih kerja serverutama ketika server utama mengalami kegagalan. Client tidak akan melihat pergantian peran ini. Dengan begitu, downtime pun dapat dikurangi secara drastis.
2. Penyerataan beban (load-balancing), yang dapat mendistribusikan beban server ke semua server anggota cluster. Dengan begitu, kinerja dan skalabilitas server pun menjadi relatif lebih baik.
Beberapa sistem yang mendukung cluster antara lain:
1. Windows NT Server, Enterprise Edition, dengan sebuah layanan yang disebut Microsoft Cluster Service (MSCS)
2. Windows 2000 Advanced Server, dengan sebuah layanan yang disebut dengan Microsoft Clustering Service
3. Windows 2000 Datacenter Server
4. Windows Server 2003 Enterprise Edition (x86/IA-64/x64), dengan sebuah layanan yang disebut sebagai Microsoft Clustering Service
5. Windows Server 2003 Datacenter Edition (x86/IA-64/x64)
6. Solaris UNIX
7. GNU/Linux

Seringnya, penggunaan utama kluster komputer adalah untuk tujuan komputasi, ketimbang penanganan operasi yang berorientasi I/O seperti layanan Web atau basis data. Sebagai contoh, sebuah kluster mungkin mendukung simulasi komputasional untuk perubahan cuaca atau tabrakan kendaraan. Perbedaan utama untuk kategori ini dengan kategori lainnya adalah seberapa eratkah penggabungan antar node-nya. Sebagai contoh, sebuah tugas komputasi mungkin membutuhkan komunikasi yang sering antar node--ini berarti bahwa kluster tersebut menggunakan sebuah jaringan terdedikasi yang sama, yang terletak di lokasi yang sangat berdekatan, dan mungkin juga merupakan node-node yang bersifat homogen. Desain kluster seperti ini, umumnya disebut juga sebagai Beowulf Cluster. Ada juga desain yang lain, yakni saat sebuah tugas komputasi hanya menggunakan satu atau beberapa node saja, dan membutuhkan komunikasi antar-node yang sangat sedikit atau tidak ada sama sekali. Desain kluster ini, sering disebut sebagai "Grid".
Beberapa compute cluster yang dihubungkan secara erat yang didesain sedemikian rupa, umumnya disebut dengan "Supercomputing". Beberapa perangkat lunak Middleware seperti MPI atau Parallel Virtual Machine (PVM) mengizinkan program compute clustering agar dapat dijalankan di dalam kluster-kluster tersebut.


Kategori Kluster Komputer

Kluster komputer terbagi ke dalam beberapa kategori, sebagai berikut:
 Kluster untuk ketersediaan yang tinggi (High-availability clusters).
 Kluster untuk pemerataan beban komputasi (Load-balancing clusters).
 Kluster hanya untuk komputasi (Compute clusters)
Grid Computing.

                                                High-availability cluster


High-availability cluster, yang juga sering disebut sebagai Failover Cluster pada umumnya diimplementasikan untuk tujuan meningkatkan ketersediaan layanan yang disediakan oleh kluster tersebut. Elemen kluster akan bekerja dengan memiliki node-node redundan, yang kemudian digunakan untuk menyediakan layanan saat salah satu elemen kluster mengalami kegagalan. Ukuran yang paling umum dari kategori ini adalah dua node, yang merupakan syarat minimum untuk melakukan redundansi.
Implementasi kluster jenis ini akan mencoba untuk menggunakan redundansi komponen kluster untuk menghilangkan kegagalan di satu titik (Single Point of Failure).
Ada beberapa implementasi komersial dari sistem kluster kategori ini, dalam beberapa sistem operasi. Meski demikian, proyek Linux-HA adalah salah satu paket yang paling umum digunakan untuk sistem operasi GNU/Linux.
Dalam keluarga sistem operasi Microsoft Windows NT, sebuah layanan yang disebut dengan Microsoft Cluster Service (MSCS) dapat digunakan untuk menyediakan kluster kategori ini. MSCS ini diperbarui lagi dan telah diintegrasikan dalam Windows 2000 Advanced Server dan Windows 2000 Datacenter Server, dengan nama Microsoft Clustering Service. Dalam Windows Server 2003, Microsoft Clustering Service ini ditingkatkan lagi kinerjanya.


        Load balancing cluster

Kluster kategori ini beroperasi dengan mendistribusikan beban pekerjaan secara merata melalui beberapa node yang bekerja di belakang (back-end node). Umumnya kluster ini akan dikonfigurasikan sedmikian rupa dengan beberapa front-end load-balancing redundan. Karena setiap elemen dalam sebuah kluster load-balancing menawarkan layanan penuh, maka dapat dikatakan bahwa komponen kluster tersebut merupakan sebuah kluster aktif/kluster HA aktif, yang bisa menerima semua permintaan yang diajukan oleh klien.


Grid computing

Grid pada umumnya adalah compute cluster, tapi difokuskan pada throughput seperti utilitas perhitungan ketimbang menjalankan pekerjaan-pekerjaan yang sangat erat yang biasanya dilakukan oleh Supercomputer. Seringnya, grid memasukkan sekumpulan komputer, yang bisa saja didistribusikan secara geografis, dan kadang diurus oleh organisasi yang tidak saling berkaitan.
Grid computing dioptimalkan untuk beban pekerjaan yang mencakup banyak pekerjaan independen atau paket-paket pekerjaan, yang tidak harus berbagi data yang sama antar pekerjaan selama proses komputasi dilakukan. Grid bertindak untuk mengatur alokasi pekerjaan kepada komputer-komputer yang akan melakukan tugas tersebut secara independen. Sumber daya, seperti halnya media penyimpanan, mungkin bisa saja digunakan bersama-sama dengan komputer lainnya, tapi hasil
sementara dari sebuah tugas tertentu tidak akan mempengaruhi pekerjaan lainnya yang sedang berlangsung dalam komputer lainnya.
Sebagai contoh grid yang sangat luas digunakan adalah proyek Folding@home, yang menganalisis data yang akan digunakan oleh para peneliti untuk menemukan obat untuk beberapa penyakit seperti Alzheimer dan juga kanker. Proyek lainnya, adalah SETI@home, yang merupakan proyek grid terdistribusi yang paling besar hingga saat ini. Proyek SETI@home ini menggunakan paling tidak 3 juta komputer rumahan yang berada di dalam komputer rumahan untuk menganalisis data dari teleskop radio observatorium Arecibo (Arecibo Observatory radiotelescope), mencari bukti-bukti keberadaan makhluk luar angkasa. Dalam dua kasus tersebut, tidak ada komunikasi antar node atau media penyimpanan yang digunakan bersama-sama.

            Implementasi

Daftar semi-tahunan organisasi TOP500, yang mencantumkan 500 komputer tercepat di dunia umumnya mencakup banyak kluster. TOP500 adalah sebuah kolaborasi antara Universitas Mannheim, Universitas Tennessee, dan National Energy Research Scientific Computing Center di Lawrence Berkeley National Laboratory. Hingga 18 Juni 2008, superkomputer tercepat yang tercatat di dalam TOP500 adalah sistem Roadrunner yang dimiliki oleh Department of Energy Amerika Serikat, yang kinerjanya mencapai 1026 TeraFlops (Triliun Floating Point Operation per Second) dalam benchmark High-Performance LINPACK.



No comments:

Post a Comment