NetScaler HA: Sync ≠ Command Propagation

Citrix ADC / NetScaler HA yapısında sık karıştırılan iki kavram vardır:

Synchronization ve Command Propagation

İkisi de Primary ve Secondary arasındaki configuration tutarlılığıyla ilgilidir ancak aynı işi yapmazlar.

Synchronization Nedir?

Synchronization, Primary üzerindeki mevcut configuration’ın Secondary üzerine kopyalanmasıdır.

Basitçe:

Primary Configuration → Secondary Configuration

NetScaler otomatik synchronization’ı varsayılan olarak etkin tutar. Secondary node restart sonrası tekrar ayağa kalktığında veya HA tarafında belirli state değişiklikleri gerçekleştiğinde synchronization tetiklenebilir.

Kontrol:

show ha node

Gerekirse manuel synchronization:

force HA sync

Otomatik synchronization ayarı:

set HA node -haSync ENABLED

Önemli ayrıntı: Synchronization sırasında command propagation geçici olarak devre dışı bırakılır. Böylece configuration aktarımı sırasında yeni komutlarla çakışma oluşması engellenir.

Command Propagation Nedir?

Command Propagation ise Primary üzerinde çalıştırılan yeni configuration komutlarının Secondary node’a iletilmesidir.

Örneğin:

add lb vserver LB_WEB SSL 10.10.10.20 443

Command propagation etkinse bu değişiklik Secondary node’a da aktarılır.

NetScaler HA pair üzerinde command propagation varsayılan olarak aktiftir.

Kontrol:

show ha node

Etkinleştirmek için:

set HA node -haProp ENABLED

Buradaki ilginç teknik ayrıntı şudur: NetScaler dokümantasyonuna göre propagated command önce Secondary üzerinde çalıştırılır, ardından Primary üzerinde uygulanır. Secondary tarafında propagation veya execution başarısız olursa Primary komutu yine çalıştırır ve hata loglanır.

Sync ve Propagation Arasındaki Kritik Fark

Kısaca:

Synchronization
→ Mevcut configuration’ı eşitler.

Command Propagation
→ Yeni çalıştırılan configuration komutlarını diğer node’a taşır.

Bu nedenle:

HA UP ≠ Configurations mutlaka aynı

demek önemlidir.

Heartbeat sağlıklı olabilir ama synchronization veya propagation tarafında problem bulunabilir.

HA İletişim Portları

Güncel NetScaler ADC HA dokümantasyonuna göre:

UDP 3003       → HA Heartbeat
TCP 3008/3010  → Synchronization ve Command Propagation

kullanılır.

Bu nedenle iki node birbirini UP görüyor ancak configuration farklıysa yalnızca UDP 3003 heartbeat kontrol etmek yeterli değildir.

Troubleshooting akışı:

HA State → Heartbeat → Sync Status → Command Propagation → Config Difference

Ayrıca iki node’un aynı NetScaler release/build seviyesinde olması ve HA iletişiminin network/firewall tarafından engellenmemesi gerekir.

Kritik Nokta

NetScaler HA troubleshooting sırasında şu üç kavramı birbirinden ayırmak gerekir:

Heartbeat → Node yaşıyor mu?
Synchronization → Mevcut config aynı mı?
Command Propagation → Yeni değişiklik karşı node’a ulaşıyor mu?

🔥 HA pair’in UP olması, configuration’ın mutlaka synchronized olduğu anlamına gelmez.

About Cem Kemal Erbaş

Bir yanıt yazın