İçeriğe Atla
Rehberler · 8 dk okuma · görüntülenme
100%

Redis Sentinel ile Yüksek Erişilebilirlik ve Split-Brain Runbook’u

Redis Sentinel tabanlı HA kurulumunda quorum, failover ve split-brain riskini operasyonel olarak yönetmek için sahada kullanılabilir runbook.

Redis master/replica ve Sentinel quorum akışını gösteren kapak görseli

Redis çoğu kurumda “cache” diye başlar, sonra sessizce kritik state taşımaya başlar: rate limit sayaçları, idempotency store, session, feature flag vb. Bu noktada “tek node Redis” bir teknik borç değil, direkt incident tetikleyicisidir.

Sentinel, Redis için pratik bir HA yaklaşımı sunar; ama en tehlikeli failure mode şudur: split-brain (iki farklı master oluşması veya yanlış master’a yazılması).

Bu yazı, Sentinel kurulumunu değil; Sentinel kullanan bir sistemin operasyonel runbook’unu anlatır.

1) Ön koşul: HA tasarımının minimum standardı

Minimum güvenli başlangıç:

  • 1 master + 1 replica (tercihen 2 replica)
  • En az 3 Sentinel (farklı failure domain)

Sentinel tarafında hedef: master’ı “ölü” kabul etme ve yeni master seçme kararını tek bir node’un gözlemine bırakmamak.

2) Triage: “Redis mi gitti, yoksa failover mı oldu?”

Semptomlar:

  • Cache miss artışı, latency spike
  • “READONLY You can’t write against a read only replica” hatası
  • Uygulama connection error / timeout

2.1 Rol doğrulama

Master/replica rolünü hızlı doğrula:

redis-cli -h <redis-host> -p 6379 INFO replication | rg -n \"role|master_host|master_link_status|connected_slaves\" -S

Beklenen:

  • master: role:master
  • replica: role:slave + master_link_status:up

2.2 Sentinel gözünden durum

redis-cli -h <sentinel-host> -p 26379 SENTINEL masters
redis-cli -h <sentinel-host> -p 26379 SENTINEL slaves <master-name>
redis-cli -h <sentinel-host> -p 26379 SENTINEL get-master-addr-by-name <master-name>

Amaç:

  • Sentinel “master kim?” sorusuna tutarlı cevap veriyor mu?
  • Farklı Sentinel’lar farklı master gösteriyor mu? (split-brain şüphesi)

3) Split-brain nasıl anlaşılır?

Split-brain’in saha sinyalleri:

  • İki farklı node aynı anda role:master diyebilir
  • Sentinel’lar farklı master adresi döndürür
  • Yazma başarısızlıkları “read-only replica” ve “MOVED/ASK” gibi karma davranışlarla karışır
  • Cache “tutarsız” görünür (bazı kullanıcılar logged-in, bazıları değil)

4) Incident müdahalesi: adım adım

4.1 Önce yazmayı stabilize et (yükü ve hasarı durdur)

Hedef: yanlış master’a yazmayı azaltmak.

Pratik seçenekler:

  • Uygulamada Redis yazma path’ini geçici kısıtla (feature flag / degrade)
  • Cache’i “read-only moda” çek (mümkünse)
  • Trafiği azalt (rate limit / shed load)

4.2 “Doğru master” kararını ver

Karar kriterleri:

  • En güncel replika kim? (replication lag / offset)
  • Hangi node daha uzun süredir master? (failover zamanı)
  • Uygulama hangi node’a yazdı? (log/metric)

Operasyonel kural: “En az veri kaybı” öncelik olmalı. Cache bile olsa, bazı cache verileri güvenlik kararını etkileyebilir.

4.3 Yanlış master’ı yazmaya kapat

Eğer bir node yanlışlıkla master olduysa, onu “replica” davranışına geri çekmek gerekebilir.

Örnek yaklaşım (dikkat: saha koşuluna göre değişir):

# yanlış master'ı doğru master'a replika yap (yanlış yönde ise veri kaybı yaşanabilir)
redis-cli -h <wrong-master> -p 6379 REPLICAOF <correct-master-ip> 6379

Bu adımı uygulamadan önce:

  • Trafiği düşür
  • Mümkünse snapshot al (RDB/AOF)
  • Veri kaybı etkisini kabul ettir (incident komutası)

5) Kalıcı korumalar: split-brain riskini küçült

5.1 Yazma güvenliği: “min-replicas” koruması

Redis tarafında, master’ın replika görmeden yazma kabul etmesini engelleyebilirsin:

min-replicas-to-write 1
min-replicas-max-lag 10

Saha yorumu:

  • Replika yoksa veya lag çoksa master yazmayı reddeder → kısa süreli hata üretir ama split-brain hasarını azaltır.

5.2 Sentinel parametrelerini “gerçek”e göre ayarla

Üç kritik parametre:

  • down-after-milliseconds
  • failover-timeout
  • quorum

Yanlış ayar örnekleri:

  • Çok düşük down-after: kısa network jitter’da gereksiz failover
  • Çok agresif failover: flap ve tutarsız master

5.3 Tatbikat: failover testi yapmadan güven olmaz

Ayda bir küçük tatbikat bile fark yaratır:

  • master’ı kontrollü kapat → failover süresi ölç
  • ağ bölünmesi simülasyonu (staging) → quorum davranışı gözle
  • uygulama tarafında retry/timeouts “failover’ı büyütüyor mu?” kontrol et

6) Runbook kapanış: doğrulama

Stabilite doğrulaması:

  • Tek bir master kaldı mı?
  • Sentinel’ların tamamı aynı master’ı gösteriyor mu?
  • Uygulama hata oranı normale döndü mü?

Redis Sentinel, doğru kurulduğunda operasyonu rahatlatır; yanlış kurulduğunda ise “otomatik failover” adı altında incident üretir. Buradaki fark, teknolojiden çok operasyon disiplinidir: quorum, tatbikat ve kanıtlı runbook.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

Yeni yazılardan haberdar olun

Haftada bir yeni içerikler ve kaynaklar doğrudan e-postanıza gelsin.

Spam yok. Yalnızca yeni ve önemli içerikler için e-posta gönderilir.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar