RAID 1, RAID 1+0 & RAID 5.. Which one is better?..

Kalau sudah bicara performance, sebenernya saya prefer untuk share offline aja.. lebih enak jelasinnya. Tapi gpp lah.. ini sedikit share aja ttg raid system di disk. Meskipun bahasannya ini sebenernya enakan dibikin teknis, mudah2an artikel ini cukup gamblang supaya lebih mudah dipahami ๐Ÿ™‚ 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.

Hmm.. sudah malam nih. Karena tulisannya juga sudah cukup banyak, untuk sementara ini dulu yaa.. kalau mau lagi bisa dijelaskan secara offline aja.. Semoga bermanfaat.

27 tanggapan untuk “RAID 1, RAID 1+0 & RAID 5.. Which one is better?..

  1. Pak Iwan, itu data IBM jaman dulu (2003), waktu IBM baru punya ESS, dan saat itu ESS-nya hanya bisa RAID-0 or RAID-5, ngga bisa RAID-1 dan RAID-10.
    Utk oracle log, memang sequential tapi tdk streaming seperti I/O nya tape, sehingga kaya kayanya tetap lebih bagus kalau pakai RAID-10. Or kalau mau cepet & mau ngoprek2x (juga kalau storagenya punya fungsi dan bisa di oprek, or punya akses engineer password utk masuk ke kontroller command) bisa dicoba raid-1 or raid-10 dan dipilih track2x tertentu saja yang posisi fisiknya dekat dgn posisi default dari head.

  2. deuh yang pernah jualan ESS.. ๐Ÿ™‚
    di test ini ESS 800nya sudah bisa raid 10 dan raid 5 koq..
    paradigm penggunaan cylinder yang dekat untuk mengurangi delay dari pergerakan headnya sepertinya masih berlaku untuk internal disks. dulu jaman masih pegang solaris pernah juga implement cara ini. dengan metoda ini kita harus bisa define data2 yg IOnya tinggi untuk diletakkan di partisi pada cylinder tertentu saja di tengah2. data yg lain bisa diletakkan pada cylinder awal dan akhir.
    Tapi itu dulu..
    Kalau sekarang dengan storage array dengan jumlah disks yang buanyak dan memiliki cache rasanya sudah nggak dipakai lagi tuh.. hmm.. bentar, jadi berfikir nih… bisa nggak yaa metode diatas di terapkan di storage array seperti skg nih. seandainya pun bisa kayaknya ribet banget deh.. (lha wong dulu aja ribet.. hehehehe)

    Sekarang sudah jamannya memanfaatkan teknologi memory yang jauh lebih cepat sebagai cache ataupun disk (ssd). Bisa juga dengan memisahkan data2 yg random write intensive di disk2 RAID 10.. sisanya RAID 5..

    1. Kang Cecep,
      di artikel ini memang nggak membahas mengenai JBOD karena concernnya adalah perbandingan ketiga RAID type di atas.

      JBOD sendiri yang merupakan sekumpulan disk (Just a Bunch Of Disks) hanya berfungsi menggabungkan beberapa HDD jadi 1 virtual disk yang berukuran besar. Nggak ada proteksi RAIDnya. However, biasanya multiple JBOD diproteksi menggunakan RAID software di sisi operating system untuk meningkatakan availabilitynya. Secara performance rasanya (maaf belum pernah compare langsung, ini asumsi berdasarkan informasi2 yg ada) nggak akan lebih cepat dari raid system.

      meskipun JBOD typenya mirip2 dengan RAID 0 yang juga tanpa proteksi, tapi penulisan JBOD nggak di stripe seperti pada RAID 0. JBOD menulis dengan cara concatenated. Setelah disk pertama penuh, kemudian menulis disk kedua. setelah disk kedua penuh lanjut menulis ke disk ketiga dan seterusnya. sehingga proses tulisnya, sequential writing maupun random writing, menjadi lebih lambat dibanding raid system yang mampu memanfaatkan raid membernya untuk menambah spindle pada saat penulisan. Untuk proses readnya juga kurang lebih sama kecuali untuk random read pada data yang sudah tertulis penuh ke seluruh disk JBOD tsb.
      CMIIW.. ๐Ÿ™‚

  3. Nah kalau sebelumnya banyak yang menanyakan pengertian dan cara konfigurasi RAID
    sekarang sy punya permasalahan bagai mana cara mengakses 4 hardisk yang telah di konfigurasi RAID 1+0 dari komputer lain. karena system server utamannya bermasalah.
    Awalnya sy pakek Mobo Intel, skrg sy mau akses ke4 disk sy tadi menggunakan mobo lain dell T310
    permasalahannya adalah Raid array saya tidak di kenali di raid-tools T310, hanya ada pilihan create new array, mohon bantuannya

    trima kasih sebelumnya
    Kurniawan

    1. wah.. sayang sekali datanya nggak di backup yaa..
      data protection memang baru berasa penting kalau sudah kejadian begini nih mas..

      Saya kurang yakin dengan beda brand/chipset di mother board bisa mengenali raid configuration yang lama. Most likely nggak akan dikenal lagi raid configuration yg awal. Mungkin kalau masih menggunakan type mother board yang sama raid configurationnya masih bisa dibaca lagi oleh mother board yang baru (pls check the manual). Tentunya dengan pengaturan posisi HDD yang sama seperti di motherboard sebelumnya.

      Suggest saya, selamatkan saja dulu data yang penting dan diperlukan. Karena konfigurasi RAID sebelumnya adalah 1+0 maka data terbagi dalam 2 pasang disks. jadikan slave saja HDD tersebut kemudian di mount file systemnya (jangan di format). lalu backup data yg penting & perlu di backup. Setelah itu baru configure HDD tersebut sebagai member raid array baru di mobo dell T310, treat as new disks. Install ulang OS & program yg diperlukan, lalu restore data yg lama.

      1. Sebelumnya saya mengucapkan terimakasih atas tanggapannya mas,
        saat itu sy menggunakan winserver2003 tanpa di RAID, sedangkan datanya (4 HD) sy RAID 1+0
        masalahnya sy tidak bisa baca sama sekali dari komputer laen win/linux, cuman di Linux disk management terdeteksi, yg 2 Disk 320GB terbaca 600GB RAID dan yang 2 Disk lagi 320GB terbaca full 320GB tanpa ada keterangan RAID (sy tdk bisa mount nya) biasanya sy melakukan mount pd HD IDE > “mount /dev/hda /mnt/hardisk
        kali ini sy tdk tau dev untuk Raid SATA saya..

        denger2 seharunya Disk ke 1 dan ke 2 scr auto terseting sbgai mirror sedangkan Disk ke 3 dan 4 terseting sbg strip, betulkah mas..
        dan katanya juga hardisk yg ke 1 dan 2 seharusnya bisa dibaca pada komputer biasa (tanpa raid) betulkah ?

        mohon pencerahannya…, sekali lagi sy ucapkan banyak terimakasih..
        Oiya tulisan njenengan sy Upload di site sy, Gpp ya..

  4. Wan, jika data yg ditulis file yg sizenya kecil namun jumlahnya banyak (mis, file cdr) type RAID apa ya yg cocok ? saya sedang workaround dengan performance disalah satu server billing yg komplain dengan proses penulisan data sebesar 300 MB takes 4 jam. namun itu tadi , datanya kecil-2. please advicenya.

    1. Oka.. Raid performance lebih berpengaruh dari intensitas baca/tulisnya dan random/sequentialnya.. mengenai performance untuk data yaang besar atau kecil lebih pas kalau bicaranya block size dari sisi storage sampe file systemnya.
      Menjadi lebih rumit kalau tuntutan aplikasinya hari menaruh ratusan ribu file kecil dalam 1 folder. Paling pas solusinya adalah dengan file management supaya file2 kecil tersebut bisa dibagi dalam beberapa folder yang lebih banyak. misal tadinya seluruh data bulanan ada dalam 1 folder, nextnya dipisah dalam subfolder harian. kalau masih terlalu banyak, dibuat lagi folder tambahan misal folder data sourcenya dari mana. yaa more less begitulah strateginya. jangan taruh terlalu banyak file dalam 1 folder.

  5. Makasih ilmunya mas Iwan,
    semisal ada kasus.. ada 4 slot di qnap NAS.. yang 2 slot sudah terisi 2TB+2TB dan disetting Raid 1 (data mirroring) dan status kapasitas sudah limit (perlu storage tambahan) lalu akan saya pasang HDD lagi untuk menambahkan slot yang kosong dengan kapasitas sama (2TB+2TB) lalu settingan yang aman seperti apa ya mas ? mohon pencerahannya. makasih.

    1. Sama-sama mas Adi..
      Untuk setting yg aman menurut saya sesuaikan saja dgn kebutuhan. Bisa pakai Raid 10 atau Raid 5.
      Oiya.. cek ke manual booknya Qnap di https://www.qnap.com/en/download untuk settingan sesuai type hardware masing2.
      Yang paling penting adalah sebelum melakukan proses Storage Expansion atau Raid Migration wajib backup dulu data yang ada di storage existing. Buat jaga2 incase ada hal yg tidak diinginkan. ๐Ÿ™‚

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 )

Foto Google

You are commenting using your Google 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 )

Connecting to %s