Acil tıpta ağır travma veya çoklu organ yetmezliği vakalarında karşılaştığımız meşhur bir klinik tablo vardır: Bir organ iflas ettiğinde —örneğin akut böbrek yetmezliği başladığında— vücut tüm yükü kalp ve karaciğere yıkar. Vücuttaki sıvı dengesini ve toksin tahliyesini sağlamak için zaten sınırda çalışan kalp, iki katı debiyle kan pompalamaya zorlanır. Ve tam o kritik dengeleme sürecinde, aşırı strese dayanamayan kalbin ritmi bozulur; tek bir organı kurtarmaya çalışırken hasta masada tüm organlarıyla birlikte multiorgan yetmezliğinden kaybedilir.
Depolama sistemleri ve veri merkezi dünyasında da tam olarak bu ölümcül domino etkisini birebir yaşatan, mühendislik tarihinin en sinsi tuzaklarından biri vardır: Terabaytlık disklerde RAID 5 kullanmak.
Sektörde uzun yıllar geçirmiş kıdemli sistem yöneticilerinin yüzünde, birisi "Storage'ı RAID 5 yaptık, hem ekonomik oldu hem tek disk toleransımız var" dediğinde beliren o buruk, acı tebessümün arkasında işte bu travmatik cenaze törenleri yatar.
RAID 5 Matematiği Neden ve Ne Zaman İflas Etti?
1990'larda ve 2000'lerin başında diskler 36 GB, 73 GB veya en fazla 146 GB kapasiteye sahipken RAID 5 bir mühendislik harikasıydı. N+1 mantığıyla bir diskin kapasitesini pariteye (parity) ayırır, tek bir disk fiziksel olarak yansa bile sistemi kesintisiz çalıştırmaya devam ederdiniz. Arızalı diski çeker, yerine yenisini takardınız ve 45 dakika içinde dizi yeniden yapılandırılır (rebuild edilir), hayat normale dönerdi.
Fakat bugün masamızda 16 TB, 20 TB hatta 24 TB kapasiteli kurumsal SATA ve SAS diskler dönüyor. Ve fizik kuralları bu devasa kapasitelerde RAID 5'in tabutuna son çiviyi çoktan çaktı.
Bu ölüm fermanının altında iki temel teknik neden yatar:
- İnanılmaz Uzun Süren Rebuild Süreleri: 18 TB'lık bir diskin RAID dizisine yeniden dahil edilmesi, saatler değil günler sürer. Hatta storage ünitesi o sırada prodüksiyonda canlı I/O yükü altındaysa, bu rebuild süreci 4 ila 7 güne kadar uzayabilir.
- URE (Unrecoverable Read Error) İstatistiği: Standart kurumsal disklerin teknik veri sayfalarında (datasheet) küçük puntolarla bir metrik yazar:
Non-recoverable read errors per bits read: 1 in 10^14(veya kurumsal SAS disklerde1 in 10^15).
Bu matematiksel gerçek ne anlama gelir? Kabaca her 12 terabaytlık veri okuma işleminde diskin fiziksel sektörlerinden en az birinde matematiksel olarak düzeltilemez bir okuma hatası meydana gelme ihtimali neredeyse kesindir!
Rebuild Kabusu: Kalan Disklerin Kalp Krizi
Senaryo her zaman aynı trajediyle başlar:
Sekiz adet 16 TB'lık diskten oluşan bir RAID 5 diziniz vardır. Bir gece yarısı üçüncü disk kırmızı ışığını yakar ve "FAILED" durumuna düşer.
Sysadmin soğukkanlılıkla veri merkezine gider, yedeğin rafta bekleyen taze diskini kızağa takar ve içeri iter. Kontrolcü (RAID controller) sevinçle rebuild sürecini başlatır: %1... %5... %12...
Fakat o rebuild işlemi sırasında arka planda ne yaşanır biliyor musunuz?
Yeni takılan o 16 TB'lık boş diskin parite verisini baştan hesaplayıp yazabilmek için, dizide kalan diğer yedi diskin üzerindeki her bir sektörün baştan sona, aralıksız olarak okunması gerekir!
Zaten aynı parti (batch) üretimden çıkmış, aynı kabinde aynı titreşime maruz kalmış, aynı sıcaklıkta 4 yıldır yan yana 7200 RPM hızla dönen o yaşlı yedi disk; hayatlarının en acımasız I/O falakasına yatırılır. Günlerce yüzde yüz okuma yükü altında cayır cayır ısınırlar.
Ve üçüncü günün sabahında, rebuild göstergesi %78 seviyesindeyken kontrol kartından o korkunç alarm sesi yükselir:
Drive 6: Read Error / I/O Timeout - Drive Dropped from Array.
CRITICAL: Multiple drive failures detected. Virtual Disk Offline.
İkinci disk strese dayanamamış, ya URE hatası vermiş ya da mekanik motoru kilitlenmiştir. RAID 5 sadece tek disk toleransına sahip olduğu için, ikinci diskin düştüğü o mikrosaniyelik anda tüm parite algoritması çöker.
100 terabaytlık veriniz artık kurtarılamaz bir gürültü yığınına (garbage data) dönüşmüştür.
"Ama Bizim RAID'imiz Vardı!" Çaresizliği
Veri kaybı yaşayan yöneticilerin ilk sığınağı her zaman aynı yanılgıdır: "Ama biz sunucuyu RAID'li kurmuştuk, verimiz nasıl uçar?"
Sistem mühendisliğinin ilk dersinde tahtaya büyük harflerle yazılması gereken kanun şudur:
RAID BİR YEDEKLEME DEĞİLDİR.
RAID, donanım arızası anında iş sürekliliği (high availability) sağlamak için tasarlanmış bir mimaridir; veriyi korumak için değil. RAID sizi fidye yazılımlarından korumaz, yanlışlıkla çalıştırılan rm -rf komutundan korumaz, kontrol kartının arızalanıp veriyi bozmasından korumaz ve en önemlisi rebuild sırasında ikinci diskin patlamasından korumaz.
Eğer RAID 5 dizinizin arkasında bağımsız, test edilmiş, harici bir depolama birimine veya teyp kasetine (LTO) alınmış güncel bir soğuk yedeğiniz (cold backup) yoksa; elinizdeki tek şey pimi çekilmiş ve mandalı gevşemiş bir el bombasıdır.
Modern Dünyada Ne Kullanmalıyız?
RAID 5, 2 TB'ın üzerindeki disklerin dünyasında artık bir tasarım hatasıdır, mesleki bir ihmaldir. Peki günümüz mimarilerinde ne yapılmalıdır?
- En Az RAID 6 (Çift Parite): Eğer mutlaka klasik parite tabanlı bir RAID kullanacaksanız, minimum standart RAID 6'dır. RAID 6, iki diskin aynı anda ölmesine tolerans tanır. Rebuild sırasında ikinci disk çökse bile sistem üçüncü diske dayanarak çalışmaya devam eder.
- RAID 10 (Mirroring + Striping): Performans ve güvenlik kritikse RAID 10 altın standarttır. Parite hesaplama yükü yoktur, rebuild işlemi diğer disklerin tümünü taramak yerine sadece ölen diskin aynasını (mirror) kopyalamaktan ibarettir; dolayısıyla dakikalar veya birkaç saat içinde tamamlanır.
- ZFS (RAID-Z2 / RAID-Z3) ve Dağıtık Depolama: Modern dosya sistemleri (ZFS, Ceph, MinIO) verinin sağlığını her blokta checksum ile doğrular. URE hatası aldığında tüm diziyi çökertmek yerine sadece o hatalı bloğu pariteden onarır ("scrubbing").
Tıpta bir kural vardır: Yaşlı ve damarları kireçlenmiş bir hastayı ağır maraton koşusuna sokamazsınız; kalbi kaldırmaz.
Yıllardır dönen 18 TB'lık SATA diskleri de tek disk toleranslı RAID 5 ile günlerce sürecek ölümcül bir rebuild maratonuna sokmayın. Ya çift parite kalkanı koyun, ya aynalama yapın; ama asla verinizi tek bir diskin parite şansına emanet etmeyin.