23 Dis 2011

Slackware - Corosync - Pacemaker - Panduan Bahasa Melayu 01

Bismillahirrahmanirrahim
Syukur kehadrat Ilahi kerana setiap sedut udara, setiap percikan cahaya, desiran bunyi, pergerakan anggota kita, ilham dan buah fikiran kita semuanya milik Allah. Syukur dan redha lah dengan segala nikmat yang tidak terhingga. Lihatlah tangan dan kaki, tulang-tulang yang tersusun di dalam daging, darah yang mengalir seluruh badan, jantung yang berdetik, paru-paru yang menyambung nafas.. setiap yang ada ini, milik Allah Tuhan Sekalian Alam... 
Siapalah aku yang seluruhnya milikNya dan hanya padaNya lah aku sembah dan aku meminta pertolongan. Oleh itu, tunjukkanlah aku jalan yang lurus, jalan yang Engkau Rahmati. Bukan jalan yang sesat dan yang Kau murkai..
Assalamualaikum.. 


Setup Komputer Pelayan dengan Kadar Capaian Tinggi [High Availability Server]


Istilah masa-henti rendah [low down-time] ataupun 0.01 masa-henti dalah satu istilah yang mengagahkan mana-mana komputer pelayan. Maksudnya kadar capaian untuk sesuatu sistem teragih seperti laman sesawang atau aplikasi atas talian adalah menghampiri 100%, iaitu sistem boleh dikatakan tidak akan gagal berfungsi walaupun apa yang berlaku kecuali keadaan-keadaan yang di luar dugaan.

Nyatanya, jika difikir secara keadaan biasa, katakanlah satu laman web ditampung oleh satu komputer pelayan, jika berlaku apa-apa padanya maka sistem web tidak akan dapat dicapai. Banyak keadaan yang memungkinkan contohnya HD rosak, kad rangkaian rosak, kabel rangkaian putus, switch rosak, OS rosak, aplikasi pelayan web seperti apache tu sendiri rosak, aplikasi pelayan pangkalan data rosak, sebahagian HD mengalami sektor-rosak, dan bermacam-macam lagi keadaan yang memungkinkan untuk sistem terhenti.

Bagi sesetengah sistem yang mandatori untuk dilarikan 24/7 365 setahun memang sangat perlu untuk sentiasa bersedia melayan pengguna.

Di Hospital Universiti Sains Malaysia, hampir keseluruhan sistem yang digunapakai oleh staf adalah dibina oleh Unit Sistem Maklumat Hospital. Sistem yang mandatori termasuklah sistem demografi pesakit iaitu dinamakan Lifeline. Sistem ini seolah-olah jantung segala sistem yang ada kerana sistem ini menyimpan dan mengurus pangkalan data pesakit yang berdaftar di HUSM.

Oleh itu, amat penting bagi sistem ini untuk sentiasa berfungsi siang malam. Maka, oleh keadaan inilah pentingnya kami sediakan situasi dengan kadar capaian tinggi.


Prolog : Situasi untuk tutorial ini


  Perlu 2 buah komputer pelayan yang berada dalam rangkaian yang sama dengan OS slackware 13.37

  Pilihan 1: guna 2 buah komputer, 2 lokasi, 2 kad rangkaian.
  Pilihan 2: guna virtual box, cipta 2 komputer, install slackware, setup rangkaian


Bahagian 1: Applikasi yang perlu dimuat turun


Dalam tutorial ini, aku guna Slackware Linux 13.37 . Sumber terbuka, download percuma.

Terdapat beberapa pakej yang perlu diinstal yang mana tidak ada di dalam pakej Slakware yang asal. Lagipun slackware memang distro yang ringan dan agak kecik

Senarai mengikut turutan instalasi (instal mengikut turutan ini)

perpustakaan
 extra/Linux-HA/libesmtp-1.0.4-i486-1sms.txz
 extra/Linux-HA/libnet-1.1.4-i486-1sms.txz


pakej

 extra/Linux-HA/clusterglue-1.0.7-i486-1sms.txz
extra/Linux-HA/clusterresourceagents-1.0.4-i486-1sms.txz



 extra/Linux-HA/corosync-1.2.1-i486-1sms.txz
 extra/Linux-HA/openais-1.1.2-i486-1sms.txz
 extra/Linux-HA/pacemaker-1.1.1-i486-1sms.txz

Cara mendapatkan pakej-pakej ini

  1. slackbuilds.org
  2. boleh download di superb mini server http://sms.it-ccs.com/ 
    1. iaitu, gi bahagian download http://sms.it-ccs.com/downloads.html
    2. tengok bahagian "SMS.Native.CD version 1.6.2 is released! (10/10/2011)"
    3. Pilih SMS.Native.CD.extra.iso
    4. download
    5. mount imej .iso tadi dengan arahan mount di konsol
    6. boleh lusuri imej .iso tadi 
    7. pegi ke folder extra
    8. pegi ke folder linux-HA
    9. ingat balik turutan untuk instal
    10. copy semua file ke folder sendiri / terus instal dari sini
  3. dari link di bawah ni :
    1. http://www.srchack.org/pub/linux/corosync/slack131/libnet-1.1.4-i486-1_SBo.tgz
    2. http://www.srchack.org/pub/linux/corosync/slack131/libesmtp-1.0.4-i486-1_SBo.tgz
    3. http://www.srchack.org/pub/linux/corosync/slack131/clusterglue-6c8645d6a4c2-i486-1_SBo.tgz
    4. http://www.srchack.org/pub/linux/corosync/slack131/clusterresourceagents-000dd8956ad7-i486-1_SBo.tgz
    5. http://www.srchack.org/pub/linux/corosync/slack131/corosync-1.2.1-i486-1_SBo.tgz
    6. http://www.srchack.org/pub/linux/corosync/slack131/pacemaker-b9b672590e79-i486-1_SBo.tgz

Bahagian 2 : Persediaan sebelum Instalasi


  Sebelum membuat sebarang instalasi, perlu menambah group dan user seperti di bawah. Pakej yang perlu diinstal akan memastikan user haclient perlu ada dalam Sistem


# groupadd -g 226 haclient
# useradd -u 226 -g haclient -c "Cluster User" -d /var/lib/heartbeat/cores/hacluster -s /bin/false hacluster

Bahagian 3: Instalasi


  Install semua pakej mengikut turutan di atas. Sebabnya pakej yang kemudian memerlukan pakej sebelumnya.

Bahagian 4: Kunci Keselamatan 


 Perlu diingat, setiap komputer pelayan akan saling berkomunikasi antara satu sama lain melalui rangkaian tempatan. Kebiasaan dalam linux, sebarang capaian perlulah melalui satu kaedah pengenalan nama-katalaluan.

Jadi, kenala setiap komputer pelayan yang berada dalam kelompok yang sama, mengenalpasti antara satu sama lain..

corosync mmg dah sediakan fungsi ini..

di konsol:


# corosync-keygen



Arahan ini akan menjana katakunci berdasarkan aktiviti rawak baca/tulis pada HD. Aktiviti rawak inilah yang akan menentukan tempoh arahan ini akan tamat.

Untuk itu, try download file yang besar, contohnya linux kernel ke (ataupun mp3, video, dll) selepas larikan arahan di atas tu.

Bila dah habis, salin fail /etc/corosync/authkey ke semua komputer yang didalam kelompok yang sama.

set kan /etc/corosync/authkey  supaya user=root, group=root, mod= 0400 dengan menggunakan arahan chown dan chmod


# chown root:root /etc/corosync/authkey
# chmod 400 /etc/corosync/authkey


rasanya setakat ni makanya instalasi telah berjaya. Kalau rasa nak baca lebih lagi, buleh la rujuk link di bawah.

http://www.clusterlabs.org/wiki/Initial_Configuration#CoroSync
http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf

Aku akan sambung dengan cara untuk membuat konfigurasi sebelum corosync dilarikan.


Moga diberi keberkatan dunia akhirat.. Amin...




6 Dis 2011

Jadikan Komputer Linux sebagai Pelayan Capaian kadar Tinggi ( High Availability Server )

Bismillahirrahmanirrahim


Assalamualaikum WBT.

Syukur dan segala puji bagi Allah, Tuhan sekalian Alam, Yang Maha Pemurah dan Maha Pengasihani. Yang menjadi Raja di hari pembalasan. Maka tiadalah aku tempat bergantung hanyala padaMu dan engkaulah Tuhan yang aku sembah. Maka tunjukkanlah aku jalan yang lurus. Jalan yang Engkau Redhai dan bukan jalan orang yang sesat dan Engkau Murkai.



Setelah berhempas pulas mencari maklumat dan ilmu dalam dunia maya internet menerusi google, akhirnya hari ni berjaya juga la aku install semua pakej untuk jadikan komputer pelayan slackware di HUSM ni menjadi tinggi kadar capaiannya.

Sifat ini dipanggil High Availability.

Ada beberapa komponen pada komputer pelayan yang boleh dinaiktaraf untuk memungkinkan ianya meningkatkan kadar capaiannya.  Antara konsep yang paling tinggi aplikasinya adalah konsep bertindan ( berkembar, berbilang, redundant ). Secara pemahaman mudahnya adalah menggandakan semua komponen sebagai sokongan jika salah satu komponen rosak.

Contohnya :
  • kalau satu HD rosak, masih ada satu lagi HD yang berfungsi [ RAID ]
  • kalau satu kad rangkaian rosak, masih ada satu lagi kad yang berfungsi [ NIC Bond ]
Dan dalam kes kalau satu komputer pelayan tu rosak, seperti papan induk, kita perlu satu lagi komputer pelayan sebagai sokongan. Berbeza dengan HD dan NIC, konfigurasi untuk komputer pelayan adalah lebih rumit.

Konsep perlaksanaan :

*synchronize : Penyegerakan 

Rajah di atas menunjukkan gambaran kepada konsep yang aku duk merapu2 tadi ni. 2 buah komputer pelayan yang masing masing mempunyai 3 NIC. Dan kedua-dua komputer ini disegerakan secara masa nyata oleh satu pelayan di dalam rangkaian khusus. 

2 buah komputer pelayan ini pula berada di lokasi yang berlainan namun masih lagi dalam lingkungan rangkaian tempatan organisasi. 

Contohnya, Server01 berada di Unit Sistem Maklumat dan Server02 berada di Unit Rekod. Kedua-duanya berfungsi sebagai komputer pelayan yang sama, ip yang sama dan perkhidmatan yang sama. Dan antara keduanya ini dilarikan servis DRBD untuk penyegerakkan masa nyata 

Ini adalah pemahaman secara am dan gambaran secara kasar. Untuk lebih mendalam, aku post lagi lepas ni....

Assalamualaikum..





5 Dis 2011

Kad Rangkaian Bertindan - Sambungan

Assalamualaikum
Hari ini dah 2 buah server yang aku dah buat tindanan kad rangkaian ni. Dan hari ni aku terjumpa satu pemahaman tentang kod dalam rc.bond yang dibuat dalam catatan kad rangkaian bertindan sebelum ni.
Mari kita tengok kod bash rc.bond

#!/bin/sh
#
        case "$1" in
          'start')
            echo "start bond0"
            #modprobe bonding mode=balance-alb miimon=100
            modprobe bonding mode=balance-rr miimon=100
            modprobe tg3
            ifconfig bond0 up
            ifenslave bond0 eth0
            ifenslave bond0 eth1
            #TODO need to be changed << peringatan penting!!
            ifconfig bond0 hw ether 00:16:3e:aa:aa:aa
          ;;
          'stop')
            ifconfig bond0 down
            rmmod bonding
            rmmod tg3
          ;;
          *)
            echo "Usage: $0 {start|stop}"
          ;;
        esac

Dalam kod yang aku terangkan tu menunjukkan eth0 dan eth1 yang mewakili kad rangkaian 1 dan 2, yang mana kad ini beroperasi di bawah satu kad maya dinamakan bond0.

Kalau lihat pula kod yang diterangkan hijau tu, kad maya bond0 telah disetkan alamat MAC nya secara manual. Dalam kod di atas 00:16:3e:aa:aa:aa  adalah alamat MAC bond0.

Perhatikan jika aku gunakan kod yang sama untuk komputer berlainan, ini bermakna dalam satu rangkaian akan wujud 2 komputer pelayan yang mempunyai alamat MAC kad rangkaian yang sama. Jika pentadbir rangkaian menggunakan switch pintar yang dapat mengenalpasti MAC bertindan, maka kedua komputer ini akan menghadapi masalah rangkaian.

Oleh itu, aku tercari-cari pula cara penyelesaian masalah ni. Mula-mula aku fikir tukar je la alamat MAC tu ikut sedap je, tapi masalah la jugak bila ada 'kemungkinan' bertindan dengan kad rangkaian yang lain pula.

Namun aku terjumpa pula cara untuk menjanakan no MAC secara rawak:

Taip ni di konsol dan korang akan dapat no MAC secara rawak.

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
Kemudian aku cuba pula cara untuk menentukan alamat MAC yang dijana itu tidak sedia wujud dalam rangkaian. Namun, setelah berfikir lama sikit, aku dapat la satu buah fikiran yang baik iaitu lebih mudah jika aku gunakan alamat MAC mana-mana satu kad rangkaian yang tersedia dalam komputer pelayan tersebut.Ini sudah menjamin keunikan alamat MAC tersebut kerana setiap kad rangkaian yang dibuat mempunyai no alamat MAC yang unik.

namun jika kita larikan arahan ifconfig -a, yang kita dapat lihat adalah ketetapan rangkaian yang terkini, bukannya yang asal. Dengan kata lain, alamat MAC yang tertera selepas ifconfig -a adalah alamat MAC yang dimasukkan dalam fail /etc/rc.d/rc.bond

Untuk melihat MAC address asal bagi kedua-dua kad rangkaian adalah dengan melihat kepada alamat fizikalnya. Caranya adalah degan melarikan arahan di bawah :-

dmesg | grep eth 

Contoh :
root@serverKawe :~# dmesg | grep eth 
[    6.324430] 8139too 0000:02:09.0: eth0: RealTek RTL8139 at 0xdc00, ba:de:de:ba:b0:00, IRQ 18
[    6.716095] e1000 0000:02:0c.0: eth1: (PCI:33MHz:32-bit) fe:fa:fe:fa:fa:ff
[    6.728886] e1000 0000:02:0c.0: eth1: Intel(R) PRO/1000 Network Connection
[    6.960248] udev[1124]: renamed network interface eth1 to eth1-eth0
[    7.469948] udev[1123]: renamed network interface eth0 to eth1
[    7.495243] udev[1124]: renamed network interface eth1-eth0 to eth0
[   19.406802] bonding: bond0: enslaving eth0 as an active interface with a down link.



Selepas itu edit fail /etc/rc.d/rc.bond dengan memasukkan alamat MAC eth0/eth1 daripada dmesg tadi.

pico /etc/rc.d/rc.bond
edit baris dibawah ini sahaja


..
ifconfig bond0 hw ether ba:de:de:ba:b0:00
..
..


Jadi, selesai la masalah ni InsyaAllah.

p/s 
* arahan ifconfig bond0 hw ether 00:16:3e:aa:aa:aa dapat digunakan untuk ubah alamat MAC secara maya, atau dalam istilah keselamatan komputer dinamakan spoofing. Jadi dalam bahasa melayu boleh dikatakan sebagai 'topeng alamat MAC' untuk mencapai maksud spoof tu.. 


* modprobe dalam /etc/rc.d/rc.bond adalah mod gabungan kad rangkaian yang menentukan bagaimana kedua-dua kad rangkaian itu berfungsi 

4 Dis 2011

Cara Membuat Raid 1 (mirror) dengan Slackware 13.37



Assalamualaikum.....

Tutorial ini menunjukkan cara membuat RAID cara perisian dengan menggunakan mdadm (linux) di bawah Sistem Pengoperasian Slackware.




Pengenalan

Raid merujuk kepada redundant array of independent disk ataupun dalam bahasa melayu lebih kurang bunyinya tindanan disk yang berasingan.

Secara pemahamannya, sebilangan hd berlainan yang digabung  menjadi satu samada dengan saiz sama tapi banyak salinan, atau saiz lebih besar (jumlah semua saiz hd).

Contohnya,

Katakan kita ada 2 HD 50GB

  1. Kita boleh jadikan satu HD 100GB dengan menggunakan raid. Raid ini dipanggil Disk Stripping ( Selang Seli HD ). ATAUPUN
  2. Kita boleh jadikan 2 HD berkongsi segala maklumat serupa di kedua-dua HD. Apa yang HD pertama ada, HD kedua juga turut ada data yang sama. Raid ini dipanggil Disk Mirroring atau Kembar HD ( Cermin HD macam tak sampai maksud "kedua HD adalah sama", so aku guna "kembar" untuk sampaikan maksudnya )
gambarannya adalah seperti berikut :



Itulah asasnya konsep RAID. Dan, dalam teknologi raid ada 2 jenis applikasi iaitu RAID secara fizikal dan RAID secara perisian. 

RAID fizikal memerlukan peranti RAID yang biasanya dilengkapi dalam komputer pelayan pada hari ini bagi memudahkan pengurusan IT membuat rutin teknikal. Namun bagi PC, biasanya peranti RAID tidak tersedia semasa pembelian.

Selain peranti, terdapat juga perisian yang mampu membuat RAID secara maya seolah-olah sistem mempunyai peranti RAID. Walaupun tidak seefisyen peranti fizikal, perisian RAID masih lagi relevan untuk diaplikasikan dan selamat (pengalaman sendiri).

Anda boleh baca lagi pasal RAID :

Tujuan membuat RAID pula biasanya berkait rapat dengan toleransi kegagalan. Atau dengan bahasa / pemahaman mudahnya adalah kebolehan sesuatu sistem untuk terus berfungsi jika salah satu kegagalan berlaku.

Dan dalam kes kita dalam post ini adalah HD. Jika salah satu HD rosak dalam RAID 1, masih ada satu lagi HD yang terus berfungsi kerana kedua-dua HD ini berkongsi data yang sama.

Berlainan pula dengan RAID 0, HD dibesarkan saiznya mengikut jumlah saiz kesemua HD. Jika salah satu HD rosak, abeh la semua rosak kerana kekurangan RAID 0 adalah ianya tidak menyimpan bit pariti. Namun kelebihannya yang dapat menggandakan saiz HD adalah tidak dapat disangkal.

Level RAID selain 0 dan 1 ada banyak. Setiap level mempunyai kelebihan dan kekurangan masing2.


Tutorial RAID 1 dengan mdadm , slackware linux
Untuk tutorial ini, kita akan menggunakan resepi di bawah :

1. Slackware linux 13.37
2. perisian mdadm linux
3. 2 biji HDD yang sama ( sama brand dan kapasiti )

* adalah perlu diingat, HD yang berlainan saiz masih memungkinkan kita membuat partition. Akan tetapi ianya tidak disyorkan kerana mungkin akan timbul pelbahai masalah.

Situasi sebelum RAID [ Perancangan ]

 Oleh kerana RAID dalam tutorial ini akan menggunakan 2 HD kosong, anggapkan situasinya kita akan membuat instalasi slackware / OS yang baru di atas HD kosong / baru.

Secara Am, langkah yang akan kita ikuti adalah


1. pemasangan HD (jika belum dipasang)

2. Boot sistem menggunakan DVD slackware.

3. Apabila sistem telah boot dan konsole prompt telah keluar dan menyuruh kita membuat pembahagian HD (partitioning), silalah gunakan alatan yang anda sukai samada fdisk / cfdisk.

4. Untuk membuat RAID 1, kita perlukan pembahagian HD yang sama dan serupa. Katakanlah dalam kes aku ni, aku nak buat setup untuk web server yang mana /var/www adalah fail untuk web dan fail-fail sistem. Maka aku akan buat pembahagian lebih kurang macam ni la.
  • 4 GB swap partition [ ram aku guna 4GB ]
  • 100GB /root
  • selebihnya  pada /var
          Contoh:
Device Boot    Start              End               Blocks        Id  System
/dev/sda1              63          3903794        1951866     fd  Linux raid autodetect
/dev/sda2       3903795       160151984    78124095   fd  Linux raid autodetect
/dev/sda3       160151985   312576704    76212360   fd  Linux raid autodetect

  • Setiap jenis (type) HD adalah FD ( Linux RAID autodetect )
  • Sangat-sangat disyorkan supaya tinggalkan unpartitioned space, iaitu ruang yang tidak dibahagikan dalam HD dengan saiz paling kurang 100MB untuk menyimpan data berkenaan partition table dll.

5. salin jadual pembahagiana HD pada HD pertama ke HD kedua hanya dengan arahan di bawah:

sfdisk -d /dev/sda | sfdisk /dev/sdb
* ( /dev/sda = HD pertama, /dev/sdb = HD kedua )
6. Membina jujukan RAID

  • RAID yang akan dibina adalah berdasarkan pembahagian HD yang telah dilakukan tadi.
  • cara kod arahan mdadm untuk RAID 1:
    taip di konsol 
    mdadm --create /dev/md1 --level 1 --raid-devices 2 /dev/sda1 /dev/sdb1 metadata=0
    mdadm --create /dev/md2 --level 1 --raid-devices 2 /dev/sda2 /dev/sdb2 metadata=0
    mdadm --create /dev/md3 --level 1 --raid-devices 2 /dev/sda3 /dev/sdb3 metadata=0
    
* /dev/md1 : untuk swap
* /dev/md2 : root  
* /dev/md3 : /var  
* sila sesuaikan dengan sistem / server anda mengikut keperluan

7. sebelum setup slackware, larikan arahan di bawah :

mkswap /dev/md1
     
8. Bolehlah kita setup slackware seperti biasa..

  • pilih /dev/md1 untuk swap partition
  • pilih /dev/md2 untuk root / install partition
  • pilih /dev/md3 dan taip /var untuk additional partition
9. Setup lilo 

  1. Pilih samada 'simple/expert' setup bila ditanya untuk install lilo
  2. Bila ditanya untuk  additional  "append=" parameters. Taip :
            root= /dev/md1
  3. Pilih "MBR" sebagai tempat untuk install lilo
  4. Jika ada warning keluar, abaikan.. 
10. Sebelum Reboot, ada satu perkara lagi perlu setting.

  1. Tukar ke direktori installasi
    chroot /mnt
  2. . Dengan menggunakan pengedit teks pilihan anda ( vim/pico/nano ), edit fail /etc/lilo.conf
    pico /etc/lilo.conf
  3. tambah satu ayat dalam satu baris baru dalam file ini.. Taip :
    raid-extra-boot = mbr-only
  4. Tukar ayat "boot= .."
    boot = /dev/md2
Simpan fail dan balik makan kat rumah, ops.. larikan lilo hanya dengan menaip lilo dalam konsol.

lilo

11. Abeh la cara nak setup raid HD secara perisian. Anda boleh reboot pc.


1 Dis 2011

Server Redundancy - Pertindanan Komputer Pelayan

alkisahnya tercari-cari untuk buat server redundancy ( pertindihan komputer pelayan ) atas sebab perlunya server yang sentiasa on-line tanpa ada downtime yang lama.

Dan, cabarannya adalah memang kami tak pernah jalani apa-apa latihan, pengalaman dan apa jua pengetahuan berkenaan teknologi ini. Yang pastinya, perlu banyak mengoogle.

Setakat ini, ada banyak kaedah untuk memastikan aplikasi masih terus boleh berfungsi walaupun server mati/rosak.

1. guna 2 server yang sama. Bila satu mati, satu lagi yang masih hidup dapat terus melayan pengguna.

2. guna 2 talian rangkaian yang berbeza. Bila satu talian rosak/putus, masih ada satu lagi talian rangkaian yang berfungsi.

3. storan di server guna raid ( redundant array of independent disk ) atau dalam bahasa melayu : barisan disk berlainan yang bertindan. Raid dapat menjadikan sebilangan hd menjadi 1 dengan semua data pada 1 hd adalah sama dengan data pada hd 2. (mirroring)

4. satu IP maya untuk sebilangan server. 2 server yang menangani permintaan pengguna dan menentukan muatan / tanggungan pemprosesan di setiap server. (guna LVS - linux virtual server)

5. Heartbeat. Iaitu satu teknologi yang memungkinkan 2 server untuk mengawasi satu sama lain yang mana jika salah satu server mati, satu server lagi akan bertindak mengambil alih tugasnya.

Jadinya, sekarang ni macam berminat nak cari pasal no. 2 : Network Card Redundant sebab biasanya server ada 2 network card yang mampu menjadikannya lebih laju jika kedua network card hidup, dan mampu menjadi sokongan jika salah satu network card tu mati.

Topografinya macam ni :


Konsepnya lebih kurang macam ni :

   slackware akan mencipta satu kad rangkaian maya (virtual) dengan menggunakan 1 ip yang mana di belakang kad maya ini ada 2 kad rangkaian fizikal. Sebab itulah ada istilah master, slave digunakan dalam tutorial ini.


spesifikasi sistem :

linux distro : slackware 13.37
linux kernel installed? : mesti! [ install pakej k dari dvd slackware]
NIC : 2 [ eth0 & eth1 ]


  1. Instal NIC jika sistem hanya ada satu NIC.
  2. pastikan kedua-dua NIC dikesan oleh OS. 
  3. dalam konsole :
    1. tukar direktori ke /usr/src/linux/Documentation/networking
        %> cd /usr/src/linux/Documentation/networking
    2. taip :
       gcc -Wall -O -I/usr/src/linux/include ifenslave.c -o ifenslave
    3. salin ifenslave ke /usr/sbin dengan :
        cp ifenslave /usr/sbin
    4. Tukar direktori ke /etc/rc.d
        cd /etc/rc.d/
    5. Bina satu fail dengan nama rc.bond
        touch rc.bond
    6. Ubah kebenaran rc.bond supaya boleh dilarikan
        chmod 755 rc.bond
    7. Gunakan pengedit teks anda untuk edit rc.bond [ contoh di sini menggunakan pico ]
        pico rc.bond 
    8. Masukkan kod di bawah :


      #!/bin/sh
      #
              case "$1" in
                'start')
                  echo "start bond0"
                  #modprobe bonding mode=balance-alb miimon=100
                  modprobe bonding mode=balance-rr miimon=100
                  modprobe tg3
                  ifconfig bond0 up
                  ifenslave bond0 eth0
                  ifenslave bond0 eth1
                  #TODO need to be changed
                  ifconfig bond0 hw ether 00:16:3e:aa:aa:aa
                ;;
                'stop')
                  ifconfig bond0 down
                  rmmod bonding
                  rmmod tg3
                ;;
                *)
                  echo "Usage: $0 {start|stop}"
                ;;
              esac
    9. simpan dengan menekan ctrl-o dan enter
    10. Untuk memastikan skrip di atas dilarikan semasa boot, edit fail rc.M
      pico rc.M
    11. Cari perkataan
      #Initialize the networking hardware” dengan menekan ctrl-w dan taip networking , enter

    12. Tambah kod berikut di atas perkataan "#Initialize the networking hardware"
      # If script rc.bond is executeable then start it
      if [ -x /etc/rc.d/rc.bond ]; then
        . /etc/rc.d/rc.bond start
      fi
    13. simpan fail ini dengan menekan ctrl+o, enter
    14. Yang terakhir sekali, kita perlu edit fail setup rangkaian. Edit fail rc.inet1.conf
      pico rc.inet1.conf
    15. PENTING!! 
      1. Jika dalam fail ini telah terdapat setup / no ip pada eth0. Buang semua setup dalam eth0 :
        IPADDR[0]=""
        NETMASK[0]=""
        USE_DHCP[0]=""
        DHCP_HOSTNAME[4]=""
        
        IPADDR[1]=""
        NETMASK[1]=""
        USE_DHCP[1]=""
        DHCP_HOSTNAME[1]=""

      2. tambah kod di bawah sebelum setup untuk default gateway
        IFNAME[4]="bond0"
        IPADDR[4]="XXX.XX.XX.XX"
        NETMASK[4]="255.255.255.0"
        USE_DHCP[4]=""
        DHCP_HOSTNAME[4]=""

        1. Nota : XXX... adalah no ip yang anda perlukan.
        2. sila betulkan juga netmask yang sesuai dengan lokasi anda
    16. Simpan fail ini dengan menekan ctrl+o, enter
    17. sebelum reboot, pastikan salah satu kad rangkaian anda telah disambung dengan kabel rangkaian. [ jika tidak pun tak apa ].
  4. Reboot sistem.
  5. setelah sistem reboot, taip di dalam konsole untuk melihat status rangkaian anda
    1. cat /proc/net/bonding/bond0
    2. paparan seperti [ lebih kurang la ] di bawah akan keluar
      Ethernet Channel Bonding Driver: v3.7.0 (June 2, 2010)
      
      Bonding Mode: load balancing (round-robin)
      MII Status: up
      MII Polling Interval (ms): 100
      Up Delay (ms): 0
      Down Delay (ms): 0
      
      Slave Interface: eth0
      MII Status: up
      Speed: 100 Mbps
      Duplex: full
      Link Failure Count: 3
      Permanent HW addr: 00:08:74:30:93:d6
      Slave queue ID: 0
      
      Slave Interface: eth1
      MII Status: up
      Speed: 100 Mbps
      Duplex: full
      Link Failure Count: 4
      Permanent HW addr: 00:b0:4c:39:0d:b5
      Slave queue ID: 0
  6. ini menunjukkan sistem anda menggunakan 2 NIC dengan 1 ip telah berjaya di larikan. 
  7. Jika anda mahu melihat network setting, taip ifconfig
    root@server:~# ifconfig 
    bond0     Link encap:Ethernet  HWaddr 00:16:3E:AA:AA:AA  
              inet addr:10.1.127.223  Bcast:10.1.127.255  Mask:255.255.240.0
              inet6 addr: fe80::208:74ff:fe30:93d6/64 Scope:Link
              UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
              RX packets:207115 errors:0 dropped:7932 overruns:0 frame:0
              TX packets:810 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:18872138 (17.9 Mb)  TX bytes:119407 (116.6 Kb)
    
    eth0      Link encap:Ethernet  HWaddr 00:16:3E:AA:AA:AA  
              UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
              RX packets:103268 errors:0 dropped:0 overruns:0 frame:0
              TX packets:430 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:9431642 (8.9 Mb)  TX bytes:57025 (55.6 Kb)
    
    eth1      Link encap:Ethernet  HWaddr 00:16:3E:AA:AA:AA  
              UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
              RX packets:103847 errors:0 dropped:0 overruns:0 frame:0
              TX packets:380 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:9440496 (9.0 Mb)  TX bytes:62382 (60.9 Kb)
              Interrupt:18 Base address:0xdc00 
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
    


  8. begitulah adanya...
Selepas itu, aku try la sambung satu kabel rangkaian tu pada satu switch dalam ofis ni, dan satu lagi pada wall port yang guna switch utama dalam rangkaian yang lebih besar. pastu aku try ping dari pc aku untuk lihat kesan dia. Sudah tentulah keputusan dari ping tu keluar. Kemudian aku try cabut kabel NIC 1 yang bersambung ke switch dalaman tanpa aku hentikan ping dari pc aku...

Keputusan dari ping  terhenti seketika tetapi tidak terputus. Dalam beberapa saat selepas itu, keputusan ping kembali seperti biasa. 

Kemudian, aku sambung semula kabel tadi dan aku cabut pula kabel rangkaian yang satu lagi untuk tengok kesan ping. Keputusannya sama, ping terhenti seketika dan kemudian bersambung semula. 

Ini bermakna, network card bonding ni boleh juga diaplikasikan menurut topologi di bawah


Kesimpulannya, 

Jika aku ada satu server dengan dengan dua NIC, network card bonding dapat menjadikan rangkaian akan melihat server aku ni menggunakan 1 ip sahaja untuk kedua kad rangkaiannya. Seperti dalam rangkaian tempat aku kerja ni, jika aku sambung satu NIC ke satu rangkaian utama, dan satu NIC lagi ke rangkaian terdekat, jika salah satu network rosak/kabel rosak/NIC rosak, ada satu lagi network yang masih hidup dan sistem masih dapat dicapai oleh pengguna.

Dan, daripada pembacaan aku, dengan menggunakan 2 NIC yang dihidupkan serentak ( kedua-dua NIC hidup) kelajuan capaian juga berganda.

Kiranya, untuk menjadikan komputer pelayan di HUSM ni rendah downtime, salah satu langkah telah berjaya. Selepas ini aku akan try pula buat Linux Virtual Server iaitu :

1 IP dengan lebih daripada 1 komp pelayan. Tujuannya, jika pelayan 1 rosak/terbakar/hancur, masih ada satu lagi server di tempat lain yang boleh dicapai pengguna.

InsyaAllah lepas ni aku post lagi bila burjaya. Doa-doakanlah.. Amin


-- kalu buat kat pc sendiri ok jugak nih.. ada 2 NIC, 2 Line, lagi laju bleh surf internet.. huhuhu

    8 Feb 2011

    Unit Sistem Maklumat, HUSM

    Having one idea that is 'Malaysia Boleh', or theoretically we could manage anything with hard work, we at Unit Sistem Maklumat (Information System Unit), Hospital Universiti Sains Malaysia really did our hard work on developing system for HUSM using open source software development tools. And it turns out that the idea was right (again). 

    On the contrary, our unit is always short of staff and to describe the critical level of this situation, I would like to give an example of an Online Prescription system built in our unit. The system is running in most of our clinic that and have more than 100 users. Online Prescription (POLs) was inquired by our Pharmacy Department as a new solution towards paperless medication distribution procedure, that is less paper being used for doctors to prescribe medication to  patients. As explained, the system will cater about various of complicated variables such as drug type, classification, doses and others that required high commitment and effort to do so. 

    But in our case, this whole commitment and effort of software development starting from preliminary study, databases, user interface, business logic and function, error handling and other delicate procedure was handled by ONE single person. 

    But as far we moved on, these scenario became our daily chores to do. A system big enough that should be handled by at least a team of 20 person, is now responsible to only 2 personnel with no budget for the development. 

    Furthermore, the data obtained from years of systems running in a very big hospital with thousand of patient everyday, a great abundance of sensitive data in various categories became our dilemma as there are not enough funding for us to buy more reliable, high performance and robust server to support the vast usage.

    But, grabbing the 'Malaysia Boleh' idea that is, on further explanation should bear 'Tidak Putus Asa' as the next motto, we are currently trying to find another source of funding through out any resources we have. Any potential idea or opportunity are giving us hope that we still can 'save' all those pt data from catastrophic incident. 

    When 'Malaysia Boleh' is actually not only an encourage words, but more likely a challenge sounds like 'are you Malaysia Boleh enough?' ..

    = |


    "Rasulullah s.a.w. bersabda yang bermaksud:
    "Orang Mukmin yang paling sempurna imannya
    ialah yang paling baik akhlaknya."
    (Hadith Riwayat Ahmad)."

    "Please do not send me Microsoft Office/Apple iWork documents. Send OpenDocument instead! http://fsf.org/campaigns/opendocument/"

    6 Feb 2011

    More on Camera

    I supposed those days of calibration for camera came back as I was invited to a research meeting this morning at dental's.

    Together was Prof Majid and Zanur from penang with Prof Zainul, En Hakim n Dr Ali from dental. The main objective was to define the research objectives as they will fill the form for a new research grant.

    This research is gonna be exiting as I thought of collaboration between com sci, IT, Math, dental clinician and photogrammetry engineer are going to be some exploration of knowledge in each of the personnel.

    But, noted that it is still basic skills in photography involved and I really glad after these years I have spent a lot of time understanding and learning the basic of dslr and camera.

    As long I know the best option for camera handling, lighting and exposure, I should provide more subtle images for the research needs although the significant of it really low. But, it helps the researcher to have a better quality images for their analysis.

    I, for this case actually presented as both. As an IT personnel that provide information about the IT and also as a photographer. Thus, it would be satisfying enough for me to provide my skills to this upcoming research.

    There are a lot of more things to know about the dslr. How the focal length could effect our image distortion and what is the ideal distance for each focal length. There are others variables of camera that should be determined in order to have an accurate measurement taken from the images. These variables for camera are called camera parameters. Initial data should be the ccd size in pixel and the size of each pixel. After series of image capturing on calibrated panel, images then analyzed to get series of camera parameters such as the distortion factor, principal point, focal length of the lens and skew factor.

    And it always amazed me to find out that all these years of 'godek-godek' camera are actually could become handy in terms of scientific research, which could benefit for future clinical research and medical operation.

    And these years of software development at husm also would be a significant experience as one of the unofficial objective of the research is to develop an open source software for close range photogrammetry that I suppose why I am invited in this research group.

    Looking forward for this with exitement. w00t

    29 Jan 2011

    Pre-exitement ..

    MINIMUM TOTAL CREDITS TO GRADUATE : 102
    TOTAL CREDITS
    (including current semester) : 102
    TOTAL CREDITS TO BE COMPLETED : 0
    MUET (BAND) :
    SPONSORSHIP :
    RM OUTSTANDING/FULLY PAID/REFUND : 690.00