Jul 302009
 

Nah ini aplikasi yang menjadi tulang punggung HA, Heartbeat dari Linux HA. Silahkan baca-baca link tersebut untuk mengetahui lebih jauh apa itu heartbeat.

Untuk mengaktifkan heartbeat ini ternyata cukup mudah. Rubah file /etc/ha.d/ha.cf, bikin aja kalau belum ada, dengan isi sebagai berikut:

use_logd on
udpport 694
keepalive 1 # 1 second
deadtime 10
initdead 80
bcast eth0
node hb1 hb2
crm yes
auto_failback yes

isi dari node disesuaikan dengan nama-nama komputernya. Setelah itu membuat file /etc/ha.d/authkeys untuk autentikasinya dengan menggunakan script ini:

cat <<-!AUTH >/etc/ha.d/authkeys
# Automatically generated authkeys file
auth 1
1 sha1 `dd if=/dev/urandom count=4 2>/dev/null | openssl dgst -sha1` !AUTH

Karena file /etc/ha.d/authkeys sensitif, maka rubah permission-nya menjadi 600 (-rw------). Yak segitu saja, heartbeat siap dijalankan. Di fedora based tinggal jalankan ‘service heartbeat start‘ dan jangan lupa service heartbeat di on-kan waktu komputer dihidupkan.

Tapi dengan konfigurasi seperti itu saja heartbeat tidak banyak berguna, harus ada service-service yang ditangani heartbeat yang menjadikannya fungsional sebagai HA, misal visual IP, digabung dengan drbd untuk sinkronisasi data, httpd, nfs, samba dan lain-lain. Nah yang begini akan dibahas pada [Seri HA 3] Sentuhan Terakhir

Jul 292009
 

Apa itu DRBD? Dan apa pula hubungannya dengan HA? Coba jalan-jalan ke sini dulu.

Pada dasarnya DRBD adalah software untuk sinkronisasi data tetapi pada level block device, yaitu level dibawah filesystem. Jadi membuat filesystem-pun akan disinkronkan. Sinkronisasi pada level block device ini diperlukan (tetapi tidak harus) agar HA bisa lebih mulus pergantian komputernya.

OK, langsung ke hardware dan konfigurasinya yang diperlukan untuk drbd. Pertama-tama tentu partisi yang akan disinkronkan, berikut hasil perintah ‘fdisk -l’ dari kedua komputer:

[root@hb1 ~]# fdisk -l
....
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1305    10482381   83  Linux
/dev/hda2            1306        1436     1052257+  82  Linux swap / Solaris
/dev/hda3            1437        2564     9060660   83  Linux
[root@hb2 ~]# fdisk -l
....
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1305    10482381   83  Linux
/dev/hda2            1306        1370      522112+  82  Linux swap / Solaris
/dev/hda3            1371        2498     9060660   83  Linux

Perhatikan, walau besar kedua hardisk berbeda, besar partisi (hda3) yang akan dipakai harus sama persis (1127 blok).

Selanjutnya saya menggunakan 2 kartu jaringan di masing-masing komputer. Berikut hasil ‘ifconfig’ dari kedua komputer:

[root@hb1 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
          ....

eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:10.0.0.11  Bcast:10.0.0.255  Mask:255.255.255.0
          ....
[root@hb2 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.0.12  Bcast:192.168.0.255  Mask:255.255.255.0
          ....

eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:10.0.0.12  Bcast:10.0.0.255  Mask:255.255.255.0
          ....

eth0 akan terhubung ke jaringan lokal dan eth1 akan saling terhubung dengan kabel kros, dengan kata lain kedua komputer punya jalur pribadi lewat eth1. Kenapa hal ini perlu dilakukan? Tipe sinkronisasi yang dipilih memerlukan bandwidth yang cukup besar, agar tidak mengganggu jaringan lokal maka perlu dipisahkan lewat jalur pribadi ini. Untuk men-tes apakah jalur ini telah berfungsi lakukan ping ke IP dari eth1 komputer lainnya. Continue reading »

Jul 212009
 

Bila kita mempunyai dua atau lebih kartu jaringan, kadang udev atau mekanisme assigning kartu ke dev secara otomatis tidak seperti yang kita inginkan. Seperti contoh yang saya alami dengan centos, onboard kartu jaringan di-assign sebagai eth1 dan kartu jaringan tambahan sebagai eth0, sementara saya ingin onboard yang eth0. Nah, gimana cara ngerubah ini?

Untuk centos 5.3 yang masih menggunakan udev versi lama, maka ada beberapa file yang harus dirubah. Yang pertama adalah file /etc/modprobe.conf. Sebelumnya adalah:

[root@hb1 ~]# cat /etc/modprobe.conf 
alias eth0 3c59x
alias eth1 e100

e100 adalah driver untuk kartu jaringan onboard dan 3c59x adalah driver untuk kartu tambahan. Yang diinginkan onboar jadi eth0, maka kita rubah menjadi:

[root@hb1 ~]# cat /etc/modprobe.conf 
alias eth0 e100
alias eth1 3c59x

Selanjutnya adalah merubah file-file di /etc/sysconfig/network-scripts/ yaitu ifcfg-eth0 dan ifcfg-eth1 (kalau cuma 2 kartu). Pertama kita swap dulu nama kedua file tersebut dan kemudian adaptasikan perubahannya.

[root@hb1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
# Intel Corporation 82557/8/9/0/1 Ethernet Pro 100
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:e0:18:25:20:dd
ONBOOT=yes
DHCP_HOSTNAME=hb1
TYPE=Ethernet
IPADDR=192.168.0.11
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
USERCTL=no
IPV6INIT=no
PEERDNS=yes

Yang perlu dirubah paling DEVICE, IPADDR dan GATEWAY.

Untuk Fedora 10 keatas (dan turunannya serta Ubuntu yang baru serta turunannya) yang dilakukan lebih sederhana. TInggal rubah satu file saja yaitu file /etc/udev/rules.d/70-persisten-net.rules. Contoh yang satu kartu:

[hansen@hansen ~]$ cat /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.

# Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rule written by anaconda)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:19:21:6e:72:43", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Tinggal sesuaikan pada bagian ‘NAME=”eth0″‘.

Itu saja.

Update:
Ternyata centos mengambil setingan terakhir (eth1) sebagai default route, sementara saya menginginkan eth0 sebagai default route-nya. Untuk merubahnya, tambahkan nilai GATEWAY dari /etc/sysconfig/network-scripts/ifcfg-eth0 kedalam /etc/sysconfig/network dan hapus GATEWAY dari file /etc/sysconfig/network-scripts/ifcfg-eth0 dan /etc/sysconfig/network-scripts/ifcfg-eth1

%d bloggers like this: