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 ]
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 ]
- Instal NIC jika sistem hanya ada satu NIC.
- pastikan kedua-dua NIC dikesan oleh OS.
- dalam konsole :
- tukar direktori ke /usr/src/linux/Documentation/networking
%> cd /usr/src/linux/Documentation/networking - taip :
gcc -Wall -O -I/usr/src/linux/include ifenslave.c -o ifenslave - salin ifenslave ke /usr/sbin dengan :
cp ifenslave /usr/sbin - Tukar direktori ke /etc/rc.d
cd /etc/rc.d/ - Bina satu fail dengan nama rc.bond
touch rc.bond - Ubah kebenaran rc.bond supaya boleh dilarikan
chmod 755 rc.bond - Gunakan pengedit teks anda untuk edit rc.bond [ contoh di sini menggunakan pico ]
pico rc.bond - 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
- simpan dengan menekan ctrl-o dan enter
- Untuk memastikan skrip di atas dilarikan semasa boot, edit fail rc.M
pico rc.M - Cari perkataan
“#Initialize the networking hardware” dengan menekan ctrl-w dan taip networking , enter
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
- simpan fail ini dengan menekan ctrl+o, enter
- Yang terakhir sekali, kita perlu edit fail setup rangkaian. Edit fail rc.inet1.conf
pico rc.inet1.conf
- PENTING!!
- 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]=""
- 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]=""
- Nota : XXX... adalah no ip yang anda perlukan.
- sila betulkan juga netmask yang sesuai dengan lokasi anda
- Simpan fail ini dengan menekan ctrl+o, enter
- sebelum reboot, pastikan salah satu kad rangkaian anda telah disambung dengan kabel rangkaian. [ jika tidak pun tak apa ].
- Reboot sistem.
- setelah sistem reboot, taip di dalam konsole untuk melihat status rangkaian anda
- cat /proc/net/bonding/bond0
- 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
- ini menunjukkan sistem anda menggunakan 2 NIC dengan 1 ip telah berjaya di larikan.
- 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)
- 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
Ulasan
Catat Ulasan
Comment