Rocks Cluster

Dari PaloDozen

Rock Cluster adalah distro Linux khusus untuk membangun sistem kluster. Distro ini menggunakan basis distro CentOS (turunan RedHat Enterprise Server).

Daftar isi

Lisensi

Rock Cluster dijamin 100% open source.

Mengunduh

Produk ini bisa didowload dari situs http://www.rockscluster.org. Unduh saja versi terbaru yang paket jumbo dalam bentuk iso DVD. Manual lengkap tersedia di http://www.rocksclusters.org/roll-documentation/base/5.2/

Pemasangan

Sebelum pemasangan, siapkan kluster yang minimal terdiri dari:

  • Sebuah Ethernet switch yang kencang (GBE) untuk jaringan internal.
  • Satu atau lebih compute node dengan satu kartu jaringan yang terkoneksi ke jaringan internal.
  • Sebuah front-end, dengan dua kartu jaringan yang terkoneksi ke jaringan eksternal (Internet) dan ke jaringan internal

Front End

Prosedur instalasi sangat sederhana

  • Boot front-end memakai DVD Rock Cluster, saat boot masukkan parameter "build"
  • Ikuti saja petunjuknya. Tahap paling krusial adalah membuat partisi, sebaiknya rancang dengan hati-hati. Saat memilih roll, pilih saja semua, kecuali Xen roll yang hanya layak dipilih kalau benar-benar akan memakai virtualisasi.
  • Saat mengisikan alamt network, sesuaikan pengaturan eth1 dengan kondisi jaringan luar, namun biarkan eth0 apa adanya.

Selesaikan install frontend lalu reboot. Setelah itu langsung bisa install compute node nya.

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.

Selanjutnya, hidupkan compute node satu persatu dengan berurutan. Pada layar Insert Ethers, 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 (*).

Untuk memantau pemasangan, di front-end bisa memanggil:

# rocks-console compute-0-0

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

Pada halaman wordpress, akses menu "Cluster Status", sehingga muncul halaman Ganglia Cluster Monitoring.


Membuka web server

Agar web server bisa diakses oleh publik, edit file /etc/syscon_g/iptables, dan ubah baris berikut

# http and https is allowed for all nodes on the public subnet
-A INPUT -m state --state NEW -p tcp --dport https -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport www -j ACCEPT

Setelah itu restart iptables.

#service iptables restart


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

Sinkronisasi Pemakai

Setelah login ke front-end, seharusnya user tak perlu password lagi untuk mengirim job atau login ke computer node. Jika sampai masih minta password, maka betulkan dari front-end sebagai berikut:

# rocks run host "/opt/rocks/bin/411get --all" 
# 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

dan reinstall seluruh node.

Reinstall 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

Lalu node bersangkutan di-reboot manual seperti biasa.

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


Menghapus Node

Langkah ini diperlukan jika ada node yang salah install, atau ada node yang perlu diganti. Misal yang ingin dihapus adalah compute-0-99, perintahnya adalah:

rocks remove host compute-0-99

Kontributor: Mursito