Arti RAID adalah??


RAID (Redundant Array of Independent Disks) adalah suatu metode untuk menggabungkan beberapa harddisk menjadi satu kesatuan device. Raid diterapkan untuk meningkatkan keamanan data (melalui redudancy atau parity) maupun untuk meningkatkan performance (di striping, data ditulis/dibaca ke lebih dari satu disk).

berikut ini type-type RAID yang umum digunakan (gambar dan penjelasan mengenai RAID bersumber dari wikipedia) :
Raid 0 :data disebar (striped) ke beberapa disk, tanpa redudancy tanpa parity. Type ini paling cepat tapi paling nggak aman.

RAID_0

koq paling cepet?? iya, karena… waktu menulis atau membaca data ke/dari disk ini datanya disebar ke banyak disk. Jadi satu spindle disk hanya menulis beberapa data saja. Misal kita gunakan 2 disk saja yang di RAID 0 dengan stripe width 64KB, maka 64KB pertama (A1) ditulis ke disk 0, kemudian 64KB kedua (A2) ditulis ke disk 1, kemudian 64KB ketiga (A3) kembali ditulis ke disk 0, begitu seterusnya.. sehingga data 512KB (A1-A8) dibagi 256KB di disk 0 dan 256 KB di disk 1.  Kalau jumlah disknya dalam 1 raidgroup ini ada 4 disk maka setiap disk hanya menulis/membaca 64KB saja.. begitu seterusnya..  sudah kebayang kan kenapa type ini bisa lebih cepat baca/tulisnya.

tapi RAID 0 ini paling nggak aman karena datanya tersebar tanpa proteksi. Kalau salah satu disknya problem maka datanya menjadi inconsistent.  lihat saja pada gambar di atas.. kalau Disk 1 failed maka data yang tersedia hanya A1,A3,A5,A7 saja..

Raid 1 : data mirroring. Paling boros space karena untuk redudancy. Space yang bisa digunakan menjadi 50% saja. Read performance secara teori bisa 2 x lebih cepat, write performance turun sedikit saja.

RAID_1

pada saat menulis seluruh data ditulis ke seluruh disk dalam raid group ini. sehingga perlu menulis dua kali. tetapi karena penulisan data dapat dilakukan bersamaan maka lama penulisan bukan dua kali lebih lambat.

sementara itu untuk proses bacanya, karena datanya ada pada kedua disk, maka raid controller dapat membaca A1 dari disk0 dan A2 dari disk1 secara bersamaan. Sehingga, secara teori, proses pembacaannya bisa lebih cepat dua kali karena datanya tersebar pada dua disk.

Raid 5 : data disebar (striped) ke beberapa disk, kemudian dibuat parity-nya. Dengan menggunakan perhitungan XOR parity yang dibuat tidak perlu sebesar data yang disimpan. Biasanya perbandingannya adalah 4D+1P (4 data + 1 parity) atau 7D+1P. Parity disebar ke semua disk dalam raid group ini. (untuk RAID 2 dan RAID 3, paritynya ditaruh di 1 dedicated disk). Read performance secara teori bisa 3x atau 7x lebih cepat. Tapi write performance turun karena setiap menulis data harus menghitung paritynya.

RAID_5

Raid 6 : sama seperti seperti raid 5 tetapi menggunakan dual parity. Biasanya digunakan pada disk sata yang reabilitynya lebih rendah dibanding FC/SAS disk padahal performance & kapasitasnya besar besar. Karena pada disk sata perlu waktu lebih lama untuk recovery jika terjadi disk failure maka best practicenya menggunakan dual parity seperty raid 6 ini.

RAID_6

Untuk mengejar performance dan protection bisa juga menggunakan kombinasi raid 1 dan raid 0 (RAID 1+0 atau RAID 0+1). Data ditulis tersebar ke banyak disk dan di replicate tetapi tidak perlu menghitung parity.

Seperti apa RAID 1+0 dan RAID 0+1 itu? Dengan diagram di bawah ini bisa lebih mudah dijelaskan dan dilihat perbedaannya.

Raid 1+0 : data di stripe (raid 0) ke beberapa mirrored disk (raid 1)

RAID_1+0

Raid 1+0

Raid 0+1 : nah kalau yang ini kebalikannya raid 1+0. Data di mirror (raid 1) dari multiple striped set disk  (raid 0)

RAID_0+1

Raid 0+1

Raid 0+1 ini jarang digunakan karena kalau striped set pertama failed maka striped set kedua menjadi single point of failure. salain itu, setelah replacement disk yang failure pada striped set pertama maka mekanisme RAID 1 akan mengcopy data dari striped set kedua.. yang dibaca dari striped set kedua yaa seluruh striped set tsb. dengan RAID type ini lebih banyak disk yang diakses pada saat recoverynya.

yang paling umum yaa RAID 1+0.. ini yang biasa di sebut RAID10. kalau satu disk failed maka hanya di mirrornya saja yang menjadi single point of failure. Setelah replacement disk yang failure, maka mekanisme RAID 1 nya akan mengcopy data dari mirror disknya. yang dibaca hanya satu disk mirrornya saja untuk recovernya. jadi RAID 1+0 ini tingkat availabilitynya lebih tinggi dan proses recovery lebih cepat dari pada RAID 0+1.

masih ada beberapa type RAID yang lain siih.. tapi type-type RAID yang saya tulis ini adalah type-type yang paling umum digunakan.

RAID mana yang paling aman dan cepat?

Berdasarkan theory of concatenate yang saya baca, komparasi performance Raid 1+0 vs Raid 5 dengan jumlah disk yang sama per raid group (2D+2D vs 3D+1P atau 4D+4D vs 7D+1P) disebutkan bahwa RAID 1+0 mengungguli raid 5 dalam proses random writing.  Tetapi Raid 5 lebih cepat pada proses sequential writing dibanding RAID 1+0. Untuk proses sequential/random reading performancenya similar alias sama saja.

raid-performance-comparison

Kalau sudah yakin akan prilaku aplikasinya & yang dikejar adalah random write performance maka gunakanlah RAID 1+0. Tetapi kalau aplikasinya read intensive atau write intensive yang sequential write, gunakan RAID 5 saja karena performancenya bisa lebih cepat dari pada RAID 1+0 & lebih ekonomis pula. Untuk RAID 5 ini sayaprefer untuk di configure dengan mengaktifkan write cache yang cukup di storage controller ( cache write pending dibawah 30% ) & menggunakan konfigurasi multiple 7D+1P untuk mendapatkan spindle yang lebih banyak dalam satu raid group as many as possible.  Penggunaan disk spindle yang lebih banyak dalam 1 raid group akan membuat performance yang lebih baik. 14D+2p atau 28D+4p secara IOPS bisa 2x dan 4x lebih cepat dibanding 7D+1P.

btw, log file di oracle itu adalah type data yang write intensive. Oleh oracle log writer ditulis secara sequential write. Jadi menurut saya penggunaan RAID 5 masih lebih tepat daripada raid 1+0 untuk archive log maupun redo log. Teori ini memang agak berbalikan dengan suggestion SAME (Stripe and Mirror Everything) dari oracle. Buat saya pendekatan SAME yang di release tahun 2000 lalu ini lebih tepat untuk tradisional RAID yang menggunakan software base namun tidak untuk SAN based storage yang sudah menggunakan hardware untuk perhitungan RAID dan cache yang cukup besar. Pendapat ini juga diperkuat oleh test yang dilakukan oleh IBM tentang perbandingan Raid 5 dan raid 10 untuk oracle di sini. Salah satu point yang disimpulkan dari hasil test tersebut adalah “The performance of RAID 10 may be better for very high random write workloads. The amount of improvement will vary”. Jadi??.. Yaa RAID 5 lebih tepat dan lebih cepat untuk log file oracle yang sequential. Karena workloadnya sangat tinggi, penempatan log filenya bisa diatur dengan mengggunakan beberapa LUN dari raid group terpisah. Kalau masih kurang juga??.. bisa juga menggunakan solusi SSD doong. 🙂

Peningkatan performance menggunakan pendekatan hardware memang bisa dan biasa dilakukan. Tetapi berdasarkan pengalaman selama ini sih pendekatan performance dari sisi aplikasi memberikan efek lebih dahsyat daripada performance tuning di sisi hardware lho. Bukan berarti hardware tidak perlu jadi concern yaa.. Banyak sekali yang bisa dilakukan dari sisi hardware selain RAID ini.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: