Hastanenin merkezi patoloji ve kan tahlil laboratuvarında her gün binlerce kan ve doku numunesi tüpünün geldiğini düşünün. Laboratuvar rafları tüplerle dolmaya başlar. Laboratuvar şefi, yeni raf ve buzdolabı satın almak yerine "harika bir kimyasal optimizasyon" fikri bulur: "Aynı kan grubundan ve benzer biyokimyasal özelliklere sahip tüpleri tek tek saklamayalım; hepsini tek bir dev kazana boşaltıp moleküler düzeyde tekilleştirelim (Deduplication)! Raf alanından %80 tasarruf ederiz! Bir hastaya tahlil sonucu gerekeceği zaman kazandaki devasa santrifüj ve ayrıştırıcı robotu çalıştırırız, o molekülü kazandan cımbızla geri çekeriz!" Sistem ilk 100 tüpte harika gibi görünür. Ancak numune sayısı 50 bine ulaştığında o santrifüj robotunun işlemcisi ve motorları devasa moleküler karmaşayı hesaplayamaz hale gelir. Cihaz aşırı ısınır, dumanlar çıkar ve kilitlenir! Acil ameliyattaki bir cerrah hastanın basit bir hemoglobin sonucunu ister; ancak santrifüj kilitlendiği için 6 saat boyunca tek bir damla kan bile kazandan çıkarılamaz. Hasta masada ölürken, şefin "Ama raflarımızda %80 boş yer kalmıştı" diye sevinmesi bir tıp cinayetidir.
Kurumsal veri depolama ünitelerinde (SAN / NAS / All-Flash Storage) veya modern dosya sistemlerinde (ZFS, Ceph, Btrfs) Deduplication (Veri Tekilleştirme) teknolojisini hesap kitap yapmadan, kontrolsüzce devreye sokan sistem mimarlarının yaşadığı çöküş, tam olarak bu santrifüjün patlamasıdır.
Deduplication Nedir ve Hangi Vaatle Satılır?
Depolama donanımları (Enterprise NVMe ve SSD'ler) son derece pahalıdır.
Veri merkezinde çalışan 500 adet sanal sunucunun işletim sistemlerine baktığınızda devasa bir veri tekrarı görürsünüz:
- 500 sunucunun hepsinde aynı
glibckütüphanesi, aynı Linux çekirdeği, aynı Windowssystem32DLL dosyaları kopyalanmıştır. - 500 adet 20 GB'lık işletim sistemi: 10 Terabayt yer kaplar.
İşte depolama üreticileri (NetApp, Dell EMC, Pure Storage) ve ZFS geliştiricileri bu noktada muazzam bir matematiksel vaat sunar: Deduplication (Tekilleştirme).
Sistem yazılan her bir veri bloğunun (örneğin 4 KB veya 128 KB) kriptografik bir özetini (SHA-256 Hash) çıkarır:
- Eğer bu blok diskte daha önce yazılmışsa, diske fiziksel olarak YENİDEN YAZMAZ!
- Sadece eski bloğun adresini işaret eden bir işaretçi (pointer) koyar.
- 10 TB'lık veri, diskte fiziksel olarak 500 GB'a kadar sıkışabilir (20:1 Oranı!).
Sistem yöneticisi ellerini ovuşturur: "Milyonlarca lira harcamaktan kurtulduk, disk kapasitemizi sihirli bir şekilde 10 katına çıkardık!"
Oysa şeytan, o blokların özetlerinin nerede saklandığında gizlidir.
Gizli Canavar: DDT (Deduplication Table) ve RAM İşkencesi
Bir blok yazılacağı zaman, depolama denetleyicisinin (Storage Controller) o bloğun daha önce yazılıp yazılmadığını anlaması için elindeki devasa haritayı kontrol etmesi şarttır.
Bu haritaya ZFS dünyasında DDT (Deduplication Table / Tekilleştirme Tablosu) denir.
Kural son derece katıdır:
DDT haritası MUTLAKA VE KESİNLİKLE fiziksel RAM'de (Bellekte) yaşamak zorundadır!
Neden? Çünkü bir diske saniyede 10.000 rastgele I/O işlemi (IOPS) geliyorsa, her yazma işleminde o tablonun mikrosaniyeler içinde RAM'den okunması gerekir.
Matematiksel faturaya bakalım:
- ZFS'te tekilleştirilen her 1 Terabaytlık veri için DDT tablosu yaklaşık 5 ila 6 GB saf ECC RAM tüketir!
- 50 Terabaytlık bir depolama havuzunu tekilleştirmeye kalktığınızda, DDT tablosunun boyutu 300 GB RAM'i aşar!
+------------------------------------------------------------------------+
| DDT RAM BOĞULMASI SENARYOSU |
| |
| Depolama Denetleyicisi (SAN Controller) RAM'i: 128 GB |
| DDT Tablosunun Boyutu : 160 GB! (RAM YETMEDİ!)|
| |
| SONUÇ: DDT tablosu RAM'e sığmaz ve DİSKE TAŞAR (Paging / Spill)! |
+------------------------------------------------------------------------+
Ve o gün, DDT tablosu fiziksel RAM'den diske taştığı milisaniyede, depolama ünitesinin kalbine ölümcül kurşun sıkılır.
Patolojinin Gelişimi: %95 I/O Wait ve Felç Olan Veri Merkezi
DDT diske taştığında ne olur?
- Yazma Hızı Çakılır:
Sunucu diske 1 blokluk basit bir veri yazmak ister.
Depolama denetleyicisi bu blok daha önce var mı diye DDT tablosuna bakacaktır; ancak tablo disktedir!
Tek bir bloğu yazabilmek için diskten 5 kez DDT parçası okumak zorunda kalır!
Yazma gecikmesi 1 milisaniyeden 120 milisaniyeye fırlar! - I/O Wait Tsunamisi:
Depolama havuzuna bağlı olan 200 adet sanal sunucunun (VDS) disk yazma kuyrukları kilitlenir.
Tüm sunucularıntopekranında%wa (iowait)değeri %90 - %99 seviyesine vurur!
İşlemciler çalışamaz; çünkü diskten yanıt gelmesini beklemektedirler. - Domino Çöküşü:
Veritabanları transaction loglarını diske yazamaz (fsync timed out).
Nginx upstream kuyrukları dolar (504 Gateway Time-out).
Mühendisler SSH ile sunuculara bağlanamaz; çünkü terminal oturumu açmak için/bin/bashdosyasını diskten okumak bile 40 saniye sürmektedir!
Tüm veri merkezi, tek bir düğümün aşırı hırsı yüzünden kaskatı donar kalır.
Geri Dönüşsüzlük Tuzağı: "Deduplication'ı Kapatın!" Nafileliği
Panikleyen sistem yöneticisi depolama paneline koşar:
# ZFS'te Deduplication'ı kapatma komutu:
zfs set dedup=off tank/dataMühendis rahat bir nefes alacağını sanır: "Tamam, tekilleştirmeyi kapattım, her şey düzelecek."
HAYIR! DÜZELMEZ!
dedup=off demek sadece bundan sonra yazılacak YENİ blokların tekilleştirilmeyeceği anlamına gelir!
O güne kadar diske yazılmış olan o 50 Terabaytlık verinin DDT tablosu, o veriler diskten tek tek silinene veya başka bir diske kopyalanıp o havuz tamamen yok edilene kadar RAM'i emmeye ve diski kilitlemeye devam eder!
Geriye tek bir çare kalır: Tüm sanal makineleri durdurmak, yeni sıfır bir depolama havuzu açmak ve günlerce sürecek acılı bir veri transferiyle sistemi baştan kurmak.
Gerçek Mühendislik: Tekilleştirme Ne Zaman ve Nasıl Yapılır?
Deduplication bir düşman değildir; ancak nerede kullanılacağını bilmek cerrahi bir uzmanlık gerektirir:
[DEDUPLICATION KULLANIM REHBERİ]
1. ASLA KULLANILMAYACAK YERLER (Ölümcül Tuzak!):
- Aktif Veritabanları (MySQL, PostgreSQL, Oracle, MongoDB).
- Video, Ses, MP4, JPEG, ZIP, GZIP arşivleri (Zaten sıkıştırılmıştır, tekilleşmez!).
- Canlı E-Ticaret SAN/Ceph depolama havuzları.
2. KULLANILABİLECEK GÜVENLİ ALANLAR:
- VDI (Sanal Masaüstü Altyapısı): 1.000 personelin aynı Windows 11 imajını
çalıştırdığı ortamlarda harika sonuç verir.
- Soğuk Yedekleme Havuzları (Backup Repositories / Veeam Backup):
Veriler canlıda değilken, arka planda gece çalıştırılan tekilleştirme.
3. DEDUP YERİNE: LZ4 veya ZSTD Sıkıştırması (Compression):
- ZFS'te `compression=lz4` veya `zstd` açın!
- CPU maliyeti neredeyse sıfırdır, RAM tüketmez, diski kilitlemez
ve dosya boyutunu %30 ila %50 oranında güvenle küçültür.
Sonuç
Kan numunelerini kazana boşaltıp santrifüjü patlatan patolog nasıl hastaların hayatını kararttıysa; RAM kapasitesini hesaplamadan Deduplication açıp depolama havuzunu %99 I/O Wait ile kilitleyen sistem mimarı da yüzlerce şirketin operasyonunu öyle karartır.
Mühendislikte bedava kazanç yoktur; diskten tasarruf ettiğiniz her baytın bedelini ya RAM ile ya da CPU ile ödersiniz. Eğer o bedeli ödeyecek donanım rezerviniz yoksa, sihirli optimizasyon sloganlarına kanmayın. Bırakın bloklar diskte tekrar etsin; yeter ki sisteminiz kilitlenmesin, veriniz nefes alsın.