Latest News
- Cluster UGM tersambung dengan UI.
- Installasi GAMA
- Add Aplication di UGP 4.x
- libXm.so.3: cannot open shared object file
- Konfigurasi Multiuser pada VNC
- Administrasi SGE Menggunakan QMON
- Instalasi Tomcat 4.1+ dan Gridsphere 2.2.10
- Instalasi SGE (SunGridEngine)
- Portal Grid : Resep Awal Memasak
- Membangun infrastruktur HPC cluster dengan Linux
Google Adsense is here
Categories
- CentOS
- Cluster
- Globus
- Grid
- Grid-security
- Gridsphere
- Installation
- Portal
- Portlet
- RocksClusters
- SunGridEngine
- Tomcat
- Umum
Monthly Archives
Membangun infrastruktur HPC cluster dengan Linux
Posted by gentur
Tulisan ini adalah dokumentasi dari infrastruktur cluster yang dibangun oleh tim hpc teknik elektro UGM. Sebelum membahas mengenai teknis pembuatan infrastruktur cluster, terlebih dahulu akan dibahas mengenai perencanaan dan perancangan cluster yang akan dibuat.
Cluster yang kami bangun adalah cluster yang ditujukan untuk HPC atau high performance computing. Cluster ini harus memiliki kemampuan untuk melakukan proses komputasi secara parallel. Mekanisme komputasi paralel yang kami gunakan adalah MPI (Message Passing Interface). Dengan MPI, sebuah proses komputasi dapat di distribusikan ke mesin - mesin komputasi yang lain.
Untuk mengimplementasikan HPC cluster yang memanfaatkan MPI sebagai mekanisme pendistribusian proses, dibutuhkan sebuah dedicated private network. Di dalam jaringan privat tersebut perlu dijalankan service - service yang mengintegrasikan mesin - mesin yang ada pada jaringan tersebut. Service - service tersebut adalah NFS, NIS SSH dan MPI. NFS digunakan sebagai global file system yang dapat diakses oleh semua mesin di dalam jaringan cluster. NIS digunakan sebagai sistem administrasi file - file (passwd,group,user,dll) terpusat termasuk administrasi user. SSH digunakan sebagai sistem komunikasi untuk menjalankan sebuah proses di mesin - mesin komputasi. MPI digunakan sebagai mekanisme pendistribusian proses komputasi.
Jaringan Cluster yang kami bangun memiliki sebuah head node dan dua buah compute node. Head node adalah mesin yang digunakan sebagai inisialisasi proses atau pemberi proses ke mesin - mesin compute node sedangkan compute node adalah mesin - mesin yang digunakan untuk menjalankan suatu proses komputasi yang diberikan oleh head node. Topologi jaringan berbentuk star. Head node memiliki dua buah NIC(Network Interface Card) satu NIC terhubung ke jaringan Cluster dan NIC yang lain terhubung ke jaringan internet supaya dapat diakses oleh user atau pengguna cluster. Compute node hanya memiliki sebuah NIC saja yang menghubungkan ke jaringan cluster. Masing2 mesin di dalam jaringan cluster kami beri sistem penamaan pada nama host-nya. Head node kami berinama cluster0, dua compute node yang lain kami berinama cluster1 dan cluster2. Untuk memberikan nama pada mesin cukup dengan mengedit file /etc/sysconfig/network pada bagian HOSTNAME=”nama host” (beda distro linux beda letak file konfigurasinya).
Mesin Head node perlu mengetahui nama-nama host mesin - mesin komputasi, untuk itu perlu di konfigurasi file /ets/hosts dengan memberikan nama hosts dan ip dari mesin - mesin komputasi (baca man hosts).
Sistem operasi yang digunakan di dalam cluster sebaiknya sama. Kami menggunakan Linux Fedora Core 6 (karena pada waktu mau nginstall adanya cuma Fedora hehehehe). Penggunaan sistem operasi yang sama dimaksudkan untuk mempermudah di dalam administrasi sistem.
1. NFS server
Cluster membutuhkan sebuah file system yang dapat diakses secara global oleh semua mesin di dalam jaringan cluster. Untuk itu digunakan NFS(Network File System). NFS adalah sebuah aplikasi client server yang digunakan untuk mengeksport sebuah local file system ke jaringan sehingga file system tersebut dapat diakses oleh mesin2 yang lain.Di dalam cluster yang kami buat, Head node kami jadikan NFS server sedangkan Compute node sebagai NFS client. Directory yang dieksport adalah /home dan /usr/local. Kedua directory tersebut terletak pada partisi hard disk yangterpisah. Di bawah ini adalah partisi hard disk Head node kami:
/dev/sda1 / ext3 9.5G
/dev/sda2 /usr/local ext3 29G
/dev/sda3 /home ext3 29G
/dev/sda6 /var ext3 1.9G
/dev/sda7 /tmp ext3 1.9G
swap 2G
Untuk menjalankan sebuah NFS server diperlukan service portmap,nfsd,mountd (semoga benar, hehehe). File konfigurasi
yang perlu diubah adalah /etc/exports, /etc/hosts.allow dan /etc/hosts.deny
kofigurasi /etc/exports:
#mengeksport /home
/home 192.168.0.0/24(rw,no_root_squash,sync)
#mengeksport /usr/local
/usr/local 192.168.0.0/24(ro,no_root_squash,sync)
konfigurasi /etc/hosts.allow#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd' server.
#
portmap: 192.168.0.0/255.255.255.0
konfigurasi /etc/hosts.deny
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
portmap: ALL
Setelah semua file diatas dikonfigurasi, restart service portmap dan nfs
#/etc/init.d/portmap restart
#/etc/init.d/nfs restart
untuk melihat apakah file system telah berhasil dieksport dapat dilakukan dengan perintah showmount -e localhostatau dengan melihat apakah service - service nfs, portmap dan mountd berjalan dengan memberikan perintah rpcinfo -p.
2. NFS client
NFS client dijalankan oleh mesin komputasi. Sebelum mengimpor file sistem dari NFS server directory /home dan/usr/local perlu diback up.
#mv /home /home.old
#mv /usr/local /usr/local.old
Setelah melakukan back up, buat directory baru /home dan /usr/local.
#mkdir /home
#mkdir /usr/local
Setelah NFS server telah berjalan perlu dilakukan konfigurasi pada NFS client pada mesin - mesin komputasi.Edit file /etc/fstab pada setiap mesin komputasi.
192.168.0.1:/home /home nfs rw,sync,hard,intr 0 0
192.168.0.1:/usr/local /usr/local nfs ro,sync,hard,intr 0 0
3. NIS server
NIS atau Network Information System adalah sebuah servis di dalam jaringan yang memungkinkan untuk melakukan manajemen user dan konfigurasi - konfigurasi file secara terpusat. File - file yang dapat diatur secara terpusat diantaranya adalah /etc/passwd, /etc/shadow, /etc/groups, /etc/hosts, /etc/services, /etc/networks, /etc/rpc, /etc/protocols,/etc/aliases.
Komputer head node akan dijadikan sebagai NIS server sehingga mempermudah dalam melakukan pengaturan terhadap mesin - mesin compute node. Dengan adanya NIS server, penambahan node juga akan lebih mudah.
untuk membuat head node sebagai NIS server diperlukan paket paket aplikasi sebagai berikut.*ypbind*portmap*ypserv*yp-tools*nscd
konfigurasi file /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster0
NISDOMAIN=”NIGHTLOGIN”
konfigurasi file /etc/yp.conf
domain NIGHTLOGIN server 127.0.0.1
konfigurasi /etc/nsswitch.conf
passwd: files nis
shadow: files nis
group: files nis
konfigurasi /etc/ypserv.conf
dns: no
files: 30
slp: no
slp_timeout: 3600
xfr_check_port: yes
* : * : shadow.byname : port
* : * : passwd.adjunct.byname : port
setelah file - file tersebut dikonfigurasi lakukan langkah2 berikut:
# nisdomainname NIGHTLOGIN
# /etc/init.d/portmap restart
# /etc/init.d/yppasswdd start
# service ypserv start
# /usr/lib/yp/ypinit -m
# make -c /var/yp
# /etc/init.d/ypbind start
4. NIS Client
NIS client adalah mesin2 komputasi.Untuk menjalankan NIS client diperlukan service2* ypbind* portmap* yp-tools* nscd
konfigurasi file /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster0
NISDOMAIN=”NIGHTLOGIN”
konfigurasi file /etc/sysconfig/yp.conf
domain NIGHTLOGIN server 192.168.0.1
konfigurasi file /etc/nsswitch.conf
passwd: files nis
shadow: files nis
group: files nis
setelah mengkonfigurasi file - file diatas jalankan perintah:
#nisdomainname NIGHTLOGIN
#/etc/init.d/portmap start
#/etc/init.d/ypbind start
#/etc/init.d/nscd start
#/etc/init.d/yppasswd start
jika ingin menambah user di dalam jaringan cluster, cukup dengan menambah user di mesin head node kemudian lakukan perintah make di directory /var/yp
5.SSH
SSH atau Secure Shell digunakan sebagai sarana komunikasi antar proses di dalam cluster. Head node dan compute node harus saling percaya satu sama lain sehingga tidak perlu dilakukan proses authentikasi jika head node akan berkomunikasi dengan compute node. Head node harus membuat publik dan private key untuk diberikan ke mesin2 komputasi.
headnode$mkdir .ssh
headnode$cd .ssh
headnode$ssh-keygen -t rsa (akan muncul isian2, tekan enter saja sampai selesai)
headnode$cp id_rsa.pub authorized_keys
(Kita tidak perlu melakukan pengkopian id_rsa.pub ke mesin2 komputasi lain karena user dan directory di setiap mesinadalah sama).
setelah menjalankan perintah diatas, head node dapat melakukan ssh ke mesin komputasi tanpa authentikasi. Konfigurasi SSH tersebut di atas harus dilakukan pada setiap user.
6. LAM-MPI
LAM-MPI adalah salah satu aplikasi yang mengimplementasikan MPI. Terdapat aplikasi lain yang mengimplementasikan MPI, diantaranya adalah OpenMPI dan MPICH. LAM-MPI dapat di download dari www.lam-mpi.org. Instalasi cukupdilakukan oleh head node saja.
Instalasi LAM-MPI:
#tar -xzvf lam-7.1.4.tar.gz
#./configure –prefix=/usr/local (pastikan semua aplikasi yang akan dijalankan oleh semua mesin komputasi
diinstal di prefix=/usr/local)
#make
#make install
Setelah selesai menginstall LAM MPI, edit file /usr/local/etc/lam-bhost.def dengan memberikan nama-nama host setiap mesin yang ada di dalam cluster. Setelah itu jalankan lamboot -v. LAM-MPI hanya dapat dijalankan oleh user biasa. Untuk mencoba aplikasi MPI silakan cari tutorial tentang pemrogramman mpi. Good luck.
–capeeee deeee–
~ YUKK ~
Download artikelnya di sini :
Implementasi Linux Fedora pada Pengembangan Cluster
7 Responses to “Membangun infrastruktur HPC cluster dengan Linux”
Leave a Reply






February 1st, 2008 at 8:16 pm
[…] Membangun infrastruktur HPC cluster dengan Linux […]
February 8th, 2008 at 10:04 am
Makasih Tutorialnya, saya akan coba dulu. Tapi sekarang saya masih KKN di daerah pelosok…Kalo ada yang tidak dimengerti nanti saya boleh tanya kan???
April 23rd, 2008 at 11:05 am
assalamualaikum mas kalau NFS itu bisa gak diakses oleh os yang berbeda misal window? caranya gimana? apa pakai LDAP atau samba? toloong mas di tulis diblognya.
oh ya mas saya di lab juga bikin grid di STTTelkom berbasis SGE, GLobus grid saya bisa di gabungin gak dengan grid te ugm? bisa minta email atau no hpnya gak kirim ke email saya ya?.
makasih ya?
May 3rd, 2008 at 1:58 pm
oh ya, pernah bangun HPC dengan PVM g? dan apa bedanya dengan LAM/MPI???
May 6th, 2008 at 8:41 am
Kalo NFS setahu saya nggak bisa diakses dengan windows. UI memakai LDAP untuk memanage user dalam cluster. Kalo mau nggabungin ke sistem grid dengan Elektro bisa, hanya saja cluster di elektro belum matang 100% sekarang lagi dikembangkan portal gridnya.
Kalo pake PVM saya belum pernah. Bedanya dengan MPI saya kurang begitu faham, hanya saja kalo dilihat dari segi pemrogramman parallel, library dan fungsi-fungsi yang dipake berbeda. Saya sarankan untuk memakai MPI saja karena MPI dijadikan standard untuk pemrograman paralel.
Semoga penjelasan saya cukup membantu teman2.
May 15th, 2008 at 4:18 pm
mas,pernah nyoba cluster pake DIPC gak?kalo pernah,bisa tolong tunjuk ajar?.BETe gw,dah 3 ming nyobain,ga bisa.OS nya ubuntu.maksih
May 21st, 2008 at 2:02 pm
Salam, untuk High Availability cluster kira2 ada nggk ya yang free, lengkap sama guidenya dan bisa dijalani di RHEL. minta pencerahannya ya:-),
Thanks before