İçeriğe atla
Makale

RAID Nedir? RAID 0, 1, 5, 6 ve 10 Farkları

RAID seviyelerinin kapasite ve arıza farkını, rebuild sırasındaki riski, donanım ve yazılım RAID'ini ve RAID'in neden yedek sayılmadığını anlattık.

Oğuzhan Gerçek··7 dk okuma
RAID Nedir? RAID 0, 1, 5, 6 ve 10 Farkları

Kısa cevap: RAID (redundant array of independent disks), birden çok diski tek bir mantıksal disk olarak sunan ve veriyi disklere şeritleme, aynalama ya da parity (eşlik bilgisi) ile dağıtan tekniktir. RAID 0 hız kazandırır ama tek disk arızasında veri kaybolur; RAID 1 veriyi aynalar; RAID 5 bir, RAID 6 iki disk arızasına dayanır; RAID 10 aynalamayla şeritlemeyi birleştirir. Arızalı diskin verisi yeni diske yazılırken (rebuild) dizi en savunmasız hâlindedir. RAID yedek değildir: silinen ya da şifrelenen veri bütün disklerde aynı anda değişir.

RAID nedir, nereden çıktı?

Red Hat'in tanımıyla RAID veriyi birden çok sürücüye dağıtarak saklar, bir sürücü arızalandığında veri kaybını önlemeye yardım eder ve bilgisayara tek bir mantıksal birim gibi görünür.

Terim, UC Berkeley'den David Patterson, Garth Gibson ve Randy Katz'ın 1988'de ACM SIGMOD konferansında sunduğu "A Case for Redundant Arrays of Inexpensive Disks (RAID)" makalesinden geliyor (Computer History Museum). Makalenin Aralık 1987 tarihli teknik rapor sürümü, kişisel bilgisayar disklerinden kurulan dizilerin tek büyük ve pahalı diske (SLED) göre performans, güvenilirlik, enerji tüketimi ve ölçeklenebilirlikte bir büyüklük mertebesi iyileşme vaat ettiğini savunuyor ve beş RAID seviyesi tanımlıyor. "Inexpensive" (ucuz) sözcüğü sonradan "independent" (bağımsız) oldu. RAID'in sunucudaki yeri sunucu yazımızda, veri depolamanın tanımı sözlüğümüzde var.

Şeritleme, aynalama ve parity

Seviyeler üç tekniği birleştirir:

  • Şeritleme (striping): Veri parçalara bölünüp sırayla bütün disklere yazılır; Red Hat'e göre düşük maliyetle yüksek giriş-çıkış performansı verir.
  • Aynalama (mirroring): Aynı veri her diske yazılır.
  • Parity: Veri bloklarından bir düzeltme bilgisi hesaplanır; bir disk kaybolunca eksik veri kalan bloklardan ve parity'den yeniden üretilir.

Bir disk arızalandığında dizi bozulmuş (degraded) moda geçer: SNIA'ya göre isteklere cevap vermeyi sürdürür ama yedekliliğini kaybetmiştir. Yedeklilik, arızalı diskteki veri yeni diske yazılınca, yani rebuild bitince geri gelir.

RAID 0, 1, 5, 6 ve 10: kapasite ve dayanıklılık

Örnek hesapta dört adet 8 TB disk (RAID 1'de iki) varsayıldı. Kapasite kuralları Red Hat'ten, dayanıklılık bilgileri Linux md belgesinden alındı.

  • RAID 0: Yalnızca şeritleme; kapasite disklerin toplamı, 32 TB. Yedeklilik yok; tek disk arızası veri kaybı demek.
  • RAID 1: Aynalama; kapasite en küçük diskinki kadar, iki 8 TB diskle 8 TB. N diskli bir ayna N-1 disk kaybını kaldırır.
  • RAID 5: Parity bütün disklere dağıtılır; kapasite (N-1) × disk, 24 TB. Bir arızaya dayanır. Red Hat'e göre en yaygın RAID türü; okuması yazmasından belirgin biçimde hızlı.
  • RAID 6: Çift parity; kapasite (N-2) × disk, 16 TB. Herhangi iki diskin kaybını karşılar, ama Red Hat'e göre yazmaya ek yük bindirir.
  • RAID 10: Aynalanmış disklerin şeritlenmesi (RAID 1+0); iki kopyayla kapasite yarıya iner, 16 TB. md'ye göre dayanıklılık yapılandırmaya bağlı: tek arızada veri kaybolmaz, ama ikinci arıza aynı bloğun öbür kopyasına denk gelirse kaybolur.

Rebuild: arızadan sonraki en riskli saatler

Linux'un md sürücüsü, yazma hatası veren diski arızalı işaretleyip kalan disklerle çalışmayı sürdürür; yedek (spare) disk varsa rebuild'e hemen onun üzerinde başlar. Linux RAID wiki'sine göre rebuild, dizideki bütün disklere ağır yük bindirir.

Süreyi disk büyüklüğü ve yük belirler: varsayılan ayarlarda md, rebuild için cihaz başına saniyede 200.000 KiB hedefler; dizide başka iş varsa hedef saniyede 1.000 KiB'a iner. Örnek hesap: üst hedefte bile 20 TB'lık bir diskin baştan sona yazılması yaklaşık 27 saat sürer; RAID 5 bu süre boyunca ikinci bir arızaya dayanamaz.

Arızaları bağımsız saymak da yanıltıcı. RAID makalesinin yazarlarından Garth Gibson'ın Bianca Schroeder ile yaptığı, yaklaşık 100.000 diski kapsayan FAST '07 çalışmasında veri sayfalarındaki en fazla %0,88'lik yıllık arıza oranına karşı sahada %2 ile %4 arası yıllık değiştirme oranları yaygındı; bazı sistemlerde oran %13'e çıktı. Çalışmaya göre üstel dağılım varsayımı, rebuild sırasında ikinci arıza olasılığını büyük ölçüde küçük gösteriyor: incelenen cluster'da iki diskin bir saat içinde arızalanma olasılığı gerçek veride dört kat, 10 saat içinde iki kat yüksekti.

Linux md belgesine göre diskler her an bozuk blok geliştirebilir; bütün blokları düzenli okumak (scrubbing) bunları erken yakalar. OpenZFS'in dRAID düzeni ise rebuild yükünü dağıtık yedek disklerle bütün disklere yayıp süreyi kısaltıyor.

Donanım RAID'i, yazılım RAID'i ve ZFS RAID-Z

  • Donanım RAID'i: Red Hat'e göre diziyi sunucudan bağımsız bir denetleyici yönetir; kart işletim sistemine bir SCSI denetleyicisi gibi görünür.
  • Linux: Çekirdeğin md sürücüsü RAID'i uygular, mdadm aracı yönetir. Red Hat'e göre pahalı denetleyici kartı gerekmez ve dizi yeniden oluşturulmadan başka bir Linux makinesine taşınabilir.
  • Windows: Storage Spaces diskleri bir havuzda toplar; havuzdan simple, mirror ya da parity düzeninde sanal diskler ayrılır.

Parity'li düzenlerin bilinen zayıflığı write hole: md belgesine göre yarıda kesilen yazma parity'yi tutarsız bırakıp veri kaybına yol açabilir. Linux'ta md buna karşı journal ve RAID 5 için PPL (partial parity log) seçeneklerini sunuyor. OpenZFS'in RAID-Z düzeni ise RAID 5'in write hole'u ortadan kaldıran bir çeşidi; raidz1, raidz2 ve raidz3 sırasıyla bir, iki ve üç disk arızasına dayanıyor.

RAID yedek değildir

Linux RAID wiki'si açıkça yazıyor: RAID, düzgün bir yedeğin ve izleme düzeninin yerini tutmaz. Aynalama aynı veriyi her diske yazar, parity her değişiklikte güncellenir. Bu yüzden yanlışlıkla silinen bir dosya ya da fidye yazılımının şifrelediği bir klasör bütün disklerde aynı anda değişir. Cihazın kaybı da bütün kopyaları birlikte götürür.

Çözüm, ayrı bir sistemde, tercihen değiştirilemez bir kopya. 3-2-1 kuralını yedekleme yazımızda, saldırının akışını fidye yazılımı yazımızda, NAS cihazlarındaki RAID'i NAS yazımızda anlattık. Yedek tarafını yedekleme, replikasyon ve kurtarma hizmetimizde ele alıyoruz.

Erasure coding: dağıtık depolamada RAID'in karşılığı

RAID diskleri tek bir sunucunun ya da denetleyicinin içinde birleştirir; sunucu giderse dizi de gider. Dağıtık depolama ise aynı fikri sunucular arasına taşır: Ceph belgelerine göre erasure coding kullanan bir havuz her nesneyi K veri ve M kodlama parçasına böler; M, veri kaybı olmadan aynı anda kaybedilebilecek OSD (depolama birimi) sayısıdır ve parçalar varsayılan olarak farklı sunuculara dağıtılır. K=2, M=2 profili 1 TB veri için 3 yerine 2 TB ham alan harcar, üç kopyalı replikasyon kadar dayanıklıdır. Bedeli, özellikle HDD'lerde ve kurtarma sırasında performanstır. Yöntemi nesne depolama yazımızda, HCI'daki karşılığını HCI yazımızda anlattık.

Hangi RAID seviyesi seçilmeli?

Microsoft'un Storage Spaces önerileri RAID için de yol gösteriyor:

  • Yedeksiz şeritleme (RAID 0): Geçici veri, scratch diskler ve veri korumasının kritik olmadığı işler.
  • Aynalama (RAID 1, RAID 10): Kritik iş yükleri, veritabanları ve sanal makine depolaması.
  • Parity (RAID 5, RAID 6): Arşiv, yedek depoları ve çoğunlukla sıralı okunan işler; parity hesabı yazmayı yavaşlatır.

Linux RAID wiki'sine göre büyük disklerde arızalar çoğu zaman bir diskten ötekine sıçrıyor; wiki, RAID 5'e yedek disk eklemek yerine RAID 6'yı öneriyor. Kapasiteyi, disk sayısını ve rebuild süresini birlikte planlamayı veri merkezi ve altyapı mühendisliği, işletimi depolama ve veri altyapısı hizmetimizde ele alıyoruz.

Sık sorulan sorular

RAID ne demek? Redundant array of independent disks, yani bağımsız disklerden oluşan yedekli dizi demek: birden çok diski tek bir mantıksal disk gibi kullanan teknik.

RAID 5 nedir? Veriyi ve parity bilgisini bütün disklere dağıtan RAID düzenidir. Bir disk arızasına dayanır; N diskin N-1'inin kapasitesi kullanılır.

RAID 5 ile RAID 6 arasındaki fark nedir? RAID 6 çift parity tutar ve herhangi iki diskin kaybına dayanır, RAID 5 ise yalnızca birine. Bedeli bir disk daha az kapasite ve daha ağır yazma yüküdür.

RAID yedek yerine geçer mi? Hayır. RAID disk arızasına karşı korur; silinen, bozulan ya da şifrelenen veri bütün disklerde aynı anda değişir.

Yazılım RAID'i mi, donanım RAID'i mi? İkisi de aynı seviyeleri uygular. Donanım RAID'inde işi denetleyici kartı yapar; yazılım RAID'i ek kart istemez ve Linux'ta dizi başka makineye taşınabilir.

Kaynaklar