Büyük dosya ağacı ile yaklaşık 200k dosya kastediyorum ve sürekli büyüyor. Yine de belirli bir saatte nispeten az sayıda dosya değiştiriliyor.
İki yönlü olarak, değişikliklerin her iki sunucuda da gerçekleşebileceği ve diğerine basılması gerektiği anlamına gelir, bu nedenle rsync uygun görünmez.
Uzak demek istediğim, sunucuların her ikisinin de veri merkezlerinde olduğu, ancak coğrafi olarak birbirlerinden uzak oldukları anlamına geliyor. Şu anda yalnızca 2 sunucu var, ancak bu zamanla genişleyebilir.
Gerçek zamanlı olarak, senkronizasyon arasında biraz gecikme olması sorun değil, ancak her 1-2 dakikada bir cron çalıştırmak doğru görünmüyor, çünkü dosyaların çok küçük bir bölümü herhangi bir saatte bir dakika içinde değişebilir.
EDIT : Bu VPS üzerinde çalışıyor, bu yüzden yapabileceğim çekirdek seviyesindeki şeylerle sınırlı olabilirim. Ayrıca, VPS'ler zengin değil, bu yüzden çok fazla ram gerektiren çözümlerden (Gluster gibi) uzak duruyorum.
Bunu yapmak için en iyi / en "kabul edilen" yaklaşım nedir? Bu ortak bir ihtiyaç olacak gibi görünüyor, ancak genel olarak kabul edilmiş bir yaklaşım bulamadım, ki bu şaşırtıcıydı. (Kitlelerin güvenliğini arıyorum. :)
Dosya sistemi değişim düzeyinde bir senkronizasyon başlatmak için lsyncd ile karşılaştım . Süper yaygın olmasa da, zekice görünüyor ve biraz lsyncd yaklaşımları ile biraz kafam karıştı. Sadece rsync ile lsyncd kullanıyoruz, ancak bu iki yönlü olma açısından kırılgan görünebilir çünkü rsync'de bellek kavramı yoktur (örneğin, A'da silinmiş bir dosyanın B'de mi silinmesi gerektiğini yoksa B'de yeni bir dosya mı olduğunu bilmek) bu A'ya kopyalanmalıdır). Lipsync sadece lsyncd + rsync uygulanması, doğru gibi görünen?
Sonra , csync2 ile lsyncd kullanmak var , bunun gibi: https://icicimov.github.io/blog/devops/File-system-sync-with-Csync2-and-Lsyncd/ ... Bu yaklaşıma yöneliyorum, ama csync2 biraz garip, ancak başarılı bir test yaptım. Çoğunlukla bu yöntemi topluluk onayıyla onaylayamadığım için endişeliyim.
Buradaki insanlar Unison'dan çok hoşlanıyor gibi görünüyor, ancak artık aktif olarak geliştirilmediği ve lsyncd gibi bir otomatik tetikleyici olduğu açık değil.
Gluster'ın bahsettiğini gördüm , ama belki de ihtiyacım olan şey için fazla abartı ?
GÜNCELLEME: fyi- Ben bahsettiğim özgün çözüm ile sona erdi: lsyncd + csync2. Oldukça iyi çalışıyor gibi görünüyor ve sunucuların çok gevşek bir şekilde birleştirilmelerinin mimari yaklaşımını seviyorum, böylece her sunucu, aralarındaki bağlantı kalitesinden bağımsız olarak kendi başına süresiz çalışabiliyor.