RAID nedir sorusunun kısa cevabı: RAID (Redundant Array of Independent Disks), birden çok fiziksel diski işletim sistemine tek bir disk gibi gösteren depolama düzenidir. Seçilen seviyeye göre hız, arıza toleransı ya da ikisini birden verir: RAID 0 veriyi disklere bölerek hızlandırır, RAID 1 aynı veriyi iki diske yazar, RAID 5 ve RAID 6 parite hesabıyla bir veya iki disk kaybına dayanır, RAID 10 ise aynalı disk çiftlerini şeritleyerek hem hız hem tolerans sağlar. RAID bir disk arızasında sunucuyu ayakta tutar ama yedek değildir.
Hangisinin seçileceği disk sayısına, disk türüne ve iş yükünün ne kadar yazdığına bağlı. Yoğun yazan veritabanı için çoğu zaman RAID 10, büyük HDD'lerle arşiv için RAID 6, iki diskli küçük sunucu için RAID 1 doğru başlangıçtır. Aşağıdaki hesaplayıcı aynı diskleri beş seviyede yan yana koyuyor: kullanılabilir alan, tolerans, yazma cezası ve tahmini rebuild süresi.
- RAID 0: Yalnız şeritleme. En hızlısı, toleransı sıfır: bir disk giderse her şey gider.
- RAID 1: Ayna. İki diskten birinin alanı kopyaya gider, bir disk kaybına dayanır; kurulumu en sade seviye.
- RAID 5: Tek parite, en az 3 disk. Kapasitesi verimli ama büyük HDD'lerde rebuild riski yüksek.
- RAID 6: Çift parite, en az 4 disk. Herhangi iki disk kaybına dayanır, yazması daha pahalı.
- RAID 10: Aynalı çiftler + şeritleme. Veritabanı ve sanallaştırma için güvenli varsayılan.
- Not: Hiçbiri yedek değildir. Silinen tabloyu da fidye yazılımını da bütün disklere aynalar.
RAID nedir ve ne işe yarar?
Açılımı Redundant Array of Independent Disks, Türkçesiyle bağımsız disklerden oluşan yedekli dizi. (Kavramı 1988'de ortaya koyan Berkeley makalesinde “I” harfi Inexpensive, yani ucuz anlamındaydı; amaç pahalı tek bir disk yerine ucuz disklerden güvenilir bir bütün kurmaktı.) Birden fazla disk, ya ayrı bir denetleyici kart ya da işletim sistemindeki bir yazılım katmanı tarafından tek bir mantıksal birime dönüştürülür. Uygulama, veritabanı veya dosya sistemi altta kaç disk olduğunu bilmez; Linux'ta /dev/md0 gibi tek bir aygıt, Windows'ta tek bir sürücü görür.
Bu birleştirmeden beklenen şey kuruluma göre değişir. Hız isteyen, işi birden çok diske dağıtıp okuma ve yazmayı paralelleştirir. Arıza toleransı isteyen, bir disk öldüğünde verinin ikinci kopyasını ya da yeniden hesaplanabilir hâlini bir kenarda tutar. Bazen beklenti yalnızca dört ayrı diski tek bir büyük alan gibi kullanmaktır. Her RAID seviyesi bu beklentiler arasında farklı bir takas yapar; hepsini birden bedavaya veren seviye yok.
Sunucu operasyonunda RAID'den beklediğimiz şey tek bir cümleye sığıyor: bir disk öldüğünde servis durmasın. Disk arızası bir ihtimal değil, zamanlama meselesi. Dönen diskler mekanik olarak aşınır, SSD'ler yazma ömrünü tüketir, bazen de diskin kendi denetleyici yongası haber vermeden gider. RAID size zaman kazandırır: arızalı disk değişene kadar sunucu çalışmaya devam eder.
Ama RAID'in koruduğu tek şey disk donanımıdır. Yanlışlıkla silinen bir tablo, fidye yazılımının şifrelediği klasör ya da hatalı bir güncellemenin bozduğu kayıtlar, dizideki bütün disklere aynı anda yazılır. Bu ayrımı yazının sonlarına doğru ayrı bir bölümde, küçük bir senaryo testiyle ele alıyorum.
Yazı boyunca geçecek yedi terim
- Dizi (array)
- RAID ile bir araya getirilmiş disklerin bütünü.
- Üye disk
- Diziye veri veya parite taşıyan her bir fiziksel disk.
- Şerit (stripe)
- Verinin disklere dağıtıldığı sabit boyutlu parçaların bir sırası.
- Degraded
- Dizinin bir üyesini kaybettiği ama hâlâ çalıştığı, toleransı azalmış durum.
- Rebuild
- Yeni takılan diske kayıp verinin kopyalanması veya pariteden yeniden hesaplanması.
- Hot spare
- Dizide boşta bekleyen, arızada kendiliğinden devreye giren yedek disk.
- Denetleyici
- RAID'i yöneten donanım kartı (PERC, Smart Array, MegaRAID) ya da yazılım (mdadm, ZFS).
RAID türleri nasıl çalışır? Şeritleme, aynalama ve parite
Bütün RAID türleri üç temel tekniğin farklı karışımlarıdır. Teknikleri anlayınca seviye numaralarını ezberlemeye gerek kalmıyor: her seviyenin kapasitesi, hızı ve kaç disk kaybına dayandığı mantıkla çıkarılabiliyor.
- Şeritleme (striping)RAID 0 · 5 · 6 · 10Veri sabit boyutlu parçalara bölünür ve disklere sırayla yazılır. Dört diskli dizide büyük bir dosyanın parçaları dört diske aynı anda gider, okuma ve yazma paralelleşir. Tek başına kopya üretmez.
- Aynalama (mirroring)RAID 1 · 10Her blok iki (ya da daha fazla) diske birebir yazılır. Disklerden biri ölürse diğeri tam kopyadır, yeniden hesaplama gerekmez. Bedeli kapasitedir: iki diskten birinin alanı kopyaya gider.
- Parite (parity)RAID 5 · 6Veri bloklarından XOR işlemiyle bir kontrol bloğu hesaplanır. Bir blok kaybolursa kalanlar ve parite yeniden XOR'lanarak kayıp blok bulunur. Bir diskin alanı (RAID 6'da iki diskin) pariteye ayrılır; her yazmada parite de güncellenir.
XOR (dışlayıcı veya) iki bit farklıysa 1, aynıysa 0 verir. İşe yaramasının sebebi tersinir olması. A diski 1011, B diski 0110 tutuyor olsun. Parite: 1011 XOR 0110 = 1101. B diski öldüğünde A ile pariteyi XOR'larız: 1011 XOR 1101 = 0110. Kayıp veri geri geldi.
Gerçek dizide bu işlem her şerit için, terabaytlarca veri üzerinde yapılır. RAID 5 rebuild'inin uzun sürmesinin ve hayatta kalan bütün diskleri baştan sona okumasının sebebi bu. RAID 6'daki ikinci parite ise basit bir XOR değil, Reed-Solomon kodlamasına dayanan ayrı bir hesap; bu sayede herhangi iki diskin kaybı çözülebiliyor.
Şerit birimi (chunk) boyutu çoğunlukla 64 KB ile 512 KB arasında seçilir; mdadm'in güncel sürümlerinde varsayılan 512 KB'tır. Küçük ve rastgele G/Ç yapan veritabanlarında her isteğin tek diske düşmesi, büyük sıralı dosyalarda ise daha az parçalanma istenir. Çoğu senaryoda varsayılanı değiştirmek gerekmiyor. Değiştirecekseniz kendi iş yükünüzle ölçün, çünkü dizi kurulduktan sonra şerit boyutunu değiştirmek ya saatler süren bir yeniden şekillendirme (reshape) ya da sıfırdan kurulum demek.
RAID 0 nedir, sunucuda neden neredeyse hiç kullanılmaz?
RAID 0 yalnızca şeritlemedir. n diskin tamamı veri tutar, kapasite n × disk boyutudur, kopya ve parite yoktur. Teorik okuma ve yazma hızı disk sayısıyla kabaca doğru orantılı artar. Bedeli ağırdır: dizideki herhangi bir disk ölürse bütün dizi kaybolur, çünkü her dosyanın bir parçası o diskteydi.
Disk sayısı arttıkça risk azalmaz, artar. Basit bir hesap yapalım: her diskin bir yıl içinde bozulma olasılığına p dersek, n diskli RAID 0'ın o yıl kaybolma olasılığı 1 − (1 − p)^n olur. Hesabı görmek için p'yi örnek olarak %2 alalım; gerçek oran model, yaş, sıcaklık ve kullanıma göre değişir ama formülün yönü değişmez.
RAID 0'ın meşru olduğu yerler de var. Ortak noktaları şu: veri kaybolduğunda kimse yedekten dönmek zorunda kalmaz, iş biraz yavaşlar ama veri kaynaktan yeniden üretilir.
- Render ve video kurgu için geçici çalışma alanı
- Yeniden oluşturulabilen önbellek (cache) katmanı
- CI/derleme sunucularında geçici yapı dizinleri
- Her gece kaynaktan yeniden yüklenen analiz kopyası
cat /proc/mdstat çıktısındaki seviyedir.RAID 1 nedir, ne zaman yeterlidir?
RAID 1 aynalamadır: her blok iki diske birebir yazılır. İki diskle kullanılabilir alan tek disk kadardır, yani verim %50. Disklerden biri ölünce diğeri bütün veriyi tek başına taşır ve sunucu durmadan çalışmaya devam eder. Yeni disk takıldığında rebuild basit bir kopyadır.
Okuma tarafında iki kopya olduğu için denetleyici ya da mdadm eşzamanlı istekleri iki diske paylaştırabilir; çok sayıda küçük okuma hızlanır. Tek bir büyük dosyayı okumak ise çoğu zaman tek disk hızındadır. Yazmada her blok iki kez yazıldığı için hız tek diskten iyi olmaz; yazma cezası 2'dir.
Ne zaman yeterli? İşletim sistemi diski, küçük ve orta ölçekli veritabanı, ofis dosya sunucusu, bir ERP'nin uygulama sunucusu, e-posta ağ geçidi. İki disk yuvası olan sunucularda pratikte başka mantıklı seçenek de yok. Dedicated sunucu kiralama tarafındaki Iron paketimizdeki 2 × 480 GB SSD RAID-1 tam bu profile uyuyor: web, uygulama ve veritabanının aynı makinede durduğu küçük iş yükleri için tek disk arızasına dayanıklı, sade bir düzen.
| Yapılandırma | Kullanılabilir alan | Tolerans | Not |
|---|---|---|---|
| 2 disk (klasik) | 1 disk | 1 disk | En yaygın düzen |
| 3 disk (3 yönlü ayna) | 1 disk | 2 disk | mdadm destekler; nadiren gerekir |
| Iron: 2 × 480 GB SSD | 480 GB (≈ 447 GiB) | 1 disk | OS + uygulama + küçük DB |
grub-install /dev/sdb). Aksi hâlde ilk disk öldüğünde veri yerinde durur ama sunucu açılmaz. UEFI sistemlerde EFI bölümü genellikle RAID dışında kalır ve ikinci diske ayrıca kopyalanması gerekir. Bu ayrıntı kurulum günü unutulur, ilk arızada hatırlanır.RAID 5 ve RAID 6 nedir? Parite ve büyük disklerde rebuild riski
RAID 5 şeritleme ile tek pariteyi birleştirir. En az 3 disk ister, kullanılabilir alan (n − 1) × disk boyutudur. Parite blokları tek bir diskte toplanmaz, şerit şerit bütün disklere dağıtılır; böylece tek bir parite diski darboğaz olmaz. Herhangi bir diskin kaybına dayanır.
RAID 6 aynı düzene ikinci, bağımsız bir parite ekler. En az 4 disk ister, kapasite (n − 2) × disk boyutudur ve herhangi iki diskin kaybına dayanır. Dört diskte RAID 6 ile RAID 10 aynı kapasiteyi verir; disk sayısı arttıkça RAID 6'nın kapasite avantajı büyür. 12 diskli bir dizide RAID 6 diskin %83'ünü kullanır, RAID 10 yarısını.
Paritenin bedeli yazmada ödenir. RAID 5'te küçük bir bloğu değiştirmek için eski veri ve eski parite okunur, yeni veri ve yeni parite yazılır: dört G/Ç. RAID 6'da iki parite olduğu için altı G/Ç. Buna yazma cezası (write penalty) deniyor. Bataryalı yazma önbelleği olan donanım kartları ve tam şerit yazan sıralı işler bu cezayı büyük ölçüde gizleyebilir; rastgele küçük yazan veritabanlarında ise ceza doğrudan gecikmeye dönüşür.
Rebuild penceresi neden riskli?
Asıl mesele rebuild. RAID 5'te bir disk ölünce dizi degraded duruma düşer. Yeni disk takıldığında kayıp diskin her bloğu, kalan bütün disklerin baştan sona okunmasıyla yeniden hesaplanır. 4 × 16 TB HDD'lik bir dizide bu, 48 TB okumak demek. Diskler aynı anda canlı yükü de taşıdığı için süre günlere uzayabilir ve bu pencerede dizinin hiç toleransı kalmaz.
Bu pencerede iki şey ters gidebilir. Birincisi ikinci bir disk arızası. Aynı partiden çıkmış, aynı gün takılmış, yıllarca aynı yükü taşımış diskler birbirine yakın zamanlarda yorulma eğilimindedir ve rebuild'in yoğun okuması zayıf diski son itişe zorlar. İkincisi okunamayan sektör (URE, unrecoverable read error). HDD veri sayfaları bunu “okunan bit başına kurtarılamayan okuma hatası” olarak, disk sınıfına göre genellikle 10^14 ile 10^16 bit arasında bir üst sınırla verir. 10^14 bit yaklaşık 12,5 TB eder.
Sahada ölçülen hata oranları çoğu zaman bu üst sınırdan iyidir; “RAID 5 öldü” başlıklı hesaplar bu yüzden biraz karamsar. Ama risk sıfır değil: RAID 5 rebuild'i sırasında tek bir URE, o şeridin geri hesaplanamaması, bazı denetleyicilerde ise rebuild'in tamamen durması anlamına gelir. RAID 6 bu yüzden büyük HDD'lerin standardı oldu; rebuild sırasında bir okuma hatası ya da ikinci bir arıza olsa bile ikinci parite veriyi kurtarır.
SSD ve NVMe dizilerde tablo değişiyor. HDD'de günlere uzayan rebuild, aynı yük altında birkaç saate, küçük NVMe dizilerinde çoğu zaman bir iki saate iner; SSD veri sayfalarındaki hata oranları HDD'lerden belirgin biçimde düşük verilir. Okuma ağırlıklı, 3–6 diskli bir SSD dizisinde RAID 5 bugün de makul bir seçim olabilir; yoğun yazan bir veritabanında ise yazma cezası yerinde durur.
- 4 TB ve üstü HDD'lerle kurulmuş RAID 5
- Hot spare yok ve hafta sonu disk değiştirecek kimse nöbette değil
- Ayrı bir yedek yok ya da yedek aynı dizinin üzerinde
- Bütün diskler aynı partiden, aynı gün alınmış
RAID 10 nedir, neden veritabanı sunucularında tercih edilir?
RAID 10 (RAID 1+0) önce diskleri ikişerli aynalara ayırır, sonra bu aynaların üzerine şeritleme kurar. En az 4 disk ve klasik düzende çift sayı gerekir. Kullanılabilir alan disklerin yarısıdır, verim %50. Yazma cezası RAID 1'deki gibi 2'dir: her blok yalnız kendi ayna çiftine yazılır, parite hesabı yoktur.
Veritabanı sunucularında tercih edilmesi alışkanlıktan değil. Rastgele küçük yazmalarda paritenin oku-değiştir-yaz döngüsü olmadığı için gecikme düşük ve öngörülebilir kalır. Rebuild de hızlıdır, çünkü yeni disk yalnız kendi eşinden kopyalanır ve dizinin geri kalanı yorulmaz.
Degraded durumdayken de performans kaybı küçük kalır; RAID 5'te degraded dizide kayıp diske düşen her okuma hesap gerektirirken RAID 10'da eş disk veriyi doğrudan verir.
Tolerans konusunda dürüst olmak gerekiyor: RAID 10'un garanti ettiği tolerans 1 disktir. Şanslıysanız n/2 diske kadar dayanır (her aynadan bir disk giderse), ama aynı aynadaki iki disk giderse dizi kaybolur. “RAID 10 iki disk kaybına dayanır” cümlesi bu yüzden eksik bir cümle. Dört diskli dizide ilk arızadan sonra ikinci arızanın dizinin geri kalanından gelme ihtimali üçte iki, eş diskten gelme ihtimali üçte birdir.
Ayna çiftlerini farklı backplane'lere ya da farklı kablo kanallarına dağıtmak, aynı çiftin iki diskinin birlikte gitme riskini azaltır. Disk satın alırken aynı çiftteki diskleri farklı partilerden seçmek de eski ama işe yarayan bir alışkanlık.
Dedicated sunucu paketlerimizden Steel 4 × 960 GB NVMe, Titan 8 × 1.9 TB NVMe ile RAID-10 kullanıyor. Steel'de bu yaklaşık 1,92 TB kullanılabilir alan eder (işletim sisteminde ≈ 1,75 TiB görünür), Titan'da yaklaşık 7,6 TB (≈ 6,9 TiB). Seçimin arkasındaki mantık yukarıda anlattığım gecikme ve rebuild hesabı: üzerinde veritabanı ve sanal makine çalışacak sunucularda tutarlı gecikme ve kısa rebuild, ham kapasiteden daha değerli.
RAID 0, 1, 5, 6 ve 10 farkı: karşılaştırma tablosu
Aşağıdaki tablo beş seviyeyi aynı satırlarda karşılaştırıyor. n aktif disk sayısını, s tek disk boyutunu gösteriyor. Hız satırları teorik ve önbelleksiz değerlere dayanıyor; gerçek sonuç denetleyiciye, önbelleğe ve iş yüküne göre değişir.
| Ölçüt | RAID 0 | RAID 1 | RAID 5 | RAID 6 | RAID 10 |
|---|---|---|---|---|---|
| Minimum disk | 2 | 2 | 3 | 4 | 4 (çift) |
| Kullanılabilir alan | n × s | s (iki diskte %50) | (n − 1) × s | (n − 2) × s | n/2 × s |
| Garanti edilen tolerans | 0 | n − 1 (iki diskte 1) | 1 disk | 2 disk | 1 disk (en iyi n/2) |
| Rastgele okuma | Çok yüksek | İyi | İyi | İyi | Çok yüksek |
| Yazma cezası (G/Ç) | 1 | 2 | 4 | 6 | 2 |
| Rebuild | Yok, dizi kaybolur | Hızlı: tek disk kopyası | Yavaş: tüm diskler okunur | En yavaş | Hızlı: eşten kopya |
| Degraded performans | — | Az etkilenir | Belirgin düşer | Belirgin düşer | Az etkilenir |
| Tipik kullanım | Geçici veri, render, önbellek | OS diski, küçük sunucu | Okuma ağırlıklı SSD dizisi | Büyük HDD arşiv, yedek deposu | Veritabanı, sanallaştırma |
| Kaçının | Kaybı sorun olan her veri | Büyük kapasite ihtiyacı | Büyük HDD + yoğun yazma | Yoğun rastgele yazma | Kapasitenin her şey olduğu arşiv |
Kısa karar: yoğun yazan veritabanı ve sanallaştırma için RAID 10; büyük HDD'lerle arşiv, yedek deposu ve medya için RAID 6; yalnızca iki disk varsa RAID 1. RAID 5'i bugün çoğunlukla okuma ağırlıklı, az diskli SSD dizilerinde ve ayrı yedeği olan senaryolarda öneriyorum.
RAID 0'ı canlı veride önermiyorum. Hız gerekiyorsa RAID 10 aynı paralelliğin büyük kısmını toleransla birlikte verir.
Aynı dört diskle iki seçeneği yan yana koyalım. Aradaki 4 TB'ın değeri, iş yükünüzün yazma oranına ve rebuild penceresini ne kadar tolere edebildiğinize bağlı. %30 yazma oranında teorik rastgele G/Ç kapasitesi RAID 10'da tek diskin yaklaşık 3,1 katı, RAID 5'te yaklaşık 2,1 katı çıkıyor.
- Alan
- 12 TB
- Tolerans
- 1 disk
- Yazma cezası
- 4
- %30 yazmada G/Ç
- ≈ 2,1×
- Rebuild
- 3 diskin tamamı okunur
- Alan
- 8 TB
- Tolerans
- 1 disk (en iyi 2)
- Yazma cezası
- 2
- %30 yazmada G/Ç
- ≈ 3,1×
- Rebuild
- Yalnız eş disk okunur
RAID hesaplama: kaç disk, ne kadar kullanılabilir alan?
Disk sayısını, disk boyutunu ve türünü girin; seviyeyi seçin ya da “Tümünü karşılaştır” ile beş seviyeyi yan yana görün. Yazma oranı, teorik G/Ç çarpanını ve uyarıları değiştirir. Yük seçimi ve disk türü ise tahmini rebuild süresini belirler.
hot spare dahil
- Arıza toleransı
- 1 disk (garanti) · en iyi 2
- Yazma cezası
- 2 G/Ç mantıksal yazma başına
- Tahmini rebuild
- ≈ 27 dk örnek hız, disk başına
- Rebuild'de okunan
- 960 GB yalnız eş disk
- Rebuild yalnız eş diskten kopyadır. Garanti tolerans 1 disk; her aynadan biri giderse 2 diske kadar dayanır.
Yazma oranı ya da yük yüksek: parite cezası olmayan, rebuild'i hızlı RAID 10 bu profil için doğal tercih.
Kapasite, tolerans ve yazma cezası standart formüllerdir. Hız çarpanları teoriktir (önbelleksiz, rastgele küçük blok); rebuild süreleri örnek hızlarla hesaplanan tahmini değerlerdir ve denetleyici, rebuild önceliği, dosya sistemi ve canlı yük sonucu değiştirir. URE olasılığı veri sayfası üst sınırına göre en kötü durumu gösterir. Dosya sistemi payı düşülmez. Linux mdadm'de rebuild hızının varsayılan tavanı (speed_limit_max) 200.000 KB/s, yani yaklaşık 200 MB/s'tir; NVMe dizisinde bu değer yükseltilmezse rebuild, hesaplayıcıdaki örnek süreden uzun sürer.
TB ile TiB farkı: disk neden eksik görünüyor?
Disk üreticileri kapasiteyi ondalık birimle verir: 1 TB = 10^12 bayt. İşletim sistemleri ise çoğu zaman ikili birimle gösterir: 1 TiB = 2^40 bayt, yani yaklaşık 1,0995 × 10^12 bayt. Bu yüzden 960 GB'lık bir disk Linux'ta yaklaşık 894 GiB görünür. “Disk eksik geldi” şikâyetlerinin büyük bölümü bu farktan doğar. Üstüne dosya sistemi meta verisi, ext4'ün varsayılan olarak kök kullanıcıya ayırdığı %5 pay ve ZFS'in boş alan ihtiyacı eklenince kullanılabilir alan biraz daha azalır.
Hot spare nedir, ne zaman gerekir?
Hot spare, dizide boşta bekleyen ve bir disk ölünce denetleyici ya da mdadm tarafından otomatik olarak devreye alınan yedek disktir. Kazandırdığı şey zamandır: arıza gece üçte olsa bile rebuild, birinin disk takmasını beklemeden başlar. 8 ve üzeri diskli dizilerde, büyük HDD'li RAID 5/6'da ve veri merkezine fiziksel erişimin yavaş olduğu kurulumlarda mantıklıdır. Ofiste duran bir sunucuyu düşünün: arıza dokuz günlük bir bayram tatilinin ilk gününe denk gelirse, hot spare yoksa dizi o dokuz günü degraded geçirir. Disk değişiminin saatler içinde yapıldığı yönetilen bir sunucuda, küçük dizilerde o yuvayı kapasiteye ya da RAID 6'nın ikinci paritesine vermek de savunulabilir.
Donanım RAID mi, yazılım RAID mi? mdadm, ZFS ve RAID kartları
Donanım RAID'de iş ayrı bir denetleyici karttadır: Dell sunucularda PERC, HPE'de Smart Array, birçok markada Broadcom MegaRAID tabanlı kartlar. İşletim sistemi diskleri tek tek görmez, kartın sunduğu mantıksal birimi görür. Kartın işlemcisi pariteyi hesaplar, üzerindeki yazma önbelleği (write-back cache) yazmaları hızlandırır. Bu önbelleğin elektrik kesintisinde kaybolmaması için batarya (BBU) ya da kapasitörlü flash koruması bulunur.
Koruma yoksa ya da arızalıysa kart güvenlik için genellikle write-through moda geçer ve yazma performansı bir anda düşer; “sunucu dün gece birden yavaşladı” vakalarının bir kısmının arkasında biten bir batarya vardır.
Yazılım RAID'de diskleri işletim sistemi yönetir. Linux'ta en yaygını mdadm, Windows'ta Storage Spaces, ZFS kullanan sistemlerde (Proxmox, TrueNAS, FreeBSD) ZFS'in kendi mirror ve RAIDZ yapıları. Diskler bir HBA (RAID yapmayan, diskleri doğrudan geçiren kart) ya da anakart üzerinden doğrudan görünür. Bugünün çok çekirdekli işlemcileri için parite hesabı küçük bir yük.
NVMe'de denge değişti. NVMe diskler doğrudan PCIe hattına bağlandığı için araya klasik bir RAID kartı koymak çoğu zaman darboğaz yaratır. Bu yüzden NVMe dizilerinde yazılım RAID (mdadm, ZFS) ya da işlemci tabanlı çözümler (Intel VROC gibi; platforma göre ayrı bir donanım lisans anahtarı gerektirebilir) daha yaygın. Yeni nesil tri-mode kartlar NVMe'yi de destekliyor, ama kararı vermeden önce kartın toplam bant genişliğine bakın.
- Donanım RAID kartıPERC · Smart Array · MegaRAIDArtıBataryalı önbellekle parite yazmaları hızlanırİşletim sisteminden bağımsız; Windows ve hipervizörde aynı görünürDisk değişimi kartın LED'i ve aracıyla basitEksiKart tek arıza noktası, taşınabilirlik sınırlıNVMe'de darboğaz olabilirSessiz veri bozulmasını göremezİzleme için üretici aracı gerekir (perccli, ssacli, storcli)
- Linux mdadmmd sürücüsü · /proc/mdstatArtıDonanımdan bağımsız, diskler başka makineye taşınabilirEk kart maliyeti yok, NVMe hızını sınırlamazAçık araçlarla izlenir ve betiklenirEksiKorumalı yazma önbelleği yok; UPS önemliÖnyükleme diski düzeni dikkat isterChecksum tutmaz, bit rot'u göremez
- ZFSmirror · RAIDZ1/2/3ArtıChecksum ve kendini onarmaSnapshot ve replikasyon dahiliWrite hole sorunu yokEksiRAM ve bilgi isterDonanım RAID'in arkasına kurulmamalıvdev yapısı sonradan değiştirmesi zor kararlar içerir
Taşınabilirlik çoğu zaman gözden kaçan farktır. Donanım RAID'de dizinin tanımı kartın kendi biçimiyle disklerde ve kartta durur; kart öldüğünde diskleri okumak için genellikle aynı aileden bir karta ihtiyacınız olur. mdadm dizisi ise herhangi bir Linux makineye takıldığında mdadm --assemble --scan ile ayağa kalkar, ZFS havuzu zpool import ile başka bir sunucuya taşınır.
ZFS: checksum, RAIDZ ve Proxmox
ZFS'in ayrıca anılması gereken bir avantajı var: her bloğun sağlama toplamını (checksum) tutar. Klasik RAID iki aynadan hangisinin doğru olduğunu bilmez; diskten sessizce bozuk veri dönerse (bit rot) bunu fark etmeyebilir. ZFS okuma sırasında checksum'ı doğrular, bozuk kopyayı sağlam kopyadan onarır ve periyodik zpool scrub ile bütün havuzu tarar. Karşılığında RAM ister ve bir donanım RAID kartının arkasına değil, diskleri doğrudan gördüğü bir HBA'ya kurulmalıdır.
ZFS terimleri klasik seviyelere kabaca şöyle karşılık gelir: mirror ≈ RAID 1, ayna vdev'lerden oluşan havuz ≈ RAID 10, RAIDZ1 ≈ RAID 5, RAIDZ2 ≈ RAID 6, RAIDZ3 ise üç parite. Proxmox VE kurulum ekranı da ZFS seçeneklerini RAID0, RAID1, RAID10, RAIDZ-1, RAIDZ-2 ve RAIDZ-3 adlarıyla sunar; seviye kurulum anında seçilir. Sanallaştırma tarafında ZFS'i nasıl kurguladığımızı Proxmox ve VMware'den geçiş rehberinde ayrıca anlatıyoruz.
NVMe, SSD ve HDD ile RAID: disk türü neyi değiştirir?
Disk türü, RAID seviyesinin hesabını değiştirir. HDD'de rastgele G/Ç okuma kafasının fiziksel hareketine bağlıdır ve saniyede en fazla birkaç yüz işlemle sınırlıdır. SATA SSD'de bu sayı çok daha yüksektir, NVMe'de PCIe hattı sayesinde daha da yukarı çıkar ve gecikme mikrosaniyeler düzeyine iner. Kesin bir “X kat” vermiyorum, çünkü sonuç model, kuyruk derinliği ve blok boyutuyla çok değişiyor. Sıralama ise değişmiyor.
RAID kararına en görünür etkisi rebuild süresinde: aynı kapasitede NVMe rebuild'i HDD'ye göre çok kısa sürer ve risk penceresi daralır. Yazma cezasının ne kadar hissedildiği de değişir; HDD'de RAID 6'nın altı G/Ç'si doğrudan bekleme süresine dönüşürken NVMe'de birçok iş yükü bunu fark etmez. Bir de kapasitenin fiyatı var. Onlarca terabayt gereken arşivde HDD + RAID 6 hâlâ en ekonomik seçenek.
autotrim ya da periyodik zpool trim); bazı eski donanım RAID kartları iletmez. Linux'ta haftalık fstrim.timer birçok dağıtımda hazır gelir.iostat -x çıktısında disk bekleme süreleri yüksek değilse yeni bir RAID düzeni size hız kazandırmaz.RAID degraded oldu: disk arızalandığında ne yapılmalı?
Degraded, dizinin bir veya daha fazla üyesini kaybettiği ama hâlâ çalıştığı durumdur. RAID 1, 5 veya 10'da tek disk kaybından sonra veri yerinde durur; yalnız toleransınız ya bitmiştir ya da azalmıştır. Bu bir kesinti değil, bir uyarıdır. Doğru ele alınmazsa kesintiye dönüşür.
Aşağıdaki adımları en sık gördüğüm hatalara göre sıraladım. Komutlar Linux mdadm ve ZFS içindir; donanım RAID'de aynı adımları kartın aracıyla (perccli, ssacli, storcli) ya da IPMI/iDRAC arayüzünden yaparsınız.
- Alarmı doğrulayın, düşen diski bulunÖnce gerçekten bir üyenin düştüğünü ve hangisi olduğunu görün.
[U_]ya da[UU_U]gibi bir gösterim, alt çizginin olduğu yuvadaki diskin dizide olmadığını söyler.durum$ cat /proc/mdstat$ mdadm --detail /dev/md0 # Donanım RAID$ perccli /c0 show # Dell PERC$ ssacli ctrl all show config # HPE Smart Array$ storcli /c0 show # Broadcom MegaRAID
- Önce kritik verinin yedeğini alınTolerans kalmadıysa bundan sonraki her işlem risklidir. Disk değişiminden önce en kritik veritabanının taze bir dökümünü başka bir makineye alın ve son otomatik yedeğin başarılı olduğunu kontrol edin. Bu adımı “zaten yedek var” diye atlamayın; yedeğin çalıştığını en son ne zaman doğruladınız?
- Hayatta kalan disklerin sağlığına bakınRebuild, kalan diskleri en ağır yükle okuyacak. Reallocated_Sector_Ct ve Current_Pending_Sector değerleri artan bir HDD ya da NVMe'de Percentage Used ve Media and Data Integrity Errors değerleri yükselen bir disk varsa rebuild'i taşıyamayabilir. Böyle bir durumda önce yedeği güvenceye alın.kontrol
$ smartctl -a /dev/sdb$ smartctl -a /dev/nvme1$ nvme smart-log /dev/nvme1
- Çıkaracağınız diski seri numarasıyla eşleyinYanlış diski çekmek, degraded bir RAID 5'i saniyeler içinde kaybettirmenin en kısa yoludur.
/dev/sdXadları yeniden başlatmada değişebilir, seri numarası değişmez. Mümkünse yuvanın konum LED'ini yakın ve veri merkezindeki ekiple seri numarası üzerinden konuşun.kontrol$ ls -l /dev/disk/by-id/$ smartctl -i /dev/sdb | grep -i serial$ ledctl locate=/dev/sdb # ledmon paketi
- Diski değiştirin ve diziye ekleyinSunucu ve backplane hot-swap destekliyorsa kapatmanız gerekmez; desteklemiyorsa planlı kısa bir kesinti daha güvenlidir. Yeni diske eski diskin bölüm tablosunu kopyalayın, diziye ekleyin. Önyükleme diskiyse önyükleyiciyi de yeni diske kurun. GPT diskte
sfdisk -ddisk ve bölüm GUID'lerini de kopyalar; çakışmayı önlemek için ardındansgdisk -G /dev/sdbile yenisini üretin.değişim$ mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1# disk değiştikten sonra:$ sfdisk -d /dev/sda | sfdisk /dev/sdb$ mdadm /dev/md0 --add /dev/sdb1$ grub-install /dev/sdb # ZFS$ zpool replace tank <eski-disk> <yeni-disk>
- Rebuild'i izleyin, yükü hafifletinRebuild süresince ağır yedek işlerini, toplu raporları ve büyük içe aktarmaları erteleyin. mdadm'de
speed_limit_minvespeed_limit_maxdeğerleri (KB/s) rebuild ile canlı yük arasındaki dengeyi belirler. Varsayılan tavan 200.000 KB/s olduğu için NVMe dizilerinde rebuild beklenenden yavaş görünebilir; gece saatlerinde bu tavanı geçici olarak yükseltmek süreyi kısaltır. Donanım kartlarında aynı ayar “rebuild rate” adıyla geçer.kontrol$ watch -n 30 cat /proc/mdstat$ cat /proc/sys/dev/raid/speed_limit_min$ zpool status tank
- Bitince doğrulayın ve kaydedinDizi tekrar temiz duruma döndükten sonra bir tutarlılık kontrolü başlatın, izleme alarmının da kapandığından emin olun. Olayı kısa bir notla kaydedin: hangi disk, hangi seri numarası, rebuild ne kadar sürdü. Bir sonraki arızada bu not, tahminden daha değerli olacak.kontrol
$ mdadm --detail /dev/md0 | grep -E 'State|Rebuild'$ echo check > /sys/block/md0/md/sync_action$ zpool scrub tank
- Degraded diziye “bir bakalım” diye
fsckçalıştırmayın; dosya sistemi sorunu yoksa kazanç yok, varsa önce yedek alın. - Diziyi
mdadm --createile yeniden oluşturmayın; mevcut meta veriyi ezer. Gereken komut--assembleya da--add'dir. - Denetleyici arayüzünde “Initialize” veya “Clear Configuration” seçeneklerine dokunmayın; diziyi sıfırlarlar.
- Sağlam görünen bir diski “test etmek için” çıkarmayın.
- Rebuild bitmeden firmware güncellemesi yapmayın, sunucuyu gereksiz yere yeniden başlatmayın.
RAID yedekleme midir? RAID'in korumadığı 6 durum
RAID yedekleme değildir. RAID'in görevi tek bir şeye karşı korumaktır: disk donanımının arızası. Yedeğin görevi ise geçmişe dönebilmektir. İkisi farklı sorulara cevap verir: RAID “disk ölünce servis devam eder mi?” sorusunu, yedek “dünkü verim nerede?” sorusunu yanıtlar.
- Yanlışlıkla silinen tablo veya klasör
DROP TABLE, yanlış dizinderm -rfya da WHERE koşulu unutulmuş bir UPDATE, aynalanan bütün disklere aynı anda yazılır. RAID görevini eksiksiz yapar: hatayı da aynalar. - Fidye yazılımıSaldırgan dosyaları şifrelediğinde RAID şifreli dosyaları özenle korur. Aynı sunucuda duran yedekler de çoğu zaman aynı saldırıda şifrelenir ya da silinir.
- Uygulama hatasıHatalı bir sürüm, bir entegrasyon ya da yanlış yazılmış bir veritabanı göç betiği veriyi mantıksal olarak bozar. Diskler sağlıklıdır, veri yanlıştır.
- Denetleyici kart arızasıKartın kendisi ya da önbelleği arızalanırsa dizinin tanımı ve son yazmalar risk altına girer. Bu kez sorunun kaynağı RAID'in kendisidir.
- Dosya sistemi bozulmasıElektrik kesintisi, çekirdek hatası ya da write hole sonrası bozulan dosya sistemi bütün aynalarda birebir aynıdır.
- Veri merkezi düzeyinde olayYangın, su baskını, güç altyapısı arızası ya da sunucunun tümden erişilemez olması. Bütün diskler aynı kasadadır.
Yedekleme stratejisinin çerçevesini (üç kopya, iki farklı ortam, bir farklı lokasyon) hosting, VPS, bulut ve dedicated farkı yazısının yedekleme bölümünde anlattık, burada tekrar etmiyorum. Aşağıdaki test, kendi kurulumunuzun hangi olayda ne kadar koruduğunu görmeniz için.
“RAID mi, yedek mi?” senaryo testi
Bir olay seçin ve kurulumunuzdaki koruma katmanlarını işaretleyin. Izgara her katmanın o olayda ne yaptığını gösterir; altta altı olayın tamamı için kapsama tablonuz çıkar.
Eksik katman: Snapshot. Mantıksal hatalara karşı en hızlı çözüm saatlik snapshot; uzun vadeli geri dönüş için ayrıca yedek tutun.
| Olay | RAID 1 / 10 | Snapshot | Aynı sunucuda yedek | Başka lokasyonda yedek | Değiştirilemez yedek | Sizin kurulum |
|---|---|---|---|---|---|---|
| Tek disk arızası | ✓Korur | ✕Korumaz | ~Kısmen | ~Kısmen | ~Kısmen | Korur |
| Rebuild sırasında ikinci disk | ✕Korumaz | ✕Korumaz | ~Kısmen | ✓Korur | ✓Korur | Korumaz |
| Yanlışlıkla DROP TABLE | ✕Korumaz | ✓Korur | ✓Korur | ✓Korur | ✓Korur | Korumaz |
| Fidye yazılımı | ✕Korumaz | ~Kısmen | ✕Korumaz | ~Kısmen | ✓Korur | Korumaz |
| RAID kartı arızası | ✕Korumaz | ✕Korumaz | ~Kısmen | ✓Korur | ✓Korur | Korumaz |
| Veri merkezinde yangın veya su | ✕Korumaz | ✕Korumaz | ✕Korumaz | ✓Korur | ~Kısmen | Korumaz |
Snapshot da tek başına yedek değildir: aynı havuzda durur, havuz giderse snapshot da gider. Ama yanlışlıkla silmeye karşı en hızlı geri dönüş yoludur; ZFS ve LVM snapshot'ları saniyeler içinde alınır, saatlik snapshot bir veritabanı hatasında kaybı bir saatle sınırlar.
Fidye yazılımı senaryosunda belirleyici olan, yedeğin saldırganın erişebileceği bir kimlik bilgisiyle silinip silinemeyeceğidir. Yedek sunucusunun canlı sunucuya bağlanıp veriyi çektiği (pull) düzen, canlı sunucunun yedeğe yazdığı düzenden daha güvenlidir. Saldırı sonrası temiz yedeğe dönüş planı için web sitesi hacklendiğinde ilk 24 saat rehberine bakabilirsiniz. Kişisel veri işleyen sistemlerde yedek ve geri yükleme testi, KVKK teknik ve idari tedbirler listesinin de doğal bir parçası.
Teklifte RAID satırını okumak: “4× NVMe RAID-10” neyi söyler, neyi söylemez?
Sunucu tekliflerinde disk düzeni genellikle tek satırdır: “4× 960 GB NVMe RAID-10”. Bu satır dört şey söyler ve en az yedi şeyi söylemez. Söylediklerini doğru okumak kapasite hesabınızı, söylemediklerini sormak ise ilk disk arızasında yaşayacaklarınızı belirler.
- 4×
- Dizide dört fiziksel disk var. Hot spare bu sayıya dahil mi? Satır söylemiyor.
- 960 GB
- Disk başına ondalık kapasite. İşletim sisteminde yaklaşık 894 GiB görünür.
- NVMe
- PCIe üzerinden bağlanan SSD. Kurumsal sınıf mı, PLP var mı? Satır söylemiyor.
- RAID-10
- İki ayna çifti ve şeritleme. Kullanılabilir ≈ 1,92 TB (≈ 1,75 TiB), garanti tolerans 1 disk.
- Disk adedi
- 4
- Disk boyutu
- 960 GB
- Disk türü
- NVMe SSD
- Seviye
- RAID 10
Kullanılabilir alan 1,92 TB (işletim sisteminde ≈ 1,75 TiB), arıza toleransı 1 disk (garanti) · en iyi 2, yazma cezası 2 G/Ç.
- Donanım RAID mi, yazılım RAID mi? Kart modeli ve önbellek koruması (BBU/flash) nedir?
- Disk modeli ne? Kurumsal sınıf mı, PLP var mı, DWPD değeri kaç?
- Hot spare var mı? Yoksa arızalı disk ne kadar sürede değişiyor?
- Donanım değişim süresi sözleşmede yazılı mı, saat olarak kaç?
- Disk alarmı kime gidiyor: sağlayıcının NOC ekibine mi, size mi, ikisine birden mi?
- IPMI/iDRAC ile denetleyici ekranına ve sanal konsola erişiminiz var mı?
- Yedek bu dizinin üzerinde mi, başka bir sunucuda ve lokasyonda mı?
- Disk düzenini sonradan değiştirmek gerekirse yeniden kurulum kimin işi, ücreti var mı?
Disk düzeninin aylık fiyata etkisini ve kirala, satın al, colocation karşılaştırmasını dedicated sunucu fiyatları rehberinde ele alıyoruz. Disk yönetimiyle hiç uğraşmak istemiyorsanız bulut sunucu tarafında disk yedekliliği çoğunlukla sağlayıcının depolama katmanında çözülür; RAID seviyesi seçmezsiniz ama yedek yine sizin sorumluluğunuzda kalır. Paylaşımlı web hosting paketlerinde ise disk düzeni tamamen sağlayıcının işidir.
Mevcut sunucularınızın disk düzenini, yedek zincirini ve izleme kurgusunu bağımsız bir gözle gözden geçirmek isterseniz altyapı değerlendirme danışmanlığı bu iş için var; daha geniş mimari kararlar için teknik danışmanlık hizmetimize bakabilirsiniz. Elinizde birden çok teklif varsa satırları çözümleyiciden geçirip aynı ölçütle karşılaştırın ya da doğrudan ihtiyacınızı yazıp teklif isteyin.
Sık Sorulan Sorular
Disk düzeni, sunucunun en zor değişen kararıdır
RAID seviyesi canlıya alındıktan sonra değiştirilmesi en zahmetli ayardır: çoğu durumda yeni bir dizi kurmak, veriyi taşımak ve kesinti planlamak gerekir. Bu yüzden kararı kurulumdan önce; iş yükünün yazma oranına, disk türüne ve arıza anında ne kadar beklemeyi göze alabildiğinize bakarak verin. RAID'i seçtikten sonra yedeği ayrı bir karar olarak ele alın, ikisi birbirinin yerine geçmez.
W3'te dedicated sunucu kurulumunda RAID yapılandırması teslim sürecinin bir adımı. Disk düzenini iş yükünüze göre birlikte belirliyor, izlemeyi ve yedek zincirini aynı planın içine koyuyoruz. Paketleri dedicated sunucu kiralama sayfasında inceleyebilirsiniz.

Fintech'te Staff SRE geçmişi. Koç Üniversitesi EE; hata bütçesi, SLO/SLI ve üretim olay yönetimi. W3'te barındırma, bulut ve platform altyapısının sorumlusu.
Profili gör