Friday, November 22, 2013

VirtualMachine untuk Belajar Cluster

Untuk belajar cluster, bisa menggunakan Virtual Machine (VM), katakan 3 buah VM. Sebuah VM untuk Master Node dan 2 buah VM untuk Computing Node. Ketiga VM bisa saling terhubung, misal dengan tool PING. Untuk itulah si VM perlu IP Address yang statik. Secara default, IP Address nya adalah dinamik. Untuk itu lakukan 4 langkah berikut, yaitu :
  1. Edit file konfigurasi eth0
  2. Edit setting-an network
  3. Instalasi paket NFS dkk
  4. Testing NFS

1. Edit file konfigurasi eth0
Agar IP Address si VM menjadi statik, bukan DHCP, maka file "/etc/sysconfig/network-scripts/ifcfg-eth0" perlu diedit.

dari :
DEVICE=eth0
HWADDR=A4:BA:DB:37:F1:04
TYPE=Ethernet
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=dhcp

menjadi :
DEVICE=eth0
HWADDR=A4:BA:DB:37:F1:04
TYPE=Ethernet
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=10.0.2.20
NETMASK=255.255.255.0

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Dengan IP statik, antara 2 buah VM bisa saling PING. Misal, yang satu diberi IP 10.0.2.20 dan yang satu lagi diberi IP 10.0.2.21.

Restart eth0 :
# /etc/init.d/network restart

2. Ubah setting network di VM Manager.

Melalui VM manager, ubah bagian Network Attached to : dari NAT menjadi Bridged Adapter. Ini dilakukan satu per satu di setiap VM-nya.

3. Instalasi Paket NFS (mohon jangan dicoba dulu, belom berhasil)

Paket-paket yang dibutuhkan untuk mengimplementasikan LAM/MPI ini antara lain :
1. Paket-paket LAM/MPI yang terdiri dari :
    (a) lam4c2
    (b) lam-runtime
    (c) lam4-dev

2. Paket-paket SSH yang terdiri dari :
    (a) openssh-server
    (b) openssh-client

3. Paket-paket NFS (Network File System) yang terdiri dari :
    (a) nfs-common
    (b) nfs-kernel-server

Untuk menginstall paket di atas gunakan perintah :
#yum install lam4c2 lam-runtime lam4-dev ssh nfs-common nfs-kernel-server --> kagak jalan, gak bisa di CentOS

Coba :
# yum install nfs-utils
Saat saya jalankan "yum isntall nfs-utils", ada dependensi : keyutils, libevent, libgssglue, libtirpc, nfs-utils-lib dan rpcbind. Total 1,6 MB.

# yum install nfs* -y
nfs-utils-lib-devel, nfs4-acl-tools, libgssglue-devel, pkgconfig
444 kB

# /etc/init.d/nfs start

Add the lines shown in bold in  ‘/etc/sysconfig/iptables’ file.

[root@server ~]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
-A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 32769 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 662 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 662 -j ACCEPT
 NEW:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Now restart the iptables service

[root@server ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

/etc/init.d/nfs restart
Starting NFS services: [OK]
Starting NFS mountd: [FAILED]
Starting NFS daemon : rpc.nfsd: writing fd to kernel failed: error 111 (Conenction refused)
rpc.nfsd: unable to set any sockets for nfsd [FAILED]

Kalau FAILED, coba link ini http://www.malaya-digital.org/setup-a-minimal-centos-6-64-bit-nfs-server/

Mungkin intinya, update paket. Yang dirumah sudah jalan. Senen mau coba yang dikantor. Mudah-mudahan trik ini bisa menjadi solusi.

Instalasi NFS di Server dan Client

To setup the server:
1] "yum update" more than 86 MB, 60 packages, include new kernel 2.6.32-358.23.e16.i686
2] "shutdown -r now"
3] "yum install nfs-utils rpcbind system-config-firewall-tui"
4] "vi /etc/sysconfig/selinux" and set "SELINUX=disabled".
5] "setenforce 0"
6] Make a folder to be shared. eg:

# mkdir /nfs-share

7] Do the following:

# chkconfig nfs on
# chkconfig nfslock on
# chkconfig rpcbind on

8] "system-config-firewall-tui"
... and include "NFS4" in trusted services.

9] Make a "/etc/exports" text file with something like this inside

/nfs-share 10.0.0.0/255.0.0.0(rw,sync,no_root_squash)

10] Append to "/etc/hosts.allow":

mountd: 10.0.0.0/255.0.0.0

11] Append to "/etc/hosts.deny":

portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

12] Do the following:

# service rpcbind restart
# service nfs restart
# service nfslock restart

To configure a CentOS 6 64-bit client:
1] "yum update"
2] "shutdown -r now"
3] "yum install nfs-utils rpcbind"
4] "vi /etc/sysconfig/selinux" and set "SELINUX=disabled".
5] "setenforce 0"
6] Make a folder to be the mount point. eg:

# mkdir /nfs-share

7] Do the following:

# chkconfig nfs on
# chkconfig nfslock on
# chkconfig rpcbind on

8] Do the following:

# service rpcbind restart
# service nfs restart
# service nfslock restart

9] To mount(do this as root):

# mount -t nfs4 10.0.2.20:/nfs-share /nfs-share


Testing NFS

Pergi ke Client Comput1
[root@localhost nfs-share]# mkdir test
[root@localhost nfs-share]# touch file1 file2 file3

Pergi ke Server Master
[root@localhost ~]# cd /nfs-share/
[root@localhost nfs-share]# ls
file1  file2  file3  test
[root@localhost nfs-share]#

Testing lihat di sini

Mount NFS Otomatis

Edit file /etc/fstab di sisi client, dengan menambahkan baris sbb :
10.0.2.20:/nfs-share /nfs-share nfs4 rw,sync,hard,intr 0 0

Reboot client dan lakukan testing NFS seperti di atas.

Sumber :
http://kslupnvj.wordpress.com/2012/05/15/belajar-membangun-jarkom-sederhana-dengan-virtualbox/
http://www.nsnam.org/wiki/HOWTO_Use_Linux_Containers_to_set_up_virtual_networks
https://gist.github.com/fernandoaleman/2172388
http://txcom2003.wordpress.com/2007/10/23/install-setting-cluster-computer-dengan-lammpi-di-debianubuntu/
http://ostechnix.wordpress.com/2013/02/28/setup-nfs-server-in-centos-rhel-scientific-linux-6-3-step-by-step/
http://www.malaya-digital.org/setup-a-minimal-centos-6-64-bit-nfs-server/
http://nugiemynugie.com/2012/masalah-eth0-centos-6/

Tip
Agar interface eth0 selalu UP setiap kali boot, edit file /etc/sysconfig/network-scripts/ifcfg-eth0, ubah baris "ONBOOT=no" menjadi "ONBOOT=yes"

Agar VM mendapatkan IP tetap, ubah file /etc/sysconfig/network-scripts/ifcfg-eth0 menjadi :

BOOTPROTO=static
IPADDR=10.0.2.20
NETMASK=255.255.255.0

Agar VM dapat PING ke VM lainnya, ubahlah network setting di VM Manager untuk setiap VM dari "NAT" ke "Bridged Adapter".

Mengupdate paket telah mengubah dari kernel 2.6.32-358.e16.i686  menjadi kernel 2.6.32-358.23.e16.i686. Mungkin ini yang membuat NFS bisa berjalan sempurna.

Untuk menjalan sebuah service, bisa dilakukan dengan 2 perintah baris. Misal untuk service NFS :
1. /etc/init.d/nfs restart
2. service nfs restart


No comments:

Post a Comment