Monday, August 01, 2011

Grid Computing dengan menggunakan RockCluster

Sebelum membahas lebih dalam tentang RockCluster lebih baik kita mencari tau apa sih itu Grid Computing.

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

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

No comments:

Post a Comment

Terima kasih atas komentar yang anda sampaikan , sehingga dapat menambah wawasan saya sebagai penulis dan membuat blog ini semakin berguna banyak orang