Tuesday, July 2, 2013

Tulisan Tentang Fault Tolerance


Fault Tolerance
Fault tolerance adalah suatu sistem yang dapat melanjutkan tugasnya dengan benar meskipun terjadi kegagalan perangkat keras (hardware failure) dan kesalahan perangkat lunak (software error). Fault tolerance perlengkapan yang memungkinkan sistem untuk mencapai operasi fault-tolerant.

Istilah fault-tolerant computing menggambarkan proses pelaksanaan perhitungan seperti yang dilakukan komputer, dalam cara fault-tolerant. Konsep fault tolerance menjadi semakin penting dalam dekade belakangan ini karena bertambahnya penggunaan komputer dalam aspek vital kehidupan hampir semua orang. Komputer tidak lagi terbatas digunakan sebagai kalkulator serbaguna dimana kesalahan yang dihasilkannya dapat mengakibatkan lebih dari sekedar frustasi atau kerugian waktu. Bahkan, komputer sekarang digabungkan dalam bidang komersil, sistem kontrol penerbangan pesawat militer, pengontrol industri, aplikasi antariksa, dan sistem perbankan. Dalam setiap aplikasi kesalahan kerja komputer dapat merusak catatan keuangan, keselamatan lingkungan, keamanan nasional, bahkan nyawa manusia. Singkatnya, fault tolerance menjadilebih penting karena fungsi komputer dan sistem digital lainnya menjadi lebih kritis.

Fault tolerance merupakan sistem perlengkapan yang dirancang didalam suatu sistem untuk mencapai tujuan perancangannya. Sebagai rancangan maka harus sesuai dengan fungsi dan tujuan kerjanya, hal ini memerlukan pemenuhan kebutuhan lain.
Ada tiga istilah pokok dalam rancangan fault tolerance yaitu, fault, error,dan failure. Ketiganya mempunyai hubungan sebab dan akibat. Tegasnya, fault adalah penyebab error, dan error adalah penyebab failure. Fault (kerusakan) adalah kerusakan fisik, ketidak sempurnaan, atau kerusakan yang terjadi di dalam komponen perangkat keras atau lunak. Contoh fault : short (hubungan singkat) antara konduktor listrik, open atau break dalam konduktor, atau kerusakan fisik atau ketidaksempurnaan dalam device semikonduktor. Demikian juga pemakai ingin membuat katup off, sistem akan mengalami kegagalan. Fault dapat disebabkan oleh bermacam-macam hal yang terjadi di dalam komponen elektronika, diluar komponen, atau selama komponen tersebut atau proses perancangan sistem. Hal ini sangat penting untuk memahami semua kemungkinan penyebab fault. Untuk memahami bermacam-macam penyebab fault, kita
pertamatama memeriksa proses rancangan khusus untuk mengidentifikasi bidang-bidang dimana fault dapat terjadi.


Kemungkinan penyebab fault dapat dihubungkan dengan permasalahan pada empat bidang dasar yaitu : spesifikasi, implementasi, komponen, dan factor luar.

1. Kesalahan spesifikasi (Spesification Mistake).
Ini termasuk algortima, arsitektur, atau spesifikasi perancangan hardware dan software yang salah.

2. Kesalahan implementasi (Implementation Mistake).
Implementasi, yang didefinisikan di sini, adalah proses transformasi spesifikasi hardware dan software ke dalam bentuk fisik hardware dan software sebenarnya. Implementasi dapat memasukkan fault yang disebabkan design yang jelek, pemilihan komponen yang jelek, konstruksi jelek, kesalahan perngkodean software.

3. Kerusakan komponen (Component Defect).
Ketidaksempurnaan manufaktur, kerusakan device acak, dan komponen using adalah contoh jenis kerusakan komponen. Kerusakan dapat diakibatkan putusnya ikatan dalam rangkaian atau korosi logam. Kerusakan komponen paling umum dipertimbangkan sebagai salah satu dari beberapa penyebab fault.

4. Gangguan luar (External Disturbance).
Seperti : radiasi, interfensi elektromagnetik, kerusakan akibat
perang,kesalahan operator dan lingkungan yang ekstrim.

Semua fault-tolerant dilakukan dengan memanfaatkan dan mengelola redundansi. Redundansi adalah properti memiliki lebih banyak sumber daya dari minimal yang diperlukan untuk melakukan pekerjaan.  Ketika kegagalan terjadi, redundansi dimanfaatkan untuk menutupi atau mengatasi kegagalan tersebut, dengan demikian sistem dapat mempertahankan tingkat fungsional yang diinginkan.

Jenis-jenis Redundansi
Ada 4 jenis redundansi :
  1. Redundansi hardware, dilakukan dengan memasukkan hardware tambahan ke dalam desain untuk mendeteksi atau mengesampingkan efek dari komponen yang gagal. Misalnya, kita dapat menggunakan dua atau tiga prosesor yang melakukan fungsi sama. Dengan memiliki dua prosesor, kita dapat mendeteksi kegagalan prosesor tunggal; dengan memiliki tiga, kita bisa menggunakan output untuk mengganti output yang salah dari prosesor tunggal yang rusak.
  2. Redundansi software, dapat dilakukan dengan membuat dua atau lebih versi perangkat lunak dengan harapan bahwa versi yang berbeda tidak akan gagal pada input yang sama. Versi sekunder  dapat didasarkan pada algoritma sederhana dan tidak lebih akurat dari versi utama, untuk digunakan hanya pada saat perangkat lunak utama mengalami kegagalan. Sama seperti redundansi hardware, beberapa versi dari program ini dapat dijalankan baik secara bersamaan (membutuhkan hardware berlebihan juga) atau berurutan (memerlukan waktu tambahan) saat deteksi kegagalan.
  3. Redundansi informasi, bentuk paling terkenal dari redundansi informasi adalah deteksi kesalahan dan koreksi kode program. Di sini, bit ekstra (yang disebut bit cek) ditambahkan ke bit data asli sehingga kesalahan dalam bit data dapat dideteksi atau bahkan dikoreksi. Mendeteksi kesalahan dan memperbaiki kesalahan-kode banyak digunakan saat ini dalam unit memori dan berbagai perangkat penyimpanan untuk melindunginya dari kegagalan ringan.
  4. Redundansi waktu, dilakukan dengan mengulang pelaksanaan program yang sama pada hardware yang sama. Redundansi waktu ini efektif terutama terhadap kesalahan sementara. Karena sebagian besar kesalahan hardware bersifat sementara, tidak mungkin bahwa eksekusi terpisah akan mengalami kesalahan yang sama. Redundansi waktu dapat digunakan untuk mendeteksi kesalahan sementara dalam situasi di mana kesalahan tersebut dinyatakan mungkin tidak terdeteksi. Redundansi waktu juga dapat digunakan untuk mendeteksi kesalahan pada sistem yang mampu pulih dari efek dari kesalahan dan mengulangi perhitungan. Dibandingkan dengan jenis redundansi lain, redundansi waktu memiliki hardware dan software yang jauh lebih rendah namun menghasilkan kinerja tinggi.

Ukuran Dasar Fault Tolerance
Ukuran yang digunakan untuk mengukur fault-tolerance adalah kehandalan (reliability) dan ketersediaan (availability). Keandalan secara konvensional dinyatakan dengan R(t), adalah probabilitas (sebagai fungsi dari waktu t) bahwa sistem telah aktif terus menerus dalam interval waktu [0, t]. Ukuran ini cocok untuk aplikasi di mana gangguan sesaat dapat berdampak pada biaya yang tinggi. Salah satu contohnya adalah komputer yang mengendalikan proses fisik seperti pesawat, yang jika gagal akan mengakibatkan bencana.
Terkait erat dengan keandalan adalah Mean Time to Failure (MTTF), dan Mean Time Between Faiure (MTBF). MTTF adalah waktu rata-rata sistem beroperasi sampai kegagalan terjadi, sedangkan MTBF adalah waktu rata-rata antara dua kegagalan berturut-turut. Perbedaan antara keduanya adalah jumlah waktu yang dibutuhkan untuk memperbaiki sistem setelah kegagalan pertama. Disebud dengan Mean Time to Repair (MTTR), kita memperoleh

MTBF = MTTF + MTTR

Ketersediaan (availability) dinyatakan dengan A(t), yaitu rata-rata waktu selama interval [0, t] dimana sistem aktif. Ukuran ini cocok untuk aplikasi di mana kinerja yang berkesinambungan tidak kritis tetapi akan berdampak biaya tinggi jika sistem tidak aktif dalam waktu yang signifikan. Sebuah sistem reservasi maskapai penerbangan harus memiliki ketersediaan tinggi, karena kegagalan sistem dapat menunda penerbangan pelanggan dan bisa kehilangan penjualan, namun,  kegagalan d sekali-kali dalam durasi pendek dapat ditoleransi. Ketersediaan jangka panjang, dinotasikan dengan A, didefinisikan sebagai
A dapat direpresentasikan sebagai probabilitas bahwa sistem akan sampai di beberapa titik acak waktu, dan hanya bermakna pada sistem yang memiliki perbaikan terhadap komponen yang salah. Ketersediaan jangka panjang dapat dihitung dari MTTF, MTBF, dan MTTR sebagai berikut:


Teknik-Teknik Fault Tolerance
Fault tolerance dapat dicapai dengan banyak teknik. Tentu saja fault masking adalah salah satu pendekatan untuk mentolerir fault yang terjadi. Pendekatan lainnya adalah mendeteksi dan melokasikan fault yang terjadi dan rekonfigurasi sistem untuk mengganti komponen yang rusak.
Rekonfigurasi adalah proses penghilangan bagian system yang rusak dan memperbaiki sistem pada kondisi atau keadaan operasional. Jika teknik rekonfigurasi digunakan, perancang harus memperhatikan proses-proses berikut ini :

1. Fault detection adalah proses pengenalan apakah sebuah fault terjadi. Fault detection sering digunakan sebelum prosedur pemulihan dapat diimplementasikan.

2. Fault location adalah proses penentuan dimana fault terjadi sehingga pemulihan yang tepat dapat diimplementasikan.

3. Fault containment adalah proses pengisolasian fault dan mencegah akbiat fault menyebar ke selururh sistem. Fault containment dibutuhkan dalam semua rancangan fault tolerance.

4. Fault recovery adalah proses dari penetapan operasional atau perolehan kembali status operasional lewat rekonfigurasi jika sekiranya ada fault. Pengembangan fault-tolerant sistem membutuhkan pertimbangan dari banyak persoalan design. Diantaranya adalah fault detection, fault containment, fault recovery, dan fault masking.

0 comments: