Rabu, 13 Oktober 2010

RAID

Sejarah RAID
Pada tahun 1978, Norman Ken Ouchi dari International Business Machines (IBM) dianugerahi paten Amerika Serikat, dengan nomor 4092732 dengan judul "System for recovering data stored in failed memory unit." Klaim untuk paten ini menjelaskan mengenai apa yang kemudian dikenal sebagai RAID 5 dengan penulisan stripe secara penuh. Patennya pada tahun 1978 tersebut juga menyebutkan bahwa disk mirroring atau duplexing (yang kini dikenal sebagai RAID 1) dan juga perlindungan dengan paritas khusus yang didedikasikan (yang kini dikenal dengan RAID 4) bisa digunakan, meskipun saat itu belum ada implementasinya.
Istilah "RAID" pertama kali didefinisikan oleh David A. Patterson, Garth A. Gibson dan Randy Katz dari University of California, Berkeley, Amerika Serikat pada tahun 1987, 9 tahun berselang setelah paten yang dimiliki oleh Norman Ken Ouchi. Mereka bertiga mempelajari tentang kemungkinan penggunaan dua hard disk atau lebih agar terlihat sebagai sebuah perangat tunggal oleh sistem yang menggunakannya, dan kemudian mereka mempublikasikannya ke dalam bentuk sebuah paper berjudul "A Case for Redundant Arrays of Inexpensive Disks (RAID)" pada bulan Juni 1988 pada saat konferensi SIGMOD. Spesifikasi tersebut menyodorkan beberapa purwarupa RAID level, atau kombinasi dari drive-drive tersebut. Setiap RAID level tersebut secara teoritis memiliki kelebihan dan juga kekurangannya masing-masing. Satu tahun berselang, implementasi RAID pun mulai banyak muncul ke permukaan. Sebagian besar implementasi tersebut memang secara substansial berbeda dengan RAID level yang asli yang dibuat oleh Patterson dan kawan-kawan, tapi implementasi tersebut menggunakan nomor yang sama dengan apa yang ditulis oleh Patterson. Hal ini bisa jadi membingungkan, sebagai contoh salah satu implementasi RAID 5 dapat berbeda dari implementasi RAID 5 yang lainnya. RAID 3 dan RAID 4 juga bisa membingungkan dan sering dipertukarkan, meski pada dasarnya kedua jenis RAID tersebut berbeda.
Patterson menulis lima buah RAID level di dalam papernya, pada bagian 7 hingga 11, dengan membagi ke dalam beberapa level, sebagai berikut:
• RAID level pertama: mirroring
• RAID level kedua : Koreksi kesalahan dengan menggunakan kode Humming
• RAID level ketiga : Pengecekan terhadap disk tunggal di dalam sebuah kelompok disk.
• RAID level keempat: Pembacaan dan penulisan secara independen
• RAID level kelima : Menyebarkan data dan paritas ke semua drive (tidak ada pengecekan terhadap disk tunggal).
A. Pengertian RAID
RAID, singkatan dari Redundant Array of Independent Disks merujuk kepada sebuah teknologi di dalam penyimpanan data komputer yang digunakan untuk mengimplementasikan fitur toleransi kesalahan pada media penyimpanan komputer (terutama hard disk) dengan menggunakan cara redundansi (penumpukan) data, baik itu dengan menggunakan perangkat lunak, maupun unit perangkat keras RAID terpisah. Kata "RAID" juga memiliki beberapa singkatan Redundant Array of Inexpensive Disks, Redundant Array of Independent Drives, dan juga Redundant Array of Inexpensive Drives. Teknologi ini membagi atau mereplikasi data ke dalam beberapa hard disk terpisah. RAID didesain untuk meningkatkan keandalan data dan meningkatkan kinerja I/O dari hard disk.
RAID juga merupakan organisasi disk memori yang mampu menangani beberapa disk dengan sistem akses paralel dan redudansi ditambahkan untuk meningkatkan reliabilitas. Kerja paralel ini menghasilkan resultan kecepatan disk yang lebih cepat.
Konsep RAID
Ada beberapa konsep kunci di dalam RAID: mirroring (penyalinan data ke lebih dari satu buah hard disk), striping (pemecahan data ke beberapa hard disk) dan juga koreksi kesalahan, di mana redundansi data disimpan untuk mengizinkan kesalahan dan masalah untuk dapat dideteksi dan mungkin dikoreksi (lebih umum disebut sebagai teknik fault tolerance/toleransi kesalahan).
Level-level RAID yang berbeda tersebut menggunakan salah satu atau beberapa teknik yang disebutkan di atas, tergantung dari kebutuhan sistem. Tujuan utama penggunaan RAID adalah untuk meningkatkan keandalan/reliabilitas yang sangat penting untuk melindungi informasi yang sangat kritis untuk beberapa lahan bisnis, seperti halnya basis data, atau bahkan meningkatkan kinerja, yang sangat penting untuk beberapa pekerjaan, seperti halnya untuk menyajikan video on demand ke banyak penonton secara sekaligus.
Konfigurasi RAID yang berbeda-beda akan memiliki pengaruh yang berbeda pula pada keandalan dan juga kinerja. Masalah yang mungkin terjadi saat menggunakan banyak disk adalah salah satunya akan mengalami kesalahan, tapi dengan menggunakan teknik pengecekan kesalahan, sistem komputer secara keseluruhan dibuat lebih andal dengan melakukan reparasi terhadap kesalahan tersebut dan akhirnya "selamat" dari kerusakan yang fatal.
Teknik mirroring dapat meningkatkan proses pembacaan data mengingat sebuah sistem yang menggunakannya mampu membaca data dari dua disk atau lebih, tapi saat untuk menulis kinerjanya akan lebih buruk, karena memang data yang sama akan dituliskan pada beberapa hard disk yang tergabung ke dalam larik tersebut. Teknik striping, bisa meningkatkan performa, yang mengizinkan sekumpulan data dibaca dari beberapa hard disk secara sekaligus pada satu waktu, akan tetapi bila satu hard disk mengalami kegagalan, maka keseluruhan hard disk akan mengalami inkonsistensi. Teknik pengecekan kesalahan juga pada umumnya akan menurunkan kinerja sistem, karena data harus dibaca dari beberapa tempat dan juga harus dibandingkan dengan checksum yang ada. Maka, desain sistem RAID harus mempertimbangkan kebutuhan sistem secara keseluruhan, sehingga perencanaan dan pengetahuan yang baik dari seorang administrator jaringan sangatlah dibutuhkan. Larik-larik RAID modern umumnya menyediakan fasilitas bagi para penggunanya untuk memilih konfigurasi yang diinginkan dan tentunya sesuai dengan kebutuhan.
Beberapa sistem RAID dapat didesain untuk terus berjalan, meskipun terjadi kegagalan. Beberapa hard disk yang mengalami kegagalan tersebut dapat diganti saat sistem menyala (hot-swap) dan data dapat diperbaiki secara otomatis. Sistem lainnya mungkin mengharuskan shutdown ketika data sedang diperbaiki. Karenanya, RAID sering digunakan dalam sistem-sistem yang harus selalu on-line, yang selalu tersedia (highly available), dengan waktu down-time yang, sebisa mungkin, hanya beberapa saat saja.
Pada umumnya, RAID diimplementasikan di dalam komputer server, tapi bisa juga digunakan di dalam workstation. Penggunaan di dalam workstation umumnya digunakan dalam komputer yang digunakan untuk melakukan beberapa pekerjaan seperti melakukan penyuntingan video/audio.
Struktur RAID
Disk memiliki resiko untuk mengalami kerusakan. Kerusakan ini dapat berakibat turunnya kinerja atau pun hilangnya data. Meski pun terdapat backup data, tetap saja ada kemungkinan data yang hilang karena adanya perubahan setelah terakhir kali data di-backup. Karenanya reliabilitas dari suatu disk harus dapat terus ditingkatkan.
Berbagai macam cara dilakukan untuk meningkatkan kinerja dan juga reliabilitas dari disk. Biasanya untuk meningkatkan kinerja, dilibatkan banyak disk sebagai satu unit penyimpanan. Tiap-tiap blok data dipecah ke dalam beberapa subblok, dan dibagi-bagi ke dalam disk-disk tersebut. Ketika mengirim data disk-disk tersebut bekerja secara paralel, sehingga dapat meningkatkan kecepatan transfer dalam membaca atau menulis data. Ditambah dengan sinkronisasi pada rotasi masing-masing disk, maka kinerja dari disk dapat ditingkatkan. Cara ini dikenal sebagai RAID. Selain masalah kinerja RAID juga dapat meningkatkan realibilitas dari disk dengan jalan melakukan redundansi data.
Tiga karakteristik umum dari RAID ini, yaitu :
1. RAID adalah sekumpulan disk drive yang dianggap sebagai sistem tunggal disk.
2. Data didistribusikan ke drive fisik array.
3. Kapasitas redunant disk digunakan untuk menyimpan informasi paritas, yang menjamin recoveribility data ketika terjadi masalah atau kegagalan disk.
Jadi, RAID merupakan salah satu jawaban masalah kesenjangan kecepatan disk memori dengan CPU dengan cara menggantikan disk berkapasitas besar dengan sejumlah disk-disk berkapasitas kecil dan mendistribusikan data pada disk-disk tersebut sedemikian rupa sehingga nantinya dapat dibaca kembali.

Raid terdiri dapat dibagi menjadi enam level yang berbeda:

1.Raid level 0.
Menggunakan kumpulan disk dengan striping pada level blok, tanpa redundansi. jadi hanya melakukan striping blok data kedalam beberapadisk. kelebihan level ini antara lain akses beberapa blok bisa dilakukan secara paralel sehingga bis lebih cepat. kekurangan antara lain akses perblok sama saja seperti tidak ada peningkatan, kehandalan kurang karena tidak adanya pembekc-upan data dengan redundancy. Berdasarkan definisi RAID sebagai redudancy array maka level ini sebenarnya tidak termasuk kedalam kelompok RAID karena tidak menggunakan redundansy untuk peningkatan kinerjanya.

2.RAID level 1.
Merupakan disk mirroring, menduplikat data tanpa striping. Cara ini dapat meningkatkan kinerja disk, tapi jumlah disk yang dibutuhkan menjadi dua kali lipat kelebihannya antara lain memiliki kehandalan (reliabilitas) yang baik karena memiliki back up untuk tiap disk dan perbaikan disk yang rusak dapat dengan cepat dilakukan karena ada mirrornya. Kekurangannya antara lain biaya yang menjadi sangat mahal karena membutuhkan disk 2 kali lipat dari yang biasanya.

3.RAID level 2.
Merupakan pengorganisasian dengan error correction code (ECC). Seperti pada memory dimana pendeteksian mengalami error mengunakan paritas bit. Sebagai contoh, misalnya misalnya setiap byte data, memiliki paritas bit yang bersesuaian yang mempresentasikan jumlah bit "1" didalm byte data tersebut dimana paritas bit = 0 jika bit genap atau paritas bit = 1 jika bit ganjil. Jadi, jika salah satu bit pada salah satu data berubah dan tidak sesuai dengan paritas bit yang tersimpan. Dengan demikian, apabila terjadi kegagalan pada salah satu disk, data dapat dibentuk kembali dengan membaca error correction bit pada disk lain. Kelebihannya antara lain kehandalan yang bagus karena dapat membentuk kembali data yang rusak dengan ECC tadi, dan jumlah bit redundancy yang diperlukan lebih sedikit jika dibandingkan dengan level 1 (mirroring). Kelemahannya antara lain prlu adanya perhitungan paritas bit, sehingga menulis atau perubahan data memerlukan waktu yang lebih lama dibandingkan dengan yang tanpa menggunakan paritas bit, level ini memerlukan disk khusus untuk penerapannya yang harganya cukup mahal.

4.RAID level 3.
Merupakan pengorganisasian dengan paritas bit yang interleaved. Pengorganisasian ini hamper sama dengan RAID level 2, perbedaanya adalah pada level 3 ini hanya memerlukan sebuah disk redudan, berapapun kumpulan disknya, hal ini dapt dilakukan karena disk controller dapat memeriksa apakah sebuah sector itu dibaca dengan benar atau tidak (mengalami kerusakan atau tidak). Jadi tidak menggunakan ECC, melainkan hanya membutuhakan sebuah bit paritas untuk sekumpulan bit yang mempuntai sekumpulan bit yang mempunyai posisi yang sama pada setiap dis yang berisi data. Selain itu juga menggunakan data striping dan mengakses disk-disk secara parallel. Kelebihannya antara lain kehandalan (rehabilitas) bagus, akses data lebih cepat karena pembacaan tiap bit dilakukan pada beberapa disk (parlel), hanya butuh 1 disk redudan yang tentunya lebih menguntungkan dengan level 1 dan 2. kelemahannya antara lain perlu adanya perhitungan dan penulisan parity bit akibatnya performannya lebih rendah dibandingkan yang menggunakan paritas.

5.RAID level 4.
Merupakan pengorganisasian dengan paritas blok interleaved, yaitu mengunakan striping data pada level blok, menyimpan sebuah parits blok pada sebuah disk yang terpisah untuk setiap blok data pada disk-disk lain yang bersesuaian. Jka sebuah disk gagal. Blok paritas tersebut dapat digunakan untuk membentuk kembali blok-blok data pada disk yang bisa lebih cepat karena bisa parlel dan kehandalannya juga bagus karena adanya paritas blok. Kelemahannya antara lain akses perblok seperti biasa penggunaan 1 disk., bahkan untuk penulisan ke 1 blok memerlukan 4 pengaksesan untuk membaca ke disk data yag bersangkutan dan paritas disk, dan 2 lagi untuk penulisan ke 2 disk itu pula (read-modify-read)

6.RAID level 5.
Merupakan pengorganisasian dengan paritas blok interleaved terbesar. Data dan paritas disebr pada semua disk termasuk sebuah disk tambahan. Pada setiap blok, salah satu dari disk menyimpan paritas dan disk yang lainnya menyimpan data. Sebagai contoh, jika terdapt kumpulan dari 5 disk, paritas paritas blok ke n akan disimpan pada disk (n mod 5) +1, blok ke n dari 4 disk yang lain menyimpan data yang sebenarnya dari blok tersebut. Sebuah paritas blok tidak disimpan pada disk yang sama dengan lok-blok data yang bersangkutan, karena kegagalan disk tersebut akan menyebabkan data hilang bersama dengan paritasnya dan data tersebut tidak dapat diperbaiki. Kelebihannya antara lain seperti pada level 4 ditambah lagi dengan pentebaran paritas seoerti ini dapat menghindari penggunaan berlebihan dari sebuah paritas bit seperti pada RAID level 4. kelemahannya antara lain perlunya mekanisme tambahan untuk penghitungan lokasi dari paritas sehingga akan mempengaruhi kecepatan dalam pembacaan blok maupun penulisannya.

7.RAID level 6.
Disebut juga redudansi P+Q, seperti RAID level 5, tetapi menyimpan informasi redudan tambahan untuk mengantisipasi kegagalan dari beberapa disk sekaligus. RAID level 6 melakukan dua perhitungan paritas yang berbeda, kemudian disimpan di dalam blok-blok yang terpisah pada disk-disk yang berbeda. Jadi. Jika disk data yang digunakan sebanyak n buah disk, maka jumlah disk yang dibutuhkan pada RAID level 6 ini adalah n+2 disk. Keuntungan dari RAID level 6 ini adalah kehandalan data yang sangat tinggi, karena untuk menyebabkan data hilang, kegagalan harus terjadi pada tiga buah disk dalam interval rata-rata data mean time to repair (MTTR). Kerugiannya yaitu penalty waktu pada saat penulisan data, karena setiap penulisan yang dilakukan akan mempengaruhi dua buah paritas blok.

8.Raid level 0+1 dan 1+0.
Ini merupakan kombinasi dari RAID level 0 dan RAID level 1. RAID level 0 memiliki kinerja yang baik., sedangkan RAID level 1 memiliki kehandalan. Namun, dalam kenyataannya kedua hal ini sama pentingnya. Dalam RAID 0+1, sekumpulan disk di strip, kemudian strip tersebut di-mirror ke disk-disk yang lain, menghasilkan strip-strip data yang sama. Kombinasi lainnya adalah RAID 1+0, dimana disk-disk mirror secara berpasangan, dan kemudian hasil pasangan mirror-nya di-stri. RAID 1+0 ini mempunyai keuntungan lebih dibandingkan dengan RAID 0+1. sebagai contoh, jika sebuah disk gagal pada RAID 0+1, seluruh disknya tidak dapat di akses, sedangkan pada RAID 1+0, disk yang gagal tersebut tidak dapat diakses tetapi pasangan stripnya yang lain masih bisa, dan pasangan mirror-nya masih dapat diakses untuk menggantikannya sehingga disk-disk lain selain yang rusak masih bisa digunakan.

Implementasi RAID
Pada umumnya, RAID diimplementasikan di dalam komputer server, tapi bisa juga digunakan di dalam workstation. Penggunaan di dalam workstation umumnya digunakan dalam komputer yang digunakan untuk melakukan beberapa pekerjaan seperti melakukan penyuntingan video/audio. Implementasi RAID, selain secara hardware (dengan RAID controller) juga dapat dilakukan secara software, misalnya pada Microsoft Windows NT 4.0.

Sumber :
http://nasari.wordpress.com/2010/04/30/pengertian-raid/
http://id.wikipedia.org/wiki/RAID