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 (utamanya adalah *[[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 *<u>R</u>edundant <u>A</u>rray of <u>I</u>nexpensive <u>D</u>isks*, *<u>R</u>edundant <u>A</u>rray of <u>I</u>ndependent <u>D</u>rives*, dan juga *edundant rray of nexpensive Drives*. Teknologi ini membagi atau mereplikasi data ke dalam beberapa *hard disk* terpisah. RAID didesain untuk meningkatkan keandalan data dan/atau meningkatkan kinerja I/O dari *hard disk*.

Sejak pertama kali diperkenalkan, RAID dibagi ke dalam beberapa skema, yang disebut dengan "*[[RAID Level]]*". Pada awalnya, ada lima buah RAID level yang pertama kali dikonsepkan, tetapi seiring dengan waktu, level-level tersebut berevolusi, yakni dengan menggabungkan beberapa level yang berbeda dan juga mengimplementasikan beberapa level *proprietary* yang tidak menjadi standar RAID.

RAID menggabungkan beberapa *hard disk* fisik ke dalam sebuah unit logis penyimpanan, dengan menggunakan perangkat lunak atau perangkat keras khusus. Solusi perangkat keras umumnya didesain untuk mendukung penggunaan beberapa hard disk secara sekaligus, dan sistem operasi tidak perlu mengetahui bagaimana cara kerja skema RAID tersebut. Sementara itu, solusi perangkat lunak umumnya diimplementasikan di dalam level sistem operasi, dan tentu saja menjadikan beberapa hard disk menjadi sebuah kesatuan logis yang digunakan untuk melakukan penyimpanan.
## Konsep
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, tetapi 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, tetapi 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]]*, tetapi 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.

## Sejarah
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 perangkat tunggal oleh sistem yang menggunakannya, dan kemudian mereka memublikasikannya 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 teoretis 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, tetapi 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)
* RAID level keenam: Pengembangan terhadap RAID level kelima

## Pranala luar

*