RAID

RAID, merupakan kependekan dari Redundant Array of Independent Disks, terkadang juga menjadi Redundant Array of Inexpensive Disks. Secara umum RAID merupakan tata cara penggabungan beberapa cakram keras (hard disk) menjadi satu kesatuan dengan tujuan meningkatkan reliabilitas data dan performa sistem.

RAID terbagi menjadi 7 tingkatan (level), mulai dari RAID 0 s.d RAID 6. Tingkatan-tingkatan (level) dalam RAID terbagi menjadi 3 karakteristik sbb:

  1. RAID sebagai kumpulan dari beberapa hard disk (physical disk drive) yang oleh sistem operasi hanya terlihat sebagai sebuah logical drive.
  2. Data didistribusikan ke semua beberapa hard disk dalam array tsb.
  3. Redundant disk yang digunakan untuk menyimpan informasi bit paritas, fungsinya untuk mengembalikan data apabila terdapat salah satu hard disk data yang rusak.

Dua karakteristik terakhir diatas, tidak didukung oleh model RAID 0. Berikut ini adalah penjelasan dari masing-masing level RAID.

RAID 0

Model RAID ini membutuhkan minimal 2 hard disk. Model ini hanya menggabungkan kapasitas 2 atau lebih hard disk sehingga oleh sistem operasi hanya terbaca 1 buah logical drive. Jika melihat makna dari RAID, maka RAID level ini sebenarnya tidak termasuk dalam keluarga RAID, karena tidak menyertakan redudansi untuk meningkatkan performansi. Pada awalnya RAID 0 digunakan untuk membentuk sebuah logical drive yang kapasitasnya besar, namun harganya murah. Contoh kasusnya adalah: ketika harga hard disk 5TB masih sangat mahal, atau bahkan mungkin saat ini belum ada, dan kita membutuhkan hard disk dengan kapasitas tersebut, maka kita bisa menggunakan 5 buah harddisk dengan kapasitas 1TB yang digabung dengan RAID level 0. Tentunya reliabilitas data kita kesampingkan karena tidak adanya redundant disk. Dalam RAID 0, data didistribusikan ke seluruh hard disk yang ada dalam array tsb. Salah satu keuntungannya adalah: jika ada 2 buah request I/O yang berbeda yang menunggu 2 buah blok data yang berbeda, dimana blok tersebut terdapat dalam hard disk yang berbeda, maka kedua request tersebut dapat dilakukan secara parallel, sehingga meminimalisir waktu tunggu I/O, dengan kata lain RAID 0 unggul dalam kecepatan. Adapun kerugiannya adalah: dikarenakan data terbagi di beberapa hard disk, maka apabila terjadi kerusakan fisik pada salah satu hard disk, data tidak akan dapat dibaca.

RAID 1

Membutuhkan minimal 2 hard disk, hard disk pertama untuk data dan hard disk kedua sebagai mirror dari hard disk pertama (data). Apabila lebih dari 2, maka setiap hard disk memiliki mirror masing-masing. Disini hanya menyalin seluruh data yang ada di hard disk data ke hard disk kedua (mirror), sehingga apabila terjadi kerusakan pada hard disk data, maka data tetap terbaca pada hard disk mirror, yang isinya sama persis dengan hard disk data. Selain itu, keuntungan kedua adalah: request baca bisa dilayani oleh kedua hard disk, sehingga dapat meminimumkan seek time dan rotasi cakram. Keuntungan ketiga yaitu: proses penulisan ke cakram dapat dilakukan secara parallel sehingga lebih cepat. Adapun kelemahannya adalah dari sisi biaya. Dengan RAID 1 maka setiap hard disk harus memiliki 1 mirror, sehingga apabila jumlah hard disk nya sangat banyak, maka hard disk mirror juga sangat banyak, yang dengan ini tentunya biaya nya sangat mahal. Oleh karena itu biasanya RAID 1 diprioritaskan untuk hard disk yang menyimpan data-data sangat penting.

RAID 2

RAID 2 menggunakan teknik akses secara parallel. Dalam hal ini, semua hard disk berpartisipasi dalam eksekusi ketika ada request dari I/O. Biasanya spindle dari tiap hard disk selalu sinkron, sehingga semua head hard disk berada dalam posisi yang sama pada suatu waktu. RAID 2 teramasuk dalam bit level stripping. Pada RAID model ini, terdapat hard disk yang digunakan untuk mengoreksi kesalahan atau disebut dengan redundant disk. Jumlah redundant disk yang diperlukan sama dengan nilai logaritma dari jumlah hard disk data. Untuk mendeteksi kesalahan pada RAID ini, biasanya menggunakan hamming code, dimana hamming code dapat mengoreksi single bit error dan mendeteksi double bit errors. Dengan adanya pendeteksi kesalahan ini, maka RAID 2 menjadi sangat reliable. Meski demikian RAID model ini masih dianggap terlalu mahal, karena memerlukan hard disk redundant yang cukup banyak. Model RAID 2 cocok digunakan pada suatu sistem yang terdapat banyak error di dalamnya.

RAID 3

Hampir sama dengan RAID 2, hanya saja yang membedakan RAID 3 dengan RAID 2 adalah RAID 3 hanya memerlukan 1 buah hard disk redundant, tidak peduli berapa banyaknya hard disk data. RAID 3 bekerja dengan cara parallel akses, dan data di distribusikan dalam strip yang kecil (byte level). Paritas bit sederhana ditentukan untuk tiap set bit pada posisi yang sama di setiap hard disk.

Cara mengoreksi data yang salah sangat sederhana, hanya menggunakan gerbang logika XOR. Bit paritas dihitung dengan cara meng-XOR-kan semua bit data dalam hard disk data. Jika suatu saat terjadi kesalahan pada salah satu hard disk, maka cara mengembalikan datanya adalah cukup dengan meng-XOR-kan semua data pada hard disk yang tidak mengalami kerusakan dengan bit paritas. Maka hasil dari XOR tersebut adalah nilai dari bit pada hard disk data yang rusak tadi.

RAID 4

RAID 4 merupakan block level stripping dengan paritas data yang dedicated. Paritas data disimpan dalam hard disk tersendiri. Dalam RAID ini, masing-masing hard disk bekerja secara independen, akan tetapi I/O dapat mengaksesnya secara parallel. Dengan alasan tersebut model ini cocok untuk aplikasi yang menginginkan kecepatan I/O request, dan tidak memerlukan kecepatan transfer data yang tinggi. Kekurangan dari RAID 4 adalah dimungkinkan terjadi bottleneck karena paritas data disimpan dalam hard disk tersendiri.

RAID 5

Pengaturan hard disk dalam RAID 5 hampir sama dengan RAID 4, hanya saja paritas data tersebar di seluruh hard disk yang ada (tidak seperti RAID 4 yang disediakan tersendiri). Termasuk dalam block level stripping.

RAID 6

RAID ini merupakan pengembangan dari RAID 5, dimana terdapat dua buah paritas data. Dengan demikian kebutuhan hard disknya sama dengan N+2, dimana N adalah jumlah hard disk data. RAID 6 lebih menjamin ketersediaan data karena paritas data cek nya ada 2 buah. Paritas data pertama merupakan perhitunagan XOR, sedangkan paritas data lainnya menggunakan algoritma sendiri. Hal ini memungkinkan RAID ini mengembalikan data meksipun terdapat 2 buah hard disk data yang rusak.

Implementasi RAID

Ada beberapa cara untuk membuat suatu konfigurasi RAID, (i) software based RAID , seperti misalnya dilakukan konfiguras pada sistem operasi. (ii) Hardware based RAID, biasanya mahal dan merupakan proprietary. (iii) Firmware based RAID, dimana firmware untuk konfigurasi RAID dipasang pada chip.