Grid computing
Komputasi Grid adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.
Latar belakang
Perkembangan kecepatan prosesor berkembang sesuai dengan Hukum Moore, meskipun demikian bandwith jaringan komputer berkembang jauh lebih pesat. Semakin cepatnya jalur komunikasi ini membuka peluang untuk menggabungkan kekuatan komputasi dari sumber-sumber komputasi yang terpisah. Perkembangan ini memungkinkan skala komputasi terdistribusi ditingkatkan lebih jauh lagi secara geografis, melintasi batas-batas domain administrasi yang sudah ada.
Pesatnya perkembangan teknologi komputer di negara-negara maju, membuat para penelitinya semakin haus akan tenaga komputasi yang dapat menjawab tantangan dan permasalahan yang mereka hadapi. Walaupun sudah memiliki supercomputer dengan kapasitas yang sangat tinggi , apa yang sudah ada ini pun dirasa tetap kurang, karena mereka berusaha memecahkan permasalahan yang lebih besar lagi. Setelah semua komputer yg dimiliki seorang "peneliti haus tenaga komputasi" dipergunakan habis-habisan untuk memecahkan masalahnya, setelah berbagai cara untuk memecahkan masalah dicoba, dan dipilih yang paling efisien, tapi tetap masalahnya belum bisa dipecahkan juga, apa yang harus dia lakukan? Komputasi grid adalah salah satu jawaban dari pertanyaan ini.
Definisi
Menurut tulisan singkatoleh Ian Foster ada check-list yang dapat digunakan untuk mengidentifikasi bahwa suatu sistem melakukan komputasi grid yaitu :
- Sistem tersebut melakukan koordinasi terhadap sumberdaya komputasi yang tidak berada dibawah suatu kendali terpusat. Seandainya sumber daya yang digunakan berada dalam satu cakupan domain administratif, maka komputasi tersebut belum dapat dikatakan komputasi grid.
- Sistem tersebut menggunakan standard dan protokol yang bersifat terbuka (tidak terpaut pada suatu implementasi atau produk tertentu). Komputasi grid disusun dari kesepakatan-kesepakatan terhadap masalah yang fundamental, dibutuhkan untuk mewujudkan komputasi bersama dalam skala besar. Kesepakatan dan standar yang dibutuhkan adalah dalam bidang autentikasi, otorisasi, pencarian sumberdaya, dan akses terhadap sumber daya.
- Sistem tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of service) yang jauh diatas kualitas layanan komponen individu dari komputasi grid tersebut.
Peluang
Dalam buku The Grid:Blue Print for a new computing infrastructure dijelaskan bahwa yang dimaksud dengan komputasi grid adalah infrastruktur perangkat keras dan perangkat lunak yang dapat menyediakan akses yang bisa diandalkan, konsisten, tahan lama dan tidak mahal terhadap kemampuan komputasi mutakhir yang tersedia.
"A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities."
Seandainya kelak dikemudian hari teknologi yang dibutuhkan untuk mewujudkan visi paradigma komputasi grid ini sudah mapan, peluang akan semakin terbuka bagi kerjasama lintas organisasi, lintas benua dan lintas bangsa. Akan terbuka peluang bagi peneliti di Indonesia yang ingin melakukan komputasi yang sangat rumit, dengan menggunakan supercomputer tercepat di dunia, tanpa harus melakukan investasi besar-besaran dalam bidang teknologi informasi.
RockCluster
Rocks adalah distribusi open source cluster Linux yang memungkinkan pengguna untuk membuat cluster komputasi, grid end point dll. Distro ini menggunakan basis distro CentOS (turunan RedHat Enterprise Server). Ratusan peneliti di dunia menggunakan Rocks untuk membangun cluster mereka.
Sejak May 2000, kelompok Rocks memfokuskan diri untuk mengatasi kesulitan dalam mengimplementasikan cluster yang dapat di atur dengan mudah. Tujuan utama kelompok ini adalah, membuat cluster menjadi mudah. Dalam artian mudah untuk di implementasikan, di atur, di upgrade dan di besarkan. Tujuan ini terutama untuk membantu berbagai komunitas peneliti untuk memperoleh kekuatan komputasi cluster. Jelas keberadaan platform paralel computing yang stabil dan dapat di manage dengan mudah akan sangat membantu para peneliti untuk memgembangkan tool paralel yang terbaik / terkini.
Lisensi
Rock Cluster dijamin 100% open source.
RockCluster: Kebutuhan Hardware
Processor
- x86 (ia32, AMD Athlon, etc.)
- x86_64 (AMD Opteron dan EM64T)
Network
- Ethernet
Kebutuhkan Hardware Minimal
Frontend Node
- Kapasitas Harddisk : 30 GB
- Kapasitas Memory : 1 GB
- Ethernet : 2 port fisik (eth0 dan eth1)
- Urutan Boot BIOS : CD, Hard Disk
Compute Node
- Kapasitas Harddisk : 30 GB
- Kapasitas Memory : 1 GB
- Ethernet : 1 port fisik (eth0)
- Urutan Boot BIOS : CD, PXE (Network Boot), Hard Disk
Instalasi Fisik
Banyak buku yang membahas tentang bentuk fisik cluster. Kebanyakan buku dari O'Reilly tentang "Building Linux Clusters" membahas setup fisik cluster, cara memilih motherboard dll. Buku "How to Build a Beowulf" memuat tip yang baik tentang konstruksi fisik cluster.
Akan lebih baik menggunakan peralatan rack-mount karena lebih reliable dan lebih padat.Akan tetapi ada juga Rocks Cluster yang dibangun menggunakan mini tower. Pada akhirnya silahkan kita pilih mana yang lebih baik buat kita.
Diagram berikut memperlihatkan bagaimana frontend dan compute node harus tersambung:
Pada compute node, interface Ethernet eth0 tersambung ke cluster ethernet switch. Jaringan ini termasuk jaringan private, dimana semua traffic terpisah dari jaringan public / external / Internet.
Pada frontend dibutuhkan paling tidak dua (2) interface ethernet. Ethernet eth0 harus tersambung ke jaringan dimana compute nodes tersambung. Interface eth1 tersambung ke jaringan luar, seperti, IntraNet atau Internet.
RockCluster: Instalasi
Persiapan DVD RockClusters
Rolls yang dibutuhkan minimal:
- Kernel/Boot Roll CD
- Base Roll CD
- Web Server Roll CD
- OS Roll CD - Disk 1
- OS Roll CD - Disk 2
Proses Instalasi
- Masukan DVD RockClusters
- Pada saat keluar promt boot: ketik "frontend" atau "build"
- Klik "CD/DVD-based Roll"
- Klik semua aplikasi kecuali Xen
- Klik Next
- Isi "Cluster Information screen" - hati-hati dalam mengisi hostname, jika front end hostname di ubah setelah cluster di install akan menyebabkan beberapa layanan tidak jalan.
- Set IP address eth0 - default 10.1.1.1
- Set IP address eth1 - default automatis ke Internet.
- Set Gateway & DNS - default automatis ke Internet
- Set root password - jangan sampai lupa.
- Partisi disk - automatic akan memformat disk pertama yang terdeteksi. Manual akan memberikan peluang pada kita untuk memformat secara manual.
Instalasi akan membutuhkan waktu sekitar 30 menit-an. Setelah selesai frontend akan reboot.
Partisi Harddisk
- Partisi yang digunakan oleh RockCluster tampaknya harus primary. Tidak bisa menggunakan logical.
RockCluster: Instalasi Compute Node
Instalasi compute-node sangat mudah dilakukan jika seluruh node dapat boot dari network menggunakan PXE. Untuk itu, pertama-tama pada front-end jalankan:
# insert-ethers --rack 0
Sesuaikan nomor rack dengan kelompok compute node. Pada layar awal Insert Ethers, pilih menu compute.
Maka akan tampak tampilan front end yang siap menerima permohonan booting dari compute node
Selanjutnya,
- Boot komputer compute node menggunakan PXE
Alternatif jika tidak ada PXE boot,
- Masukan DVD RockClusters ke compute node
- Hidupkan compute node satu persatu dengan berurutan.
Tampak pada layar front end yang berhasil menangkap permohonan booting compute node
Pada layar Insert Ethers di frontend, akan nampak bahwa compute node akan didaftar MAC addressnya, diberi nama compute-0-0 (dst.), lalu jika sudah terinstall dengan baik akan ada tanda asterik (*).
Monitoring Compute Node
Kita dapat memonitor proses instalasi compute node menggunakan rocks-console, misalnya untuk compute node compute-0-0 maka perintah yang harus di berikan adalah,
rocks-console compute-0-0
Setelah kita instalasi semua compute node di sebuah cabinet, keluar / quit dari insert-ethers dengan menekan tombol 'F8'.
Setelah kita menginstalasi semua compute node di cabinet yang pertama, dan kita ingin menginstalasi compute node di cabinet selanjutnya, jalankan insert-ethers sebagai berikut
insert-ethers --cabinet=1
Compute node selanjutnya akan bernama seperti compute-1-0, compute-1-1, ...
RockCluster: Web Server Lokal
Segera setelah front-end terpasang, luncurkan web browser (dalam hal ini Firefox), lalu browse ke http://localhost . Akan muncul situs Front-End, ada lima menu yang langsung bisa diakses:
- Cluster Status, untuk menampilkan Ganglia
- Documentation for the installed rolls.
- Support
- Tripwire
- Users Guide
Wordpress
Situs utama web server lokal tersebut memakai CMS Wordpress. Jika perlu mengkonfigurasinya, login sebagai:
user: admin
password: your root password for the cluster
Ganglia
Akses melalui alamat
https://ip-rock-front-end/ganglia
muncul halaman Ganglia Cluster Monitoring.
Membuka web server
Agar web server bisa diakses oleh publik, edit file
vi /etc/sysconfig/iptables
dan ubah baris berikut
# http and https is allowed for all nodes on the public subnet
-A INPUT -i eth1 -p tcp --dport https -m state --state NEW --source 192.168.0.0/255.255.255.0 -j ACCEPT
-A INPUT -i eth1 -p tcp --dport ssh -m state --state NEW -j ACCEPT
-A INPUT -i eth1 -p tcp --dport www -m state --state NEW --source 192.168.0.0/255.255.255.0 -j ACCEPT
Setelah itu restart iptables.
#service iptables restart
RockCluster: Submit Job
Submit Job Menggunaan mpirun
Ambil source code tachyon dari
- http://www.photonlimited.com/~johns/tachyon/
- http://www.photonlimited.com/~johns/tachyon/files/0.99b2/
Copy ke front end rockcluster
scp tachyon-0.99b2.tar.gz root@192.168.0.120:
Masuk ke front end rockcluster
ssh root@192.168.0.120
lakukan
cd ~
tar xzf tachyon-0.99b2.tar.gz
cd tachyon/unix
Buka
vi Make-arch
Lakukan
- Cari config option untuk "linux-lam"
- Copy set option ini ke entry baru.
- Ubah di new entry linux-lam ke linux-mpich
- Ubah "CC = hcc" ke "CC = gcc"
- Ubah -I$(LAMHOME)/h ke -I/opt/mpich2/gnu/include
- Ubah -L$(LAMHOME)/lib ke -L/opt/mpich2/gnu/lib
- Ubah -lmpi to -lmpich
- Save
Jalankan
cd ~
cd tachyon/unix
make linux-mpich
tachyon binary akan tampak di compile/linux-mpich/.
cd ~
vi machines
isi dengan misalnya
compute-0-0
compute-0-1
compute-0-2
Jalankan Tachyon di tiga (3) slave machine dengan perintah
cd ~
/opt/mpich2/gnu/bin/mpirun -v -np 3 -machinefile machines \
tachyon/compile/linux-mpich/tachyon +V tachyon/scenes/balls.dat
Submit Job Menggunakan qsub
Cek
qstat -f
Cek
qconf -sq compute-0-0.q
qconf -sq compute-0-1.q
qconf -sq compute-0-2.q
Buat file
vi tachyon.job
isi
#$ -cwd
#$ -j y
#$ -S /bin/bash
/opt/mpich2/gnu/bin/mpirun -v -np $NSLOTS -machinefile $TMPDIR/machines \
tachyon/compile/linux-mpich/tachyon +V tachyon/scenes/balls.dat
Submit job (untuk 3 processor)
qsub -pe mpich 3 tachyon.job
RockCluster: Administrasi Pemakaian
Administrasi Pemakai
Administrasi kluster dilakukan pada komputer front-end. Kebanyakan tugas masih harus dilakukan dari command line. Hal ini dapat dilakukan pada GUI lokal dengan meluncurkan program Terminal, maupun melalui remote terminal.
Menjadi root
Pada saat melakukan administrasi, kita harus menjadi root (penguasa tertinggi sistem Linux). Caranya adalah panggil perintah su:
$ su
password: *****
Menambah Pemakai
Untuk membuat pemakai baru, gunakan perintah :
# adduser tamu
# passwd tamu
# rocks sync users
Perintah terakhir perlu untuk mensikronkan ke semua compute node. Jangan lupa.
Setelah tahap ini, mestinya setiap user dari front-end bisa ssh tanpa password ke semua compute node. Jika ada node yang gagal, maka beberapa cara pemecahannya:
- login sebagai root ke node ybs, restart greceptor dan panggil "411get --all"
- Coba restart node tersebut
Menambah Banyak Pemakai
Untuk membuat banyak tamu sekaligus, buat script dengan isi
#!/bin/sh
# script bash untuk membuat banyak tamu sekaligus
for i in $(seq 1 1 8 ); do
echo "tamu$i"
adduser tamu$i
echo "kunci$i" | passwd --stdin "tamu$i"
done
rocks sync users
Home Pemakai
Rocks memakai NFS dan automount agar secara otomatis home pamakai bisa diakses dari front-end maupun seluruh compute node. Untuk itu perhatikan bahwa :
- Secara fisik, letak home di front-end adalah /export/home/USER
- Saat user login ke suatu node, akan otomatis di mount ke /home/USER.
Karena itu, jangan kaget kalau login sebagai root, /home kosong isinya atau tak bisa mengakses /home/USER.
Manajemen Compute Node
Memasang file untuk untuk semua node
Jika ada file yang akan terpakai di seluruh node (aplikasi maupun data), bisa ditaruh di /share/apps
# cd /share/apps
# cp -a $HOME/myapp .
Menjalankan program di semua node
Untuk menjalankan perintah tertentu di semua node, dari front-end panggil perintah rocks run host, misalnya:
# rocks run host "/sbin/service gmond restart"
Menambah paket
Untuk menambah paket, cara termudah adalah memakai yum, yang dengan otomatis bisa mengunduh dan memasang paket dari repositori online. Agar repositori ini bisa diakses lewat proxy, tambahkan baris ini pada /root/.bashrc
export HTTP_PROXY=http://nama:password@cache.itb.ac.id:8080
Kemudian tambahkan repositori yang akan dipakai dengan mengedit file /etc/yum.conf, tambahkan
[oss-tf]
name=OSS Centos 5.3
baseurl=ftp://oss.tf.itb.ac.id/repository/centos/5.3/os/x86_64/
Selanjutnya tinggal memanggil
# yum repolist
# yum update
# yum install mc
Unduh Paket
Untuk mengunduh paket ke front-end, cara mudah adalah pakai yum. Pasang dulu pluginnya
# yum install yum-downloadonly
Selanjutnya tinggal download ke laci baku, yaitu /export/rocks/install/contrib/5.2/x86_64/RPMS
# cd /export/rocks/install/contrib/5.2/x86_64/RPMS
# yum update mc -y --downloadonly --downloaddir=.
Sayang di Rocks 5.2, cara itu masih gagal. Maka terpaksa pakai wget saja
# wget ftp://oss.tf.itb.ac.id/repository/centos/5.3/os/x86_64/CentOS/mc-*.rpm
Menghapus Paket
Kalau normal
# rpm -e nama_paket
Kalau bandel
# rpm -e --allmatches --nodeps nama_paket
Menambah Paket ke semua compute node
Jika paket sudah ada di /export/rocks/install/contrib/5.2/x86_64/RPMS, Tinggal buat file konfigurasi baru
# cd /export/rocks/install/site-profiles/5.2/nodes
# cp skeleton.xml extend-compute.xml
Pada file extend-compute.xml, daftarkan paket dengan menyunting/menambahkan baris:
<package>pvm</package>
Setelah itu buat distribusi baru
# cd /export/rocks/install
# rocks create distro
einstall seluruh compute node
Cara paling aman adalah menggunakan SGE :
# /opt/gridengine/examples/jobs/sge-reinstall.sh
Perintah ini akan menyisipkan pekerjaan prioritas tinggi ke semua node, yang segera akan dieksekusi setelah node yang bersangkutan menyelesaikan pekerjaan sebelumnya.
Kalau langkah diatas kurang meyakinkan, lihat status compute node sbb:
# rocks list host boot
HOST ACTION
dozen: -------
compute-1-3: os
compute-1-1: os
compute-1-2: install
compute-0-3: os
compute-0-2: os
compute-0-1: os
compute-0-0: os
compute-0-4: os
compute-0-5: os
Reinstall sebuah Node
Kita bisa memaksa agar suatu node tertentu diinstall ulang dengan memanggil perintah
# rocks set host boot compute-1-3 action=install
Mencegah Reinstall Otomatis
Dari desainnya, node pada rocks cluster akan reinstall otomatis jika down tidak normal (misal karena listrik terputus). Cara kerjanya adalah:
- Saat boot, file /boot/grub/grub.conf akan diganti dengan file baru yang default boot-nya mode reinstall.
- Jika shutdown normal, /boot/grub/grub-orig.conf (asli) akan dikembalikan sehingga boot masuk mode normal.
Jika sampai reinstall, tentu saja pengaturan manual akan hilang. Untuk mencegahnya, login sebagai root ke node ybs. lalu:
service rocks-grub stop
chkconfig --del rocks-grub
Jika ingin mengembalikan tinggal dibalik:
chkconfig --add rocks-grub
service rocks-grub start
Kesimpulan :dengan menggunakan RockCluster kita dapat membuat super komputer dengan harga murah hanya dengan menggunakan server biasa yang tentunya sudah mendukung fasilitas Virtualization Technology (VT),dan tidak hanya digunakan untuk melakukan perhitungan matematis tetapi dapat berfungsi untuk research2 lainnya.
Sumber : Onno.W.Purbo
http://opensource.telkomspeedy.com/wiki/index.php/RockCluster