Kamis, 13 Desember 2007

Pengetahuan tentang 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 yang terjadi setelah terakhir kali data di-backup dan belum sempat untuk dibackup kembali. Karenanya reliabilitas dari suatu disk harus dapat terus ditingkatkan. Selain itu perkembangan kecepatan CPU yang begitu pesat mendorong perlunya peningkatan kecepatan kinerja disk karena jka tidak kecepatan CPU yang besar itu akan menjadi sia-sia.

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 (striping). 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 -- Redundant Array of Independent (atau Inexpensive) Disks. Selain masalah kinerja RAID juga dapat meningkatkan reliabilitas dari disk dengan jalan menggunakan disk tambahan (redundant) untuk menyimpan paritas bit/blok ataupun sebagai mirror dari disk-disk data yang ada.

Tiga karakteristik umum dari RAID ini, yaitu [Stallings2001]:
RAID adalah sebuah sebuah set dari beberapa physical drive yang dipandang oleh sistem operasi sebagai sebuah logical drive.
Data didistribusikan ke dalam array dari beberapa physical drive.
Kapasitas disk yang berlebih digunakan untuk menyimpan informasi paritas, yang menjamin data dapat diperbaiki jika terjadi kegagalan pada salah satu disk.

Peningkatan Kehandalan dan Kinerja

Peningkatan Kehandalan dan Kinerja dari disk dapat dicapai melalui dua cara:
Redundansi. Peningkatan kehandalan disk dapat dilakukan dengan redundansi, yaitu menyimpan informasi tambahan yang dapat dipakai untuk membentuk kembali informasi yang hilang jika suatu disk mengalami kegagalan. Salah satu teknik untuk redundansi ini adalah dengan cara mirroring atau shadowing, yaitu dengan membuat duplikasi dari tiap-tiap disk. Jadi, sebuah disk logical terdiri dari 2 disk physical, dan setiap penulisan dilakukan pada kedua disk, sehingga jika salah satu disk gagal, data masih dapat diambil dari disk yang lainnya, kecuali jika disk kedua gagal sebelum kegagalan pada disk pertama diperbaiki. Pada cara ini, berarti diperlukan media penyimpanan yang dua kali lebih besar daripada ukuran data sebenarnya. Akan tetapi, dengan cara ini pengaksesan disk yang dilakukan untuk membaca menjadi 2 kali karena pembacaan bisa di bagi ke kedua disk. Cara lain yang digunakan adalah paritas blok interleaved, yaitu menyimpan blok-blok data pada beberapa disk dan blok paritas pada sebuah (atau sebagian kecil) disk. Dengan cara ini maka pengaksesan sebuah blok data akan sama saja, tetapi pengaksesan beberapa blok data bisa lebih cepat karena dapat diakses secara paralel.
Paralelisme. Peningkatan kinerja dapat dilakukan dengan mengakses banyak disk secara paralel. Pada disk mirroring, di mana pengaksesan disk untuk membaca data menjadi dua kali lipat karena permintaan dapat dilakukan pada kedua disk, tetapi kecepatan transfer data pada setiap disk tetap sama. Kita dapat meningkatkan kecepatan transfer ini dengan cara melakukan data striping ke dalam beberapa disk. Data striping, yaitu menggunakan sekelompok disk sebagai satu kesatuan unit penyimpanan, menyimpan bit data dari setiap byte secara terpisah pada beberapa disk (paralel).

Level RAID

RAID terdiri dapat dibagi menjadi enam level yang berbeda:

RAID level 0.
Menggunakan kumpulan disk dengan striping pada level blok, tanpa redundansi. Jadi hanya melakukan striping blok data ke dalam beberapa disk. Kelebihan dari level ini antara lain akses beberapa blok bisa dilakukan secara parallel sehingga bisa lebih cepat. Kekurangannya antara lain akses per blok sama saja seperti biasa tidak ada peningkatan, kehandalan kurang karena tidak adanya pemback-upan data dengan redundancy. Berdasarkan definisi RAID sebagai redundancy array maka level ini sebenarnya tidak termasuk ke dalam kelompok RAID karena tidak menggunakan redundansi untuk peningkatan kinerjanya.

RAID level 1.
Merupakan disk mirroring, menduplikat setiap disk tanpa striping. Cara ini dapat meningkatkan kinerja disk, tetapi 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 memerlukan jumlah disk 2 kali lipat dari kebutuhan sebenarnya.

RAID level 2.
Merupakan pengorganisasian dengan error-correcting-code (ECC). Seperti pada memori di mana pendeteksian terjadinya error menggunakan paritas bit. Sebagai contoh, misalnya setiap byte data mempunyai sebuah paritas bit yang bersesuaian yang merepresentasikan jumlah bit "1" di dalam byte data tersebut di mana paritas bit=0 jika jumlah bit genap atau paritas=1 jika ganjil. Jadi, jika salah satu bit pada data berubah, paritas 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 dibanding level 1 (mirroring). Kelemahannya antara lain perlu adanya perhitungan paritas bit sehingga untuk penulisan/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

RAID level 3.
Merupakan pengorganisasian dengan paritas bit interleaved. Pengorganisasian ini hampir sama dengan RAID level 2, perbedaannya adalah RAID level 3 ini hanya memerlukan sebuah disk redundan, berapa pun jumlah kumpulan disk-nya, hal ini dapat 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 menggunakan sebuah bit paritas untuk sekumpulan bit yang mempunyai posisi yang sama pada setiap disk yang berisi data. Selain itu juga menggunakan data striping dan mengakses disk-disk secara paralel. Kelebihannya antara lain kehandalan (reliabilitas) bagus, akses data lebih cepat karena pembacaan tiap bit dilakukan pada beberapa disk (paralel), hanya butuh 1 disk redundan yang tentunya lebih menguntungkan dibandingkan level 1 dan 2. kelemahannya antara lain perlu adanya perhitungan dan penulisan parity bit akibatnya performanya lebih rendah dibanding yang tidak menggunakan paritas.

RAID level 4.

Merupakan pengorganisasian dengan paritas blok interleaved, yaitu menggunakan striping data pada level blok, menyimpan sebuah paritas blok pada sebuah disk yang terpisah untuk setiap blok data pada disk-disk lain yang bersesuaian. Jika sebuah disk gagal, blok paritas tersebut dapat digunakan untuk membentuk kembali blok-blok data pada disk yang gagal tadi. Kelebihannya antara lain sama seperti pada level 0 yaitu akses ke beberapa blok data bisa lebih cepat karena bisa parallel dan kehandalannya juga bagus karena adanya paritas blok. Kelemahannya antara lain akses perblok seperti biasa seperti pengunaan 1 disk, bahkan untuk penulisan ke 1 blok memerlukan 4 pengaksesan disk, yaitu 2 pengaksesan untuk membaca ke disk data yang bersangkutan dan paritas disk, dan 2 lagi untuk penulisan ke 2 disk itu pula (read-modify-write).

RAID level 5.
Merupakan pengorganisasian dengan paritas blok interleaved tersebar. Data dan paritas disebar 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 terdapat kumpulan dari 5 disk, paritas blok ke n akan disimpan pada disk (n mod 5) + 1, blok ke n dari empat disk yang lain menyimpan data yang sebenarnya dari blok tersebut. Sebuah paritas blok tidak disimpan pada disk yang sama dengan blok-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 penyebaran paritas seperti ini dapat menghindari penggunaan berlebihan dari sebuah paritas disk 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.

RAID level 6.
Disebut juga redundansi P+Q, seperti RAID level 5, tetapi menyimpan informasi redundan 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 untuk 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 untuk perbaikan data Mean Time To Repair (MTTR). Kerugiannya yaitu penalti waktu pada saat penulisan data, karena setiap penulisan yang dilakukan akan mempengaruhi dua buah paritas blok.
RAID level 0+1 dan 1+0. Ini merupakan kombinasi dari RAID level 0 dan 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 yaitu RAID 1+0, di mana disk-disk di-mirror secara berpasangan, dan kemudian hasil pasangan mirrornya di-strip. RAID 1+0 ini mempunyai keuntungan lebih dibandingkan dengan RAID 0+1. Sebagai contoh, jika sebuah disk gagal pada RAID 0+1, seluruh strip-nya tidak dapat diakses, hanya strip dari mirrornya saja yang dapat diakses, 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.

Tidak ada komentar: