Tuesday, September 11, 2012

Memahami Konsep RAID


Database Storage
RoadToMaster  – Bismillaahirrahmaanirrahiim.. Memang, perjalanan dari seorang newbie di dunia IT menuntut keseriusan dalam belajar, bahkan seringkali kita menemukan hambatan dan rintangan ditengah jalan. Tapi yakinilah kawan, hambatan terbesar ada pada diri kita, yaitu kemalasan untuk mencari tahu dan menggali apa makna yang terkandung dalam ilmu tersebut. Maka dari itu, dengan Semangat Baru, Kita Mau, Kita Mampu, Kita Maju.. :D
Bahasan kali ini bermula dari jobdesc yang belum pernah saya tangani, bahkan belum pernah saya pelajari sewaktu kuliah. Maklum, dulu hampir setiap harinya berkutat dengan sistem yang berbau transmisi, hehe.. :DTapi kali ini dikasih kesempatan menjadi junior System Engineer, yang mau ga mau berhubungan dengan sistem yang lebih kompleks dari sistem transmisi itu sendiri. Yup bahasan kita kali ini adalah Sistem Redundansi Penyimpanan Data (Redundant Data Storage System).
Nah, dalam istilah penyimpanan data, dikenal sistem teknologi RAID, yaitu singkatan dari Redundant Array of Independent Disks. Berdasarkan penjelasan dari Mbah Wiki di rumahnya :D , RAID merujuk kepada sebuah teknologi di dalam penyimpanan data komputer yang digunakan untuk mengimplementasikan fitur toleransi kesalahan pada media penyimpanan komputer (utamanya adalahhard disk) dengan menggunakan cara redundansi (penumpukan) data, baik itu dengan menggunakanperangkat lunak, maupun unit perangkat keras RAID terpisah. Kata “RAID” juga memiliki beberapa singkatan Redundant Array of Inexpensive DisksRedundant Array of Independent Drives, dan jugaRedundant Array of Inexpensive Drives. Apapun singkatannya, teknologi ini intinya adalah membagi atau mereplikasi data ke dalam beberapa hard disk terpisah, sehingga 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. Kelima level tersebut adalah:
  • 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)
Berdasarkan refensi yang saya dapatkan dari mas William, ada 3 macam metode RAID berdasarkan kegunaannya yang dapat digunakan, yaitu:
- RAID 0 (metode Striping)
- RAID 1 (metode Mirroring)
- RAID 0+1 (metode Striping + Mirroring)
RAID 0 (untuk kecepatan)
RAID 0 yg dikenal juga dgn metode Striping digunakan utk mempercepat kinerja hardisk. Kapasitas total hardisk pada metode ini adalah jumlah kapasitas hardisk pertama ditambah hardisk kedua. Metodenya dilakukan dengan cara membagi data secara terpisah ke dua buah hardisk. Jadi separuh data ditulis ke hardisk pertama dan separuhnya lagi ditulis ke hardisk ke dua. Secara teoritis cara ini akan mempercepat penulisan/pembacaan harddisk. Keburukan dari cara ini adalah apabila salah satu hardisk rusak maka seluruh data akan hilang.
RAID 1 (untuk keamanan data)
RAID 1 yg dikenal juga dengan metode Mirroring digunakan utk mendapatkan keamanan data (backup). Metodenya dilakukandengan cara menyalin isi harddisk pertama ke harddisk kedua. Jadi apa yg ditulis pada hardisk pertama akan juga ditulis di hardisk kedua. Apabila salah satu hardisk rusak, maka data pada hardisk yg satunya masih ada. Keburukan dari cara ini adalah tidak adanya peningkatan kinerja sama sekali, performanya malah akan sedikit lebih pelan dibanding perrforma hardisk single (non-RAID). Selain itu kapasitas total yg anda dapat dgn metode ini hanyalah sebesar kapasatitas satu hardisk saja.
RAID 0+1 (untuk kecepatan+backup)
Metode ini merupakan kombinasi RAID 0 dan RAID 1. Dimana selain memperoleh kecepatan anda juga memperoleh keamana data. Untuk metode ini diperlukan minimal 4 harddisk. Kapastitas total yg anda dapat adalah sejumlah kapasitas 2 hardisk.
Biasanya metode RAID 1 digunakan utk server, sebab server mengutamakan keamanan data. Sedangkan utk pengguna PC rumahan RAID 0 lebih umum digunakan karena yg diutamakan bagi mereka adalah peningkatan kinerja harddisk. Tapi apakah benar RAID 0 dapat meningkatkan kinerja secara drastis? Yup, kita pahami saja konsep dibawah ini kawan :D

raid 0+1 stripping and mirroring
RAID 0+1 stripping and mirroring
Konsep Dasar 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.

>> RAID 0 (Teknik Disk 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 performansi.

raid 0 - stripping
RAID 0 - Stripping
Disk Striping mengijinkan kita untuk menulis data ke beberapa Harddisk daripada menulis data ke satu Harddisk saja. Dengan Disk Striping, setiap Harddisk fisik akan dibagi menjadi beberapa elemen stripe (berkisar antara 8 KB, 16 KB, 32 KB, 64 KB, 128 KB, 256KB, 512KB, to 1024KB). Setiap bagian stripe dalam setiap Harddisk disebut strip.
Disk Striping dapat meningkatkan kinerja karena pengaksesan data diakses dengan lebih dari satu harddisk, sehingga lebih banyak spindle disk yang bekerja dalam melayani I/O data. Namun Disk Striping (RAID 0) tidak memiliki data redundancy / proteksi data terhadap kerusakan harddisk, karena semua data ditulis langsung apa adanya ke semua Harddisk.
Dari sisi kapasitas, maka RAID 0 kita dapat menggunakan 100% dari total jumlah kapasitas harddisk yang terpasang. Contoh: 4 unit Harddisk 300GB RAID 0 akan menghasilkan total kapasitas yang dapat digunakan sebesar 1.2TB

>> RAID 1 (Teknik Disk 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 hard disk tersebut. Berikut penjelasan lebih detailnya dari salah satu sumber yang saya dapatkan:

raid 1 mirroring
RAID 1 Mirroring
RAID 1 (Disk Mirroring) bekerja dengan prinsip cermin, yaitu berpasang-pasangan dan identik antara satu dengan yang lainnya. Jadi dengan RAID 1, data yang ditulis ke satu Harddisk secara simultan ditulis juga ke Harddisk yang lainnya. Sehingga jika terjadi kerusakan 1 Harddisk pada RAID 1, system server masih memiliki data cadangan di harddisk yang lainnya. Dan pada saat Harddisk yang rusak diganti dengan yang baru, maka secara otomatis, harddisk pengganti yang baru dipasang akan melakukan sinkronisasi data dengan harddisk yang masih berfungsi (rebuilding) Keuntungan dari RAID 1 adalah data memiliki cadangan antara yang ada di harddisk yang satu dengan yang lainnya. Dan karena isi dari kedua Harddisk tersebut adalah identik, tidak jadi masalah harddisk yang mana yang boleh rusak selama pada suatu saat hanya satu Harddisk yang rusak, sampai proses sinkronisasi berikutnya selesai.
Dari sisi kapasitas, maka RAID 1 kita akan hanya memiliki kapasitas harddisk yang dapat digunakan sebanyak 50% dari total kapasitas Harddisk yang terpasang
Contoh: 4 unit Harddisk 300GB RAID 1 akan menghasilkan total kapasitas yang dapat digunakan sebesar 600GB.

>> RAID 5 (Teknik Disk Striping with Distributed Parity)
Sesuai dengan namaya, cara kerja RAID 5 sama dengan cara kerja RAID 0, yaitu menggunakan disk striping.Yang membedakan anatara keduanya adalah Parity. Parity ini digunakan untuk pengecekan dan perbaikan kesalahan (error checking and correcting). Parity ini disebar di beberapa disk untuk menghindari pengurangan kinerja (Performance bottleneck) pada saat pembuatan parity. Jika Parity disimpan di satu harddisk saja, maka disebut RAID 3 (Disk Striping with Dedicated Parity). Dengan adanya parity ini, maka system RAID 5 tersebut akan tetap berfungsi jika ada salah satu harddisk dalam RAID 5 tersebut itu rusak. Dan harddisk yang rusak tersebut dapat harddisk yang mana saja selama berada dalam satu system RAID 5 yang sama. Karena parity ini berasal dari perhitungan matematik dari suatu beberapa pecahan data, maka, pada saat ada satu bagian pecahan data yang hilang/rusak, system RAID 5 dapat “mengetahui” pecahan data yang hilang tesebut dengan menghitung ulang parity dengan pecahan data yang lainnya.

Raid 5
RAID 5
Secara sederhana, parity bisa dianalogikan dengan perhitungan matematik sbb; 6 + 5 = 11. Dimana angka 6 & 5 adalah data, dan angka 11 adalah parity. Jika suatu saat angka (Harddisk) 5 mengalami kerusakan, maka system dapat menghitung ulang berdasarkan parity (angka 11), angka(Harddisk) apa yang hilang tersebut. Jadi data yang ada pada harddisk yang rusak, tetaplah rusak, hanya saja dengan bantuan parity maka data pada harddisk yang hilang tersebut dapat dihitung ulang kembali. Hal ini juga yang menyebabkan untuk RAID 5 mengalami kerusakan harddisk adalah sebanyak 1 harddisk saja pada suatu saat.Kembali dengan analogi matematik diatas, jika angka (Harddisk) 6 + 5 hilang, maka kemungkinan angka 11 didapat bisa memiliki banyak kemungkinan, seperti 2+9, 3 + 8, dst. komputer tidak dapat membuat suatu perhitungan yang tepat jika data yang tersedia memiliki banyak kemungkinan.
Dari sisi kapasitas, maka RAID 5 kita akan memiliki kapasitas harddisk yang dapat digunakan sebanyak (N-1) x Kapasitas HDD dari total kapasitas Harddisk yang terpasang, dimana N adalah jumlah Harddisk.
Contoh:
• 3 unit Harddisk 300GB RAID 5 akan menghasilkan total kapasitas yang dapat digunakan sebesar 600GB.
• 4 unit Harddisk 300GB RAID 5 akan menghasilkan total kapasitas yang dapat digunakan sebesar 900GB.
• 5 unit Harddisk 300GB RAID 5 akan menghasilkan total kapasitas yang dapat digunakan sebesar 1.2TB, dst.

>> RAID 6 (Disk Striping with Dual Parity)
(*mulai didukung HANYA di PERC6 dan selanjutnya)
Dapat dilihat dari namanya, RAID 6 menggunakan cara kerja dan konsep yang sama dengan RAID 5 dari sisi penulisan data yang tersebar di beberapa hard disk. Yang membedakan antara RAID 6 dan RAID 5 adalah jumlah parity yang ditulis pada saat penulisan data. Jika RAID 5 menggunakan satu parity, maka RAID 6 menggunakan dua parity. Dengan menulis 2 parity, maka RAID 6 dapat mengakomodasikan kerusakan harddisk maksimal 2 unit pada saat yang bersamaan
RAID 6
RAID 6
Dari sisi kapasitas, maka RAID 6 kita akan memiliki kapasitas harddisk yang dapat digunakan sebanyak (N-2) x Kapasitas HDD dari total kapasitas Harddisk yang terpasang, dimana N adalah jumlah Harddisk.
Contoh:
• 4 unit Harddisk 300GB RAID 6 akan menghasilkan total kapasitas yang dapat digunakan sebesar 600GB.
• 5 unit Harddisk 300GB RAID 6 akan menghasilkan total kapasitas yang dapat digunakan sebesar 900GB.
• 6 unit Harddisk 300GB RAID 6 akan menghasilkan total kapasitas yang dapat digunakan sebesar 1.2TB, dst.

>> 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.
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 dalamworkstation. Penggunaan di dalam workstation umumnya digunakan dalam komputer yang digunakan untuk melakukan beberapa pekerjaan seperti melakukan penyuntingan video/audio.
Yup, itulah sekelumit konsep tentang RAID. Tunggu ya bahasan selanjutnya mengenai Veritas Cluster System, yang masih berhubungan dengan teknologi Database Storage. Selamat bersenang-senang kawan :D
Salam,
Akheededi @eMulanetwork

Perbandingan RAID Level
FeaturesRAID 0RAID 1RAID 1ERAID 5RAID 5EE
Minimum # Drives22334
Data ProtectionNo ProtectionSingle-drive failureSingle-drive failureSingle-drive failureSingle-drive failure
Read PerformanceHighHighHighHighHigh
Write PerformanceHighMediumMediumLowLow
Read Performance (degraded)N/AMediumHighLowLow
Write Performance (degraded)N/AHighHighLowLow
Capacity Utilization100%50%50%67% – 94%50% – 88%
Typical ApplicationsHigh End Workstations, data logging, real-time rendering, very transitory dataOperating System, transaction databasesOperating system, transaction databasesData warehousing, web serving, archivingData warehousing, web serving, archiving

FeaturesRAID 6RAID 10RAID 50RAID 60
Minimum # Drives4468
Data ProtectionTwo-drive failureUp to one disk failure in each sub-arrayUp to one disk failure in each sub-arrayUp to two disk failures in each sub-array
Read PerformanceHighHighHighHigh
Write PerformanceLowMediumMediumMedium
Read Performance (degraded)LowHighMediumMedium
Write Performance (degraded)LowHighMediumLow
Capacity Utilization50% – 88%50%67% – 94%50% – 88%
Typical ApplicationsHigh End Workstations, data logging, real-time rendering, very transitory dataFast databases, application serversLarge databases, file servers, application serversData archive, backup to disk, high availability solutions, servers with large capacity requirements

Sumber: