BAB III - potensi utama repository

advertisement
BAB III
ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas perancangan sistem cluster yang akan digunakan
sebagai infrastruktur parallel processing. Cluster Linux dibuat menggunakan tiga
buah komputer dengan salah satu komputer digunakan sebagai head node dan dua
yang lain digunakan sebagai compute node. Masing-masing node menggunakan
sistem operasi Linux.
III.1 Analisis Kebutuhan Sistem Cluster
Cluster yang dibangun dalam penelitian ini adalah cluster yang
didedikasikan untuk komputasi paralel. Cluster tersebut dibangun secara homogen
yaitu dengan menyeragamkan sistem operasi dan menggunakan perangkat keras
yang tidak jauh berbeda pada masing-masing komputer.
Untuk membangun sebuah cluster yang didedikasikan untuk komputasi
paralel diperlukan beberapa persyaratan yang ditunjukkan oleh poin-poin sebagai
berikut :
1.
Cluster harus memiliki kemampuan mendistribusikan proses komputasi dari
mesin head node ke mesin-mesin komputasi yang lain.
2.
Cluster harus memiliki sistem pengaturan file-file data di setiap node yang
terpusat sehingga memudahkan dalam administrasi sistem.
3.
Cluster harus memiliki file system global yang dapat diakses oleh semua node
untuk keperluan pengaksesan berkas-berkas.
31
32
4.
Head node harus dapat berkomunikasi dengan mesin-mesin node tanpa harus
melakukan proses otentikasi.
5.
Cluster harus memiliki sebuah sistem untuk memonitor proses-proses dan
beban komputasi baik di masing-masing mesin komputasi maupun beban
komputasi dalam satu cluster atau seluruh node.
Dari persyaratan-persyaratan yang ditunjukkan oleh poin-poin di atas,
dapat diambil beberapa solusi sebagai berikut :
1.
Pendistribusian proses komputasi menggunakan LAM/MPI. LAM/MPI
adalah aplikasi yang mengimplementasikan MPI.
2.
Sistem pengaturan user dan file-file konfigurasi menggunakan Network
Information System (NIS). NIS adalah sistem basis data yang terdistribusi
yang menggantikan data file-file konfigurasi di masing-masing node sehingga
pengaturan node-node dapat dilakukan secara terpusat.
3.
File system global menggunakan Network File System (NFS). NFS adalah file
system yang dieksport oleh sebuah server untuk diakses oleh client-client
yang diijinkan oleh server.
4.
Proses komunikasi antara head node dengan node dilakukan dengan Secure
Shell (SSH).
5.
Sistem pemonitoran proses yang sedang dikerjakan oleh masing-masing node
menggunakan ganglia. Ganglia adalah aplikasi pemonitoran proses dan beban
komputasi yang dikerjakan oleh cluster
Tabel III.1 menunjukkan ringkasan persyaratan yang harus dipenuhi untuk
33
membangun sebuah cluster dengan solusi yang dapat diambil untuk memenuhi
persyaratan tersebut.
Tabel III.1 Tabel Persyaratan dan Solusi Dalam Membangun Cluster
Persyaratan
Solusi
Kemampuan dalam mendistribusikan Menggunakan LAM/MPI
proses komputasi
Sistem pengaturan file-file konfigurasi Menggunakan NIS
sistem secara terpusat
File system yang dapat diakses oleh Menggunakan NFS
semua node
Sistem komunikasi antar node yang Menggunakan SSH
saling percaya
Sistem pemantauan proses
dijalankan oleh semua node
yang Menggunakan GANGLIA
Sistem operasi yang digunakan adalah sistem operasi Linux karena sistem
operasi tersebut dianggap mudah untuk mengimplementasikan solusi-solusi yang
ditunjukkan oleh poin-poin diatas. Linux juga merupakan sistem operasi yang
bersifat open source sehingga dapat digunakan secara bebas dan gratis.
Distro Linux yang dipilih adalah Fedora Core 16 karena distro ini banyak
yang menggunakan, sehingga banyak referensi yang dapat digunakan sebagai
acuan.
III.1.1 Head Node
Head node merupakan komputer di dalam sebuah cluster yang digunakan
untuk mendelegasikan tasks atau tugas-tugas yang akan dikerjakan oleh compute
node. Komputer ini juga digunakan sebagai tempat bagi pengguna cluster untuk
34
mengakses cluster sehingga pengguna dapat memberikan tugas-tugas komputasi
ke dalam cluster.
Head node harus dapat diakses melalui jaringan, sehingga head node
membutuhkan dua buah ethernet card, satu ethernet card terhubung dengan
jaringan publik dan yang lain terhubung ke jaringan prifat atau compute node.
Selain sebagai tempat akses dan mendelegasikan tugas ke compute node,
head node juga harus menjalankan servis-servis diantaranya: NFS, NIS, DHCP,
HTTP, SSH. Servis-servis ini diperlukan oleh head node untuk mengintegrasikan
node-node di dalam cluster.
Head node menggunakan perangkat keras sebagai berikut :
1.
Hard disk dengan kapasitas 80 Giga Byte.
2.
RAM dengan kapasitas 2 Giga Byte.
3.
Prosesor Intel Pentium Dual Core .
Mesin yang digunakan sebagai head node harus memiliki spesifikasi yang
lebih tinggi dibanding dengan mesin-mesin yang digunakan sebagai compute
node. Hal tersebut dikarenakan mesin head node melakukan komputasi yang lebih
besar dari pada mesin compute node karena mesin head node harus menjalankan
service-service yang tidak dijalankan oleh compute node.
III.1.2 Compute Node
Compute node adalah komputer pekerja yang menerima task dari head
node dan memroses task tersebut. Komputer ini tidak dapat diakses melalui
jaringan karena hanya terhubung dengan jaringan privat. Komputer yang
35
difungsikan sebagai compute node hanya dapat diakses oleh head node untuk
melakukan proses komputasi.
File-file konfigurasi yang berkaitan dengan administrasi pengguna sistem
seperti /etc/passwd, /etc/group, dan /etc/shadow berada terpusat di head node.
Mekanisme konfigurasi terpusat tersebut dilakukan dengan menggunakan
Network Information System (NIS). NIS memungkinkan komputer-komputer
compute node akan memiliki pengguna sistem yang seragam dengan pengguna
sistem yang dibuat di komputer head node. Penggunaan NIS tersebut tentu akan
memudahkan
administrator
sistem
dalam
melakukan
penambahan
atau
penghapusan pengguna di dalam sistem cluster.
Compute node menggunakan perangkat keras sebagai berikut :
1.
Hard disk dengan kapasitas 80 Giga Byte.
2.
RAM dengan kapasitas 1 Giga Byte.
3.
Prosesor Intel Pentium .
Untuk membangun membangun sebuah cluster, diperlukan langkah-
langkah yang sistematis dan berurutan. Langkah-langkah tersebut ditunjukkan
oleh Gambar III.1.
36
Gambar III.1 Langkah-langkah Membangun Cluster
III.2
Infrastruktur Jaringan Cluster
Cluster memiliki jaringan sendiri yang terpisah dengan jaringan luar. Hal
tersebut dimaksudkan agar compute node tidak dapat diakses dari luar jaringan
sehingga kinerja cluster dalam melakukan parallel processing dapat maksimal.
Pengguna hanya dapat mengakses cluster melalui head node saja.
Komputer-komputer yang digunakan sebagai compute node tidak perlu diakses
oleh pengguna secara langsung sehingga pengguna hanya memberikan tugas
komputasi tanpa perlu melakukan konfigurasi sistem ke compute node.
37
Internet
Front end node
Switch
Compute node 1
Compute node 2
Gambar III.2 Topologi Jaringan Cluster
Gambar III.2 menunjukkan komputer Head node dan dua compute node
yang saling terhubung satu sama lain dan membentuk sebuah jaringan privat
dengan topologi bintang. Masing-masing node diberi sebuah IP privat kelas C
(192.168.0.1 – 192.168.0.255). Komputer head node diberi IP 192.168.0.1,
komputer compute node 1 diberi IP 192.168.0.2, dan komputer compute node 2
diberi IP 192.168.0.3 .
Diperlukan pula sistem penamaan nama host untuk node-node sehingga
mempermudah dalam mengingat nama node-node di dalam cluster. Pemberian
nama host dilakukan dengan mengedit file konfigurasi /etc/sysconfig/network di
setiap node. Pada bagian HOSTNAME harus diisi dengan nama host. Node-node
di dalam cluster yang dibangun dalam penelitian ini diberinama cluster0 untuk
head node, cluster1 untuk compute node 1, dan cluster2 untuk compute node 2.
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster0
Gambar III.3 File Konfigurasi /etc/sysconfig/network pada Head Node
Node-node yang berada di dalam cluster harus mengenali nama host antar
node. Supaya node dapat saling mengenali nama host, masing-masing node harus
38
mengedit file /etc/hosts dengan mencantumkan nomor IP dan nama host node
yang berada di dalam cluster. File /etc/hosts berfungsi untuk memetakan alamat
IP ke sebuah nama yang mudah untuk dibaca dan diingat. File ini berbentuk tabel
dengan pemisah antar kolom adalah spasi atau tab. Kolom pertama adalah nomor
Internet Protokol (IP), kolom kedua adalah nama host, kolom ketiga adalah nama
alias host.
Konfigurasi /etc/hosts pada komputer head node sedikit berbeda dengan
komputer compute node. Komputer head node harus menyertakan nomor IP dan
nama host komputer-komputer compute node.
127.0.0.1
192.168.0.1
192.168.0.2
192.168.0.3
localhost
cluster0.if cluster0
cluster1.if cluster1
cluster2.if cluster2
Gambar III.4 File Konfigurasi /etc/hosts pada Cluster0 (Head Node)
Sedangkan konfigurasi /etc/hosts pada compute node hanya disertakan
nama host compute node itu sendiri dan nama host head node.
127.0.0.1
localhost
192.168.0.1 cluster0.if cluster0
192.168.0.2 cluster1.if cluster1
Gambar III.5 File Konfigurasi /etc/hosts pada Cluster1 (Compute Node 1)
127.0.0.1
localhost
192.168.0.1 cluster0.if cluster0
192.168.0.3 cluster2.if cluster2
Gambar III.6 File Konfigurasi /etc/hosts pada Cluster2 (Compute Node 2)
III.3
Integrasi Antar Node
39
Integrasi di dalam cluster tidak hanya dilakukan secara fisik saja yaitu
dengan menghubungkan setiap node ke dalam sebuah jaringan interkoneksi. Akan
tetapi integrasi juga dilakukan diantara sistem pada masing-masing node. Integrasi
sistem yang dimaksud adalah integrasi sistem file, integrasi administrasi, integrasi
komunikasi antar node, dan integrasi penyampaian pesan untuk komputasi paralel.
Masing-masing node di dalam cluster harus menjalankan servis-servis
yang mengimplementasikan integrasi sistem file, integrasi administrasi, integrasi
komunikasi di dalam cluster, dan penyampaian pesan. Servis-servis yang
berkaitan dengan integrasi sistem file, integrasi sistem administrasi, dan integrasi
komunikasi adalah Network File System (NFS), Network Information System
(NIS), Secure Shell (SSH), dan Local-Area-Network Multi-Computer/Message
Passing Interface (LAM/MPI).
Komputer head node difungsikan sebagai server NFS dan NIS, sedangkan
node yang lain difungsikan sebagai client NFS dam NIS. Untuk SSH, komputer
head node berfungsi sebagai client dan compute node berfungsi sebagai server.
Hal ini dimaksudkan karena LAM/MPI mensyaratkan bahwa head node harus
dapat login ke compute node melalui SSH untuk menjalankan aplikasi paralel
tanpa harus melakukan otentikasi terlebih dahulu.
Pengintegrasian sistem di dalam cluster sangat diperlukan untuk
mempermudah penggunaan cluster baik bagi administrator sistem maupun
pengguna. Dengan adanya integrasi sistem ini, pengguna maupun administrator
cluster hanya perlu mengakses head node untuk melakukan proses komputasi
paralel maupun administrasi sistem.
40
III.3.1 Network File System (NFS)
Perancangan NFS untuk cluster sangat diperlukan. Komputer head node
harus menyediakan sejumlah ruang di dalam hard disk untuk dijadikan sebagai
NFS. Hard disk tersebut harus dipartisi sesuai dengan kebutuhan head node
maupun compute node.
Gambar III.7 menunjukkan partisi hard disk pada
komputer head node.
/dev/sda1
/dev/sda2
/dev/sda3
swap
/
/usr/local
/home
ext3
ext3
ext3
6.5G
1G
1G
2G
2MB
biosboot
Gambar III.7 Partisi Hard Disk pada Head Node
Partisi hard disk pada head node yang akan difungsikan sebagai NFS
adalah /dev/sda2 dan /dev/sda3. Kedua partisi tersebut memiliki label /usr/local
dan /home. Sistem file /usr/local dan /home di dalam Linux digunakan sebagai
tempat menyimpan aplikasi-aplikasi tambahan yang diinstal ke dalam sistem dan
sebagai directory yang digunakan untuk menyimpan berkas-berkas pengguna
sistem kecuali root. Dengan demikian semua node memiliki satu directory
/usr/local dan /home yang diakses melalui NFS. Instalasi aplikasi-aplikasi
tambahan yang dapat dijalankan oleh semua node dan penambahan directory
pengguna cukup dilakukan pada head node.
a.
NFS Server (Head Node)
Untuk menjalankan NFS server diperlukan servis-servis portmap, nfsd,
41
dan mount. Servis-servis tersebut harus berjalan secara background dan hidup
pada saat komputer menyala.
Selain menjalankan servis-servis portmap, nfsd, dan mount perlu juga
dilakukan pengeditan file-file konfigurasi /etc/exports, /etc/hosts.deny, dan
/etc/hosts.allow.
/home
/usr/local
192.168.0.0/24(rw,no_root_squash,sync)
192.168.0.0/24(ro,no_root_squash,sync)
Gambar III.8 File Konfigurasi File /etc/exports
File konfigurasi /etc/exports digunakan untuk mendefinisikan directorydirectory yang akan diekspor oleh NFS server dan komputer-komputer yang
diperbolehkan untuk mengakses NFS server. Di dalam Gambar III.8 /home dan
/usr/local didefinisikan sebagai NFS yang akan diakses oleh NFS client yang
memiliki nomor IP antara 192.168.0.1 – 192.168.0.254 .
Pada /home terdapat parameter rw,no_root_sqash,sync. Parameter rw
menunjukkan bahwa directory /home dapat diakses oleh NFS client dengan hak
akses baca dan tulis. Parameter no_root_squash menunjukkan bahwa root atau
super user yang berada pada komputer yang bertindak sebagai NFS client
diperlakukan sebagaimana root pada NFS server.
Parameter sync mencegah
terjadinya kerusakan pada data jika server tiba-tiba reboot. Parameter-parameter
pada /usr/local hampir sama dengan /home. Perbedaannya hanya terletak pada
parameter ro, parameter ro tersebut menunjukkan bahwa NFS client hanya
memiliki akses baca.
Selain file konfigurasi /etc/exports diperlukan juga pengeditan file
konfigurasi /etc/hosts.deny dan /etc/hosts.allow. Kedua file konfigurasi tersebut
42
berfungsi sebagai penentu pengaksesan servis-servis yang terdapat di dalam
server oleh komputer-komputer lain. Cara kerja kedua file ini ditunjukkan oleh
poin-poin di bawah ini :
1.
Server akan melakukan pengecekan terhadap file /etc/hosts.allow untuk
melihat apakah komputer yang mengakses sesuai dengan daftar komputer
yang diizinkan untuk mengakses. Jika komputer tersebut terdapat di dalam
daftar maka komputer tersebut diizinkan untuk mengakses.
2.
Jika komputer yang mengakses tidak terdapat pada daftar /etc/hosts.allow
maka server akan melakukan pengecekkan terhadap file /etc/hosts.deny. Jika
komputer yang mengakses terdapat di dalam daftar /etc/hosts.deny maka
komputer tersebut tidak diberikan izin akses.
3.
Jika komputer yang mengakses tidak terdapat pada file /etc/hosts.allow dan
/etc/hosts.deny maka komputer tersebut diberikan izin untuk mengakses.
portmap: 192.168.0.0/255.255.255.0
Gambar III.9 File Konfigurasi /etc/hosts.allow
Gambar III.9 menunjukkan konfigurasi /etc/hosts.allow. Baris portmap:
192.168.0.0/255.255.255.0 menunjukkan bahwa semua komputer dengan rentang
nomor IP tersebut diberikan izin untuk mengakses servis portmap pada NFS
server.
portmap: ALL
Gambar III.10 File Konfigurasi /etc/hosts.deny
Gambar III.10 menunjukkan konfigurasi /etc/hosts.deny. Baris portmap:
ALL menunjukkan bahwa semua komputer tidak diizinkan untuk mengakses
43
servis portmap pada NFS server.
Setelah file /etc/exports, /etc/hosts.allow, dan /etc/hosts.deny dikonfigurasi
dengan benar, langkah selanjutnya adalah menjalankan servis nfsd dan portmap
melalui terminal. Servis-servis tersebut harus dijalankan oleh head node pada saat
komputer menyala.
#/etc/init.d/portmap restart
#/etc/init.d/nfs restart
Gambar III.11 Menjalankan Servis Portmap dan Nfsd
b. NFS Client (Compute node)
NFS client dijalankan oleh compute node dengan melakukan mounting
sistem file yang diekspor oleh NFS server. Directory yang akan di-mount oleh
NFS client adalah /usr/export dan /home. Directory /usr/local yang di-mount oleh
compute node berisi aplikasi-aplikasi tambahan yang diinstal oleh head node
sehingga pada compute node tidak perlu menginstall aplikasi tambahan satupersatu. Sedangkan pada directory /home berisi home directory pengguna sistem
sehingga pengguna sistem yang berada pada compute node memiliki home
directory yang sama dengan head node. Mounting home directory ini sangat
penting karena berkas-berkas yang dibutuhkan pengguna untuk melakukan
komputasi paralel akan disimpan di dalam directory /home.
Sebelum melakukan proses mounting NFS server perlu dilakukan backup
directory /usr/local dan /home yang berada pada sistem file lokal di masingmasing compute node.
#mv /home /home.old
#mv /usr/local /usr/local.old
#mkdir /home
#mkdir /usr/local
44
Gambar III.12 Backup Directory /usr/local dan /home
Proses mounting NFS harus dilakukan pada saat komputer-komputer
compute node menyala. Cara ini dilakukan dengan melakukan pengeditan file
konfigurasi /etc/fstab. Fil
e /etc/fstab adalah file konfigurasi yang berisi
tabel sistem file yang di-mount oleh sistem pada saat komputer menyala. File ini
berbentuk tabel dengan tiap-tiap kolom dipisahkan oleh spasi atau tab.
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
Gambar III.13 File Konfigurasi /etc/fstab
Kolom pertama berisi NFS yang diekspor oleh NFS server. Kolom kedua
berisi directory tempat NFS server di-mount. Kolom ketiga berisi tipe file dari
sistem file yang di-mount. Kolom keempat berisi parameter-parameter. Parameterparameter yang dipakai di dalam file konfigurasi /etc/fstab mirip dengan
parameter yang digunakan pada /etc/exports. Pada file konfigurasi /etc/fstab yang
ditunjukkan oleh Gambar III.13 terdapat parameter hard dan intr. Parameter hard
akan memberitahukan bahwa program yang sedang mengakses NFS yang dimount akan hang jika server mengalami kegagalan. Proses tersebut tidak dapat
diinterupsi atau dihentikan. Parameter intr mencegah terjadinya hang pada
program yang sedang mengakses NFS dengan memberikan interupsi. Jadi keduap
parameter hard dan intr perlu diberikan untuk mencegah program hang. Kolom
kelima dan keenam tidak memiliki pengaruh yang signifikan sehingga dapat diisi
dengan nilai 0. Setelah file /etc/fstab dikonfigurasi dengan benar, sistem akan
melakukan mounting NFS saat booting.
45
III.3.2 Network Information System (NIS)
File-file konfigurasi di dalam cluster yang diatur oleh NIS adalah
/etc/passwd, /etc/group, dan /etc/shadow. Ketiga file konfigurasi tersebut
berkaitan dengan sistem administrasi pengguna. Jika di dalam cluster akan
ditambahkan pengguna maka cukup dengan menambahkan pengguna pada head
node dan kemudian NIS server akan mendistribusikan konfigurasi pada file-file
/etc/passwd, /etc/group, dan /etc/shadow ke node-node yang lain sehingga nama
pengguna dapat diseragamkan di semua node. Dengan adanya keseragaman
identitas pengguna sistem di dalam cluster, administrasi sistem menjadi lebih
mudah untuk dilakukan.
a.
NIS Server (Head Node)
Di dalan cluster, head node difungsikan sebagai NIS server. Untuk
menjalankan NIS server, head node harus memiliki aplikasi ypbind, portmap,
ypserv, yp-tools, dan ncsd. Selain itu head node juga perlu mengedit beberapa
file-file konfigurasi yang berkaitan dengan NIS. File konfigurasi tersebut adalah
/etc/sysconfig/network, /etc/yp.conf, /etc/ypserv.conf, dan /etc/nsswitch.conf.
Sebuah NIS harus memiliki paling tidak satu domain. Domain di dalam
NIS digunakan sebagai identitas terhadap sekumpulan file-file konfigurasi yang
diatur di
dalam
NIS. Domain NIS
ini
didefinisikan
di
dalam
file
/etc/sysconfig/network.
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster0
NISDOMAIN=”SERVER.CLUSTER”
Gambar III.14 File Konfigurasi /etc/sysconfig/network pada Head Node
46
Pendefinisian file-file konfigurasi yang akan diatur oleh NIS dilakukan
dengan mengedit file /etc/nsswitch.conf. Bagian yang perlu diedit atau
ditambahkan di dalam file /etc/nsswitch.conf ditunjukkan oleh Gambar III.15.
passwd:
files nis
shadow:
group:
files nis
files nis
Gambar III.15 File Konfigurasi /etc/nsswitch.conf pada Head Node
File konfigurasi yang lain adalah yp.conf dan ypserv.conf. Yp.conf
digunakan oleh NIS client untuk mendefinisikan NIS server yang digunakan. NIS
server juga perlu mengkonfigurasi file ini karena NIS server juga menggunakan
konfigurasi NIS. Sedangkan ypserv.conf hanya dikonfigurasi pada NIS server.
domain NIGHTLOGIN server 192.168.0.1
Gambar III.16 File Konfigurasi /etc/yp.conf pada Head Node
Konfigurasi yp.conf pada Gambar III.16 adalah konfigurasi yp.conf pada
head node yang menunjuk domain dan NIS server pada dirinya sendiri. NIS
server juga melakukan binding dengan dirinya sendiri untuk mendapat layanan
NIS.
dns: no
files: 30
slp: no
slp_timeout: 3600
xfr_check_port: yes
* : * : shadow.byname : port
* : * : passwd.adjunct.byname : port
Gambar III.17 File Konfigurasi /etc/ypserv.conf pada Head Node
Setelah file-file konfigurasi dikonfigurasi dengan benar, langkah
selanjutnya adalah menjalankan aplikasi NIS server.
47
#
#
#
#
#
#
#
#
#
#
#
#
nisdomainname NIGHTLOGIN
systemctl starts rpcbind.server
systemctl starts nfs-server.server
systemctl starts nfs-lock.server
systemctl starts nfs-idmap.server
systemctl enable rpcbind.server
systemctl enable nfs-server.server
systemctl enable nfs-lock.server
systemctl enable nfs-idmap.server
/usr/lib/yp/ypinit -m
make -c /var/yp
/etc/init.d/ypbind start
Gambar III.18 Perintah-Perintah Menjalankan NIS Server
Selain menjalankan perintah yang ditunjukkan oleh Gambar 3.18 perlu
pula menjalankan servis portmap, yppasswd, ypinit, dan ypbind pada saat
komputer booting. Hal ini dimaksudkan agar NIS server selalu siap memberikan
layanan kepada NIS client atau node-node di dalam cluster.
b. NIS Cient (Compute Node)
Compute node difungsikan sebagai NIS client. NIS client melakukan
binding menggunakan ypbind dengan NIS server untuk mendapat layanan dari
NIS server. Selain ypbind, servis-servis lain yang diperlukan oleh NIS client
adalah portmap, yp-tools, dan ncsd.
File-file konfigurasi yang perlu untuk dilakukan konfigurasi yang
berkaitan dengan NIS client adalah /etc/sysconfig/network, /etc/yp.conf dan
/etc/nsswitch.conf.
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster1
NISDOMAIN=”SERVER.CLUSTER”
Gambar III.19 File Konfigurasi /etc/sysconfig/network pada Compute Node
File konfigurasi yang ditunjukkan oleh Gambar III.19 adalah contoh file
konfigurasi pada cluster1 yaitu salah satu compute node di dalam cluster. File
48
konfigurasi untuk compute node yang lain hanya berbeda pada bagian
HOSTNAME saja karena bagian tersebut adalah nama host untuk masing-masing
compute node.
domain SERVER.CLUSTER server 192.168.0.1
Gambar III.20 File Konfigurasi /etc/yp.conf pada Compute Node
File konfigurasi yang ditunjukkan oleh Gambar III.20 adalah file
konfigurasi /etc/yp.conf pada semua node yang menggunakan layanan NIS di
dalam jaringan cluster.
passwd:
shadow:
group:
files nis
files nis
files nis
Gambar III.21 File Konfigurasi /etc/nsswitch.conf pada Compute Node
File /etc/nsswitch.conf juga perlu dikonfigurasi untuk menentukan file-file
apa
saja
yang
digunakan
sebagai
konfigrasi
sistem.
Di
dalam
file
/etc/nsswitch.conf yang ditunjukkan oleh Gambar III.21 terdapat parameter nis
yang mengindikasikan bahwa file passwd, shadow, dan group menggunakan
konfigurasi dari NIS server.
Setelah file-file dikonfigurasi dengan benar, langkah selanjutnya adalah
menjalankan servis-servis yang dibutuhkan dalam proses binding dengan NIS
server. Perintah-perintah yang digunakan untuk melakukan binding dengan NIS
server ditunjukkan oleh Gambar III.22.
#nisdomainname SERVER.CLUSTER
#/etc/init.d/portmap start
#/etc/init.d/ypbind start
#/etc/init.d/nscd start
#/etc/init.d/yppasswd start
Gambar III.22 Perintah-printah Untuk Melakukan Binding Dengan NIS Server
49
III.3.3 Secure Shell (SSH)
Kunci privat dan publik harus dibuat oleh masing-masing pengguna sistem
cluster. Pembuatan kunci privat dan public cukup dilakukan pada head node saja.
Pengguna tidak perlu membuat salinan kunci publik ke masing-masing compute
node karena home directory yang digunakan oleh pengguna adalah NFS, sehingga
semua pengguna mengakses home directory yang sama. Gambar III.23
menunjukkan langkah-langkah pembuatan kunci privat dan public dengan SSH.
pengguna@cluster0$mkdir .ssh
pengguna@cluster0$cd .ssh
pengguna@cluster0$ssh-keygen -t rsa
pengguna@cluster0$cp id_rsa.pub authorized_keys
Gambar III.23 Pembuatan Kunci Publik dan Privat Menggunakan SSH
III.3.4 Local Area Multicomputer/Message Passing Interface (LAM/MPI)
Aplikasi LAM/MPI harus diinstal ke dalam cluster untuk dapat digunakan.
Proses instalasi cukup dilakukan pada head node dengan directory instalasi
diletakkan di /usr/local. Dengan meletakkan directory instalasi LAM/MPI di
/usr/local, secara otomatis LAM/MPI juga akan terinstal pada semua node di
dalam cluster karena /usr/local adalah NFS yang diakses oleh semua node.
Langkah-langkah instalasi LAM/MPI ditunjukkan oleh Gambar III.24 .
#tar -xzvf lam-7.1.4.tar.gz
#./configure --prefix=/usr/local
#make
#make install
Gambar III.24 Langkah-Langkah Instalasi LAM/MPI
Setelah instalasi LAM/MPI selesai, langkah selanjutnya adalah melakukan
50
pengeditan file konfigurasi lam-bhost.def yang terletak di /usr/local/etc/lambhost.def. File konfigurasi ini berisi mengenai daftar nama-nama host yang akan
digunakan oleh LAM/MPI untuk menjalankan aplikasi paralel.
cluster0
cluster1
cluster2
Gambar III.25 File Konfigurasi lam-bhost.def
LAM/MPI dijalankan oleh LAM Runtime Envirinment (RTE).
RTE
adalah daemon yang berjalan pada level pengguna sistem. Daemon yang
dijalankan RTE adalah lamd. Daemon tersebut harus dijalankan oleh semua node
yang terdapat di file /usr/local/etc/lam-bhost.def. Untuk menjalankan daemon
lamd, cukup dengan memberikan perintah lamboot pada head node. Lamboot
akan mengakses setiap node di dalam cluster melalui SSH dan menjalankan lamd
di masing-masing node.
LAM/MPI juga memiliki standar untuk melakukan kompilasi dan eksekusi
program yang ditulis dengan pustaka-pustaka MPI. Standar compiler yang
dimiliki oleh LAM/MPI diantaranya adalah fortran, C++, dan C. Perintah untuk
melakukan kompilasi program MPI ditunjukkan oleh tabel III.2.
Tabel III.2 Bahasa Pemrograman dan Compiler Paralel
Bahasa Pemrograman
Compiler
Fortran
mpif77
C++
mpic++
C
Mpicc
Untuk menjalankan program paralel, digunakan perintah mpirun.
51
Penggunaan perintah mpirun ditunjukkan oleh Gambar III.26.
pengguna@cluster0$ mpirun C <aplikasi paralel>
Gambar III.26 Perintah Menjalankan Aplikasi Paralel
Aplikasi LAM/MPI berjalan sebagai daemon (lamd) di semua node.
Penghentian daemon tersebut harus diinisiasikan oleh head node dengan perintah
lamhalt. Penghentian proses daemon LAM/MPI ditunjukkan oleh Gambar III.27.
pengguna@cluster0$ lamhalt
Gambar III.27 Perintah Menghentikan Daemon LAM/MPI
III.3.5 Ganglia
Ganglia harus diinstal di tiap-tiap node di directory sistem masing-masing.
Hal tersebut harus dilakukan karena ganglia harus memiliki file konfigurasi yang
spesifik untuk tiap-tiap node.
#
#
#
#
#
yum –y gcc ganglia
tar xzvf ../ganglia-3.0.6.tar.gz && cd ganglia-3.0.X
./configure
make
make install
Gambar III.28 Instalasi Ganglia
Dalam menjalankan proses monitoring, ganglia menjalankan daemon
dengan nama gmond di setiap node di dalam cluster. Gmond di tiap-tiap node
akan mengirimkan statistik proses ke komputer head node melalui UDP. Statistik
yang diterima oleh head node akan diproses dan disimpan oleh gmetad. Data yang
telah dioleh oleh gmetad akan ditampilkan melalui web pada head node.
Ganglia memiliki dua file konfigurasi, yaitu /etc/gmond.conf dan
/etc/gmetad.conf. File konfigurasi /etc/gmond.conf harus dikonfigurasi pada
52
setiap node, sedangkan /etc/gmetad.conf hanya dikonfigurasi di head node saja.
File konfigurasi /etc/gmod.conf pada head node berbeda dengan /etc/gmond.conf
pada compute node. Pada head node /etc/gmond.conf dikonfigurasi sebagai
penerima data, sedangkan pada compute node /etc/gmond.conf dikonfigurasi
sebagai pengirim data.
globals {
daemonize = yes
setuid = yes
user = ganglia
debug_level = 0
max_udp_msg_len = 9600
mute = no
deaf = no
host_dmax = 3600 /*secs */
cleanup_threshold = 300 /*secs */
gexec = no
}
cluster {
name = "Nightlogin"
owner = "Nightlogin"
}
host {
location = "lab informatika"
}
udp_send_channel {
host = 192.168.0.1
port = 8650
ttl = 1
}
udp_recv_channel {
port = 8650
family = inet4
}
tcp_accept_channel {
port = 8649
}
Gambar III.29 File Konfigurasi /etc/gmond.conf pada Head Node
globals {
daemonize = yes
setuid = yes
user = ganglia
debug_level = 0
max_udp_msg_len = 1472
mute = no
53
deaf = no
host_dmax = 0 /*secs */
cleanup_threshold = 300 /*secs */
gexec = no
}
cluster {
name = "Nightlogin"
owner = "Nightlogin"
}
host {
location = "lab informatika"
}
udp_send_channel {
host = 192.168.0.1
port = 8650
ttl = 1
}
tcp_accept_channel {
port = 8649
}
Gambar III.30 File Konfigurasi /etc/gmond.conf pada Compute Node
data_source "My Cluster" node1 node2
setuid_username "ganglia"
Gambar III.31 File Konfigurasi /etc/gmetad.conf
Untuk menjalankan antar muka web, perlu dijalankan servis httpd pada
head node sebagai web server.
# /etc/init.d/httpd start
Gambar III.32 Menjalankan Servis httpd
Antar muka web ganglia dapat diakses melaui web browser pada head
node dengan alamat URL http://localhost/ganglia.
III.4
OCTAVE MPITB
Di dalam cluster, OCTAVE dengan modul MPITB dijadikan contoh
aplikasi yang dapat dijalankan untuk melakukan komputasi paralel. Aplikasi
OCTAVE dan modul MPITB diunduh secara terpisah. OCTAVE dapat diunduh
54
dari situs http://www.octave.org sedangkan MPITB diunduh melalui situs
http://atc.ugr.es/javier-bin/mpitb.
Di dalam penelitian ini, versi OCTAVE yang digunakan adalah octave2.9.18 sedangkan versi MPITB yang digunakan mpitb-beta-FC6-OCT2912LAM713-OMPI123. Instalsi OCTAVE dan modul MPITB dilakukan oleh head
node dengan directory instalasi /usr/local supaya secara otomatis terinstal pada
semua node.
# tar xzvf octave-2.9.18.tar.gz && cd ganglia-3.0.X
# ./configure --prefix=/usr/local --enable-readline \
--with-gnuplot --enable-shared --enable-dl
# make
# make install
Gambar III.33 Instalasi OCTAVE
Instalasi MPITB hanya melakukan ekstrak file mpitb-beta-FC6-OCT2912LAM713-OMPI123.tar.bz pada directory instalasi OCTAVE yaitu /usr/local.
#tar xjvf mpitb-beta-FC6-OCT2912-LAM713-OMPI123.tar.bz2
Gambar III.34 Ekstraksi MPITB
Setelah melakukan ekstraksi, langkah selanjutnya adalah melakukan
kompilasi ulang MPITB.
#
#
#
#
#
#
cd /usr/local/mpitb
rm –rf DLD
cd src-2.9.12
make
cd ..
ln –s DLD-oct2.9.12-lam_7.1.3-gcc4.1.2-i386 DLD
Gambar III.35 Kompilasi Ulang MPITB
Supaya OCTAVE dapat memanggil fungsi-fungsi MPI yang disediakan
oleh MPITB, OCTAVE harus memanggil startup script MPITB yang kemudian
55
dijadikan OCTAVE startup script. Pembuatan OCTAVE startup script harus
dilakukan di setiap home directory pengguna cluster supaya setiap pengguna
dapat menjalankan aplikasi OCTAVE MPITB.
pengguna@cluster0$ ln –s \
/usr/local/mpitb/startups/startup_MPITB.m .octaverc
Gambar III.36 Pembuatan OCTAVE Startup Script
Setelah membuat OCTAVE starup script, aplikasi OCTAVE dapat
dijalankan dan pengguna dapat membuat program dengan OCTAVE yang
mengimplementasikan MPI.
Download