31 Mei 2012

php mysql_connect mysql , sedikit perkongsian ilmu


Assalamualaikum..

"Ya Allah, aku berdoa kepadaMu dengan segala kebaikan seperti yang Rasulullah doakan, dan aku juga berdoa kepadaMu agar dijauhkan dari segala keburukan seperti yang Rasulullah doakan.. Amin Ya Rabbal Alamin.."


Oleh kerana terlalu ingin cepat siapkan sistem, terlalai untuk memeriksa kod untuk mysql_connect dalam fail dbconfig.php.



$db1 = mysql_connect('db1.hu.sm.my', 'sistem1', 'password1');
$db2 = mysql_connect('db2.hu.sm.my', 'sistem2', 'password2', TRUE);


mysql_select_db('dbname1', $db1);
mysql_select_db('dbname2', $db2);

Maka

ini bermakna jika parameter untuk server kedua adalah tak sama dengan paramater untuk server pertama, tidak perlu kita letak 'TRUE' untuk parameter ketiga bagi server kedua.

Jika diletakkan, maka php akan mencipta satu sambungan baru setiap kali kita include atau require fail ini dalam mana-mana fail aplikasi kita.

Dan oleh kerana tidak memahami betul-betul fungsi TRUE ini dalam mysql_connect, server pangkalan data pengguna / staf dah congested.

beringat-ingat lah kita semua.. ( atau aku je yang tak tau ) 

namun, terima kasih dan syukur kerana pengalaman ini membuahkan satu ilmu yang sangat berguna di masa hadapan.


Sekian dahulu, doakan semoga keluarga aku sehat dan disembuhkan segala penyakit.. Amin




21 Mei 2012

Malaysia Open Source Conference 2012 - Enterprising Open Source



Assalamualaikum

  
"Tiada daya dan kekuatan (yang memudaratkan dan memanfaatkan) melainkan Allah"



Dah tiba masanya untuk tahun ini Persidangan Sumber Terbuka Malaysia diadakan. Persidangan peringkat antarabangsa ini sebenarnya amat banyak membuka mata dan peluang untuk diceburi dan dijelajahi.

Sejak berkhidmat di HUSM, dah 3 kali rasanya aku join MOSC. Tahun lepas aku diberikan tugas berat bila diminta menjadi pembentang kertas kerja yang sama-sama diusahakan oleh rakan setugas. Namun, nak naik pentas dan membentang dalam bahasa inggeris itu adalah satu cabaran yang agak getir. Lagipun diri ni memang mudah berdebar bila nak naik pentas pun.

Tapi hasil daripada tu, selangkah-demi selangkah kami mampu meneroka alam luar. Sehingga kini masih lagi menyibukan diri mencari dan menelaah teknologi baru dalam sumber terbuka untuk diaplikasikan dalam sistem hospital.

Alhamdulillah, sesungguhnya segala yang baik itu datang daripada Allah. Jika dicongak-congak, mungkin ratusan juta duit rakyat dijimatkan sepanjang pembangunan sistem pengurusan hospital dengan menggunakan sumber terbuka.

MOSC sebenarnya menjadi pemangkin kepada kami dan semua pembangun dan 'pejuang' sumber terbuka di Malaysia untuk melebarkan sayap kemahiran dan peluang lebih-lebih lagi sektor kerajaan yang sekarang ini mengamalkan perbelanjaan berhemah dan tidak membazir.

Dan, bagi kami, mungkin dengan penjimatan ini, duit rakyat boleh digunakan untuk membeli ubat yang akan memanfaatkan lebih ramai lagi rakyat yang memerlukan. InsyaAllah

Jom ke MOSC 2012. Walaupun hati ini ingin nak pegi, tapi nampaknya bajet HUSM tahun ini agak kurang, mungkin tidak mampu ke sana tahun ini.

Walaupun begitu, dalam hati ini sentiasa menyokong 110% usaha setiap pembangun perisian, penyelidik dan peneroka sumber terbuka untuk teruskan usaha dan teruskan berkongsi.


"Sharing is Caring" 

Berkongsi itu Cakna.. InsyaAllah..

Semoga diberkatiNya dirahmatiNya, dikasihiNya, disayangiNya, ditingkatkan darjat olehNya, diberikan rezeki yang luas olehNya dan dimasukkan ke dalam syurgaNya.

Amin ya Rabbal Alamin.








14 Mei 2012

Bangun Dari LAN ( WAKE ON LAN)



Assalamualaikum




    Dengan nama Allah yang Maha Pemurah dan Maha Pengasih. Tuhan yang Maha Alim dan Maha Kuasa. Ampunkanlah segala dosa kami, dosa kedua ibu-bapa kami. Kasihilah dan Sayangilah kedua ibu-bapa kami sepertimana mereka mengasihi kami ketika kami kecil dahulu.






Tutorial Bangun Dari LAN ( Wake on LAN )

 InsyaAllah dalam tutorial ini saya akan berikan penerangan ringkas cara-cara untuk menghidupkan komputer / server dengan menggunakan kad rangkaian dari komputer lain.

Teknologi WakeOnLan adalah salah satu cara untuk memudahkan kita on mana-mana nod dalam rangkaian dengan menghantar isyarat khas kepada kad rangkaian supaya papan induk nod tersebut menghidupkan suis kuasa.

Amat memudahkan kita untuk bekerja secara jauh.

Tutorial ini akan menggunakan Slackware 13.37 dengan kad rangkaian yang tersedia wake on lan


Keperluan


- Kad Rangkaian yang ada wakeonelan ( wol )
- berada dalam rangkaian
- no MAC kad rangkaian

Tetapan


1. Pastikan kad rangkaian adalah tersedia wake on lan


#: ethtool eth0



Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg  [ Nota: pastikan g ada ]
        Wake-on: g [ Nota: g : tersedia, d : tidak-sedia ]
        Current message level: 0x00000001 (1)
        Link detected: yes
2. Jika kad rangkaian ada wake-on: g, maka kita boleh gunakan fungsi ini.


3. Jika kad rangkaian ada namun tidak-sedia, boleh gunakan arahan di bawah untuk ubah setting kepada tersedia.

#: ethtool -s eth0 wol g



dengan itu, kad rangkaian kita sedia menerima mesej arahan dari nod lain untuk hidupkan kuasa.


4. Dari PC lain, kita perlu software / program yang dapat menghantar mesej kepada kad rangkaian


Untuk Slackware, bolehlah download dan install pakej ini :

http://connie.slackware.com/~alien/slackbuilds/wakeonlan/build/

5. Dapatkan alamat MAC server / pc yang kita mahu hidupkan tadi.


# ifconfig
eth0     Link encap:Ethernet  HWaddr 00:16:k5:64:A9:68  [ Alamat MAC ]
          inet addr:192.168.6.56  Bcast:192.168.6.255  Mask:255.255.255.0
          inet6 addr: fe80::216:17ff:fe6b:289/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3179855 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2170162 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3832534893 (3.5 GB)  TX bytes:390304845 (372.2 MB)
          Interrupt:17



6. Padam ( shut down ) server.

7. Arahan di bawah akan menghidupkan semula server tadi :

#: wakeonlan 00:16:k5:64:A9:68



Sekian dahulu tutorial ini. Harap mendapat lindungan Rahmat daripada yang Maha Rahman. Sesungguhnya apa yang kita ada sekarang adalah sebenarnya asalnya tidak ada. Yang Maha Ada hanya lah Allah SWT.

Bertawakkallah dan Bertakwalah kepadaNya. InsyaAllah kita tergolong dalam golongan kekasihNya..


Maafkan kekurangan, ampunkan kesalahan, tegurlah yang mana buruk.

Dan segala yang baik itu adalah datang dari Allah, Tuhan sekalian alam.

wassalamualaikum


RAID 5, mdadm, slackware 64, 6 Buah HDD dengan tambahan kipas =)



Allahumma inni a'uudzubika minal hammi wal hazan.Ya Allah ya Tuhan kami, sesungguhnya aku berlindung kepada-Mu daripada keluh kesah dan dukacita.
Wa a'uudzubika minal 'ajzi wal kasal. Dan aku berlindung kepada-Mu dari lemah kemahuan dan malas.
Wa a'uudzubika minal jubni wal bukhl. Dan aku berlindung kepada-Mu daripada sifat penakut dan kedekut.
Wa a'uudzubika minal ghalabatiddaini wa qohrirrijaal.
Dan aku berlindung kepada-Mu daripada tekanan hutang dan kezaliman manusia.
Assalamualaikum

        Selalunya terasa macam tak cukup masa je untuk update blog ni padahal niat untuk berkongsi ilmu itu satu yang baik dan setiap yang baik itu dari Allah. Tapi rasa malas itu menebal dan kemahuan untuk menaip blog ni memang lemah.

       Jadi, sebaik-baiknya adalah berdoa dan alhamdulillah bila tanya pakcik google, mmg ramai yang share pasal doa ni. Jazakallahukhairan


RAID 5, 6 Buah HDD, Slackware64 dan mdadm


Gambar di atas adalah cita-cita kami untuk file-server dengan raid 5. 


Gambar ni pula keadaan sebenar yang kami mampu usahakan. = )

Resepinya :
  1. Komputer Desktop Acer M9600. 
  2. Mainboard dengan 6 port sata
  3. 6 buah HDD 500GB
  4. tambahan 2 kipas di depan dan di belakang


Apa Itu RAID 5?


Block dengan p adalah block pariti. Contoh RAID5 dengan 4 HDD

Contoh 3 HDD dengan RAID5. 







Redundant Array Independent Disk Level 5
- RAID 5 memperuntukkan 1 HDD untuk toleransi kegagalan. Maksudnya satu HDD akan menyimpan data pariti yang akan digunakan apabila salah satu HDD rosak.
- Paling kurang, 3 buah HDD diperlukan untuk membina RAID 5. 
- Jika menggunakan 3 buah HDD 1 TB, jumlah saiz yang boleh dicapai adalah 2 TB. 
- Iaitu katakan n HDD digunakan, dengan s adalah saiz HDD dan andaikan saiz HDD adalah sama, maka jumlah keseluruhan saiz yang dapat dicapai dengan RAID 5 adalah (n-1)s


Kelebihan RAID 5
- Sangat ekonomi kerana saiz HDD yang besar dapat dicapai disamping ada ciri-ciri toleransi kegagalan.
- Mampu untuk baikpulih jika ada 1 HDD rosak pada satu-satu masa.
- Contohnya kami perlukan HDD space yang besar namun budget tidak mencukupi untuk membeli HDD / file server / sewa HDD space  dll. Jadi apa yang yang termampu hanyalah menggunakan apa yang ada dalam jabatan kami. Kami gunakan 6 buah HDD 500GB, dan dengan RAID 5, kami boleh mencapai saiz HDD sehingga 2.5 TB. Cukuplah untuk sistem yang kami bina ni dan mungkin mampu bertahan 2-3 tahun lagi sebelum penuh.. InsyaAllah.


Kelemahan RAID 5
- Data pariti dijana setiap kali terdapat aktiviti tulis ke atas HDD yang mengurangkan prestasi sistem. Namun pengurangan prestasi ini hanyalah memberi kesan kepada sistem yang benar-benar besar dan aktiviti tulis pada HDD sangat tinggi.
- Sistem hanya mampu dibaikpulih jika hanya 1 HDD sahaja rosak pada satu-satu masa. Jika 2 HDD rosak serentak, maka sistem akan gagal.

Namun, untuk kemungkinan berlakunya 2 HDD rosak secara serentak adalah sangat jarang walaupun ianya mungkin berlaku. Maka, untuk sistem yang tidak begitu kritikal / data juga disimpan secara selari pada server lain, RAID 5 masih lagi relevan untuk digunakan. InsyaAllah.



Tutorial RAID 5

Dalam tutorial ini, aku guna Slackware 13.37 64bit linux dengan hardware setup seperti di atas tadi.

Sepintas Lalu


Rujukan untuk tutorial ini adalah daripada :
http://slackware.osuosl.org/slackware-12.1/README_RAID.TXT

Seperti yang kita sedia maklum, untuk setup OS kedalam satu komputer memerlukan peruntukan ruang HDD. Dalah kes linux, ruang asas yang perlu dibina adalah swap dan os. Namun, biasanya kita akan peruntukkan juga ruang HDD untuk sistem contohnya /var adalah didalam satu bahagian HDD yang berbeza dengan bahagian root /

Berbeza dengan RAID 1 ( Mirror ), RAID 5 memerlukan kita untuk membuat satu bahagian bagi /boot yang mana sistem akan boot di sini.

Keperincian :
  • /
    • root
  • /boot
    • boot
  • /var
    • untuk sistem

Mula dengan Boot sistem menggunakan Slackware 13.37 64bit.
- Apabila komputer telah boot sehingga keluar konsol prompt, boleh mulakan pembahagian HDD ( partitioning ) untuk HDD pertama


Bahagian HDD
Katakan HDD adalah seperti berikut

/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
/dev/sdf

Dengan menggunakan cfdisk atau fdisk, /dev/sda dibahagikan seperti berikut :
/dev/sda1 /boot 30 MB Linux Raid autodetect
/dev/sda2 / 2 GB Linux Raid autodetect
/dev/sda3 swap 4 GB Linux Raid autodetect
/dev/sda4 /var (saiz yang tinggal - 100MB) Linux Raid autodetect
* 100MB ditinggal tanpa membuat sebarang bahagian untuk HDD tersebut menyimpan data bahagian dalam HDD ini.
* Pastikan jenis bahagian HDD adalah fd ( linux raid autodetect )

untuk HDD lain, cukuplah sekadar hanya melarikan arahan di bawah :
#: sfdisk -d /dev/sda | sfdisk /dev/sdb
#: sfdisk -d /dev/sda | sfdisk /dev/sdc
#: sfdisk -d /dev/sda | sfdisk /dev/sdd
#: sfdisk -d /dev/sda | sfdisk /dev/sde
#: sfdisk -d /dev/sda | sfdisk /dev/sdf
* arahan ini menyalin jadual bahagian HDD di HDD pertama ke HDD kedua


Cipta Array untuk RAID


Dengan menggunakan arahan mdadm, boleh mula cipta array untuk raid.

Untuk setup dalam tutorial ini, kita ada 4 bahagian HDD yang mana /boot, /var dan / (root). Satu lagi adalah swap.

katakan :

swap  = md0     :   sd[a-f]3
/boot  = md1     :   sd[a-f]1
/         =  md2    :   sd[a-f]2
/var     = md3   :    sd[a-f]4

1. Untuk swap, kita gunakan raid 1 ( setiap hdd akan menyimpan salinan apa sahaja dalam swap )

#: mdadm --create /dev/md0 --level 1 --raid-devices 6 /dev/sd[a-f]3 --metadata=0

2. Untuk /boot juga, setiap HDD perlu ada salinan data dalam boot, maka sistem tidak bergantung hanya pada satu HDD sahaja untuk boot.

#: mdadm --create /dev/md1 --level 1 --raid-devices 6 /dev/sd[a-f]1 --metadata=0


3. Bahagian root atau / akan menggunakan raid 5. Satu HDD memperuntukan 2G dan jikalau menggunakan 6 HDD bersama raid 5, jumlah saiz HDD yang akan terhasil adalah 2 GB x 5 = 10 GB.

#: mdadm --create /dev/md2 --level 5 --raid-devices 6 /dev/sd[a-f]2 --metadata=0

4. Bahagian /var adalah untuk sistem web, database dan data-data berkaitan web (gambar, html, php dll). Bahagian ini adalah kritikal untuk sistem sebagai server.



#: mdadm --create /dev/md3 --level 5 --raid-devices 6 /dev/sd[a-f]4 --metadata=0



Sebelum melarikan slackware setup, kita perlu setkan swap array untuk installer camkannya..



#: mkswap /dev/md0




Sekarang bolehlah setup slackware macam biasa.

  • Untuk swap partition, pilih /dev/md0
  • Untuk target partition, pilih /dev/md2
  • Untuk extra partition
    • pilih /dev/md1 untuk /boot
    • pilih /dev/md3 untuk /var

Setup Slackware macam biasa.

Untuk Tetapan LILO ( sebelum instalasi habis )
- Pastikan untuk "append=" semasa setup LILO, masukkan "root=/dev/md2"
- pilih MBR sebagai tempat untuk install LILO

Sebelum Habis
- Apabila instalasi Slackware telah habis, sebelum kita mulakan semula server, ada sedikit lagi tetapan yang perlu kita ubah.

Tukar ke direktori /mnt dan edit file /etc/lilo.conf



#:  chroot /mnt
#: nano /etc/lilo.conf





1. Tambah satu ayat sebagai baris baru, tetapi jangan senggang ( indent )

raid-extra-boot = mbr-only

2. Tukar boot = "ada apa apa" kepada :
 
boot = /dev/md2


 iaitu bahagian HDD yang ada OS untuk diboot.

3. Simpan dengan menggunakan ctrl-o

4. run lilo dengan melarikan arahan lilo


5. exit

6. reboot


InsyAllah, semoga dengan RahmatNya kita berjaya membina server dengan RAID 5 menggunakan 6 buah HDD 500GB. Dan juga semoga ilmu yang dipelajari dalam tutorial ini dapat digunakan dan dimanfaatkan. InsyaAllah..


Jika ada kesalahan dan pembetulan, harap tidaklah segan silu memaklumkan kepada saya.


Wassalamualaikum Warah Matullah