CentOS 8'de Sentinel ile Yüksek Kullanılabilirlik İçin Redis Nasıl Kurulur - Bölüm 2


Redis, Redis Sentinel dağıtılmış sistemi aracılığıyla yüksek kullanılabilirlik sağlar. Sentinel, Redis örneklerinin izlenmesine, hataların tespit edilmesine yardımcı olur ve otomatik olarak rol geçişleri yapar, böylece Redis dağıtımının her türlü hataya karşı dayanıklı olmasını sağlar.

Redis örneklerinin (ana ve kopyalar) izlenmesini sağlar, diğer hizmetlerin/süreçlerin veya sistem yöneticisinin bir komut dosyası aracılığıyla bildirilmesini destekler, ana sunucu çöktüğünde bir kopyayı ana sunucuya yükseltmek için otomatik yük devretme sağlar ve istemcilerin belirli bir hizmeti sunan mevcut ana öğeyi keşfetmesine yönelik yapılandırma.

Bu makalede, nöbetçilerin yapılandırılması, kurulum durumunun kontrol edilmesi ve bir sistemin test edilmesi de dahil olmak üzere, CentOS 8'de Redis Sentinel ile yüksek kullanılabilirlik için Redis'in nasıl kurulacağı gösterilmektedir. Sentinel yük devretme.

Önkoşul:

  1. CentOS 8'de Redis Çoğaltma Nasıl Kurulur (Küme Modu Devre Dışı Bırakılarak) - Bölüm 1

Test Ortamı Kurulumu

Master Server and Sentinel1: 10.42.0.247
Redis Replica1 and Sentinel2: 10.42.0.21
Redis Replica2 and Sentinel3: 10.42.0.34

Redis Sentinel belgelerine göre, sağlam bir dağıtım için en az üç Sentinel örneğine ihtiyaç vardır. Yukarıdaki kurulumumuz göz önüne alındığında, Ana başarısız olursa, Sentinels2 ve Sentinel3 başarısızlık konusunda anlaşacak ve bir yük devretme yetkisi verebilecek, böylece Müşteri işlemleri devam edebilecek.

1. Adım: Redis Sentinel Hizmetini Başlatma ve Etkinleştirme

1. CentOS 8'de, Redis Sentinel hizmeti Redis sunucusunun yanına kurulur (bunu daha önce yapmıştık). Redis Çoğaltma Kurulumu).

Redis sentinel hizmetini başlatmak ve sistem önyüklemesinde otomatik olarak başlamasını sağlamak için aşağıdaki systemctl komutlarını kullanın. Ayrıca durumunu kontrol ederek çalışır durumda olduğunu doğrulayın (bunu tüm düğümlerde yapın):

systemctl start redis-sentinel
systemctl enable redis-sentinel
systemctl status redis-sentinel

Adım 2: Redis Sentinel'i Tüm Redis Düğümlerinde Yapılandırma

2. Bu bölümde Sentinel'i tüm düğümlerimizde nasıl yapılandıracağımızı açıklıyoruz. Sentinel hizmeti, Redis sunucusuyla benzer bir yapılandırma biçimine sahiptir. Yapılandırmak için /etc/redis-sentinel.conf kendi kendine belgelenen yapılandırma dosyasını kullanın.

Öncelikle orijinal dosyanın bir yedeğini oluşturun ve düzenlemek için açın.

cp /etc/redis-sentinel.conf /etc/redis-sentinel.conf.orig
vi /etc/redis-sentinel.conf

3. Varsayılan olarak Sentinel 26379 bağlantı noktasını dinler, bunu tüm örneklerde doğrulayın. bind parametresini yorumsuz bırakmanız (veya 0.0.0.0 olarak ayarlamanız) gerektiğini unutmayın.

port 26379

4. Ardından, Sentinel'e efendimizi izlemesini ve onu "Objektif Olarak Arıza" durumunda değerlendirmesini söyleyin. yalnızca en az 2 yetersayı nöbetçisi aynı fikirdeyse. "Efendim" ifadesini özel bir adla değiştirebilirsiniz.

#On Master Server and Sentinel1
sentinel monitor mymaster 127.0.0.1 6379 2

#On Replica1 and Sentinel2
sentinel monitor mymaster 10.42.0.247 6379 2

#On Replica1 and Sentinel3
sentinel monitor mymaster 10.42.0.247 6379 2

Önemli: "No such master with" hatasını önlemek için sentinel monitör deyiminin sentinel auth-pass deyiminden önce yer alması GEREKLİdir Belirtilen adı. ”, sentinel hizmetini yeniden başlatırken.

5. İzlenecek Redis yöneticisinin ayarlanmış bir şifresi varsa (bizim durumumuzda ana sunucunun ayarlamış olduğu), Sentinel örneğinin korumalı örnekte kimlik doğrulaması yapabilmesi için şifreyi sağlayın.

 
sentinel auth-pass mymaster Securep@55Here

6. Ardından, ana öğenin (veya ekli herhangi bir kopyanın veya koruyucunun) "Öznel Olarak Aşağı" durumunda kabul edilmesi için erişilemez olması gereken milisaniye sayısını ayarlayın.

Aşağıdaki konfigürasyon, pinglerimizden 5 saniye içinde (1 saniye, 1000 milisaniyeye eşdeğerdir) herhangi bir yanıt almadığımız takdirde ana bilgisayarın başarısız sayılacağı anlamına gelir.

sentinel down-after-milliseconds mymaster 5000

7. Ardından, birçok şeyi tanımlayan yük devretme zaman aşımını milisaniye cinsinden ayarlayın (yapılandırma dosyasındaki parametrenin belgelerini okuyun).

sentinel failover-timeout mymaster 180000

8. Ardından, yük devretme sonrasında aynı anda yeni ana makineyi kullanacak şekilde yeniden yapılandırılabilecek kopya sayısını ayarlayın. Elimizde iki replika olduğu için bir replikayı ayarlayacağız, diğerini ise yeni master'a terfi ettireceğiz.

sentinel parallel-syncs mymaster 1

Redis Replica1 ve Sentinel2 ile Reddis Replica1 ve Sentinel2'deki yapılandırma dosyalarının aynı olması gerektiğini unutmayın.

9. Ardından, son değişiklikleri uygulamak için tüm düğümlerde Sentinel hizmetlerini yeniden başlatın.

systemctl restart redis-sentinel

10. Ardından, Sentinel örneklerinin konuşmaya başlamasını ve diğer sunuculardan bağlantı almasını sağlamak için güvenlik duvarındaki 26379 bağlantı noktasını tüm düğümlerde açın. >Sentinel örnekleri, güvenlik duvarı-cmd'yi kullanarak.

firewall-cmd --zone=public --permanent --add-port=26379/tcp
firewall-cmd --reload

11. Tüm kopyalar otomatik olarak keşfedilecektir. Daha da önemlisi, Sentinel, kopyalarla ilgili ek bilgilerle yapılandırmayı otomatik olarak güncelleyecektir. Her örnek için Sentinel yapılandırma dosyasını açıp içine bakarak bunu doğrulayabilirsiniz.

Örneğin, ana yapılandırma dosyasının sonuna baktığınızda, aşağıdaki ekran görüntüsünde gösterildiği gibi known-sentinels ve known-replica ifadelerini görmelisiniz.

replica1 ve replica2 için de aynı durumun geçerli olması gerekir.

Yük devretme sırasında bir kopyanın ana durumuna yükseltildiği her seferde ve kurulumda her yeni bir Sentinel keşfedildiğinde Sentinel yapılandırmasının da yeniden yazıldığını/güncellendiğini unutmayın.

3. Adım: Redis Sentinel Kurulum Durumunu Kontrol Edin

12. Şimdi aşağıdaki gibi info sentinel komutunu kullanarak ana makinedeki Sentinel durumunu/bilgilerini kontrol edin.

redis-cli -p 26379 info sentinel

Aşağıdaki ekran görüntüsünde görüldüğü gibi komutun çıktısında iki kopya/slave ve üç nöbetçimiz var.

13. Ana (ustam olarak adlandırılır) hakkında ayrıntılı bilgi göstermek için sentinel master komutunu kullanın.

redis-cli -p 26379 sentinel master mymaster

14. Köleler ve nöbetçiler hakkında ayrıntılı bilgi göstermek için nöbetçi köleler komutunu ve nöbetçileri kullanın. sırasıyla sentinels komutunu kullanın.

redis-cli -p 26379 sentinel slaves mymaster
redis-cli -p 26379 sentinel sentinels mymaster

15. Daha sonra, aşağıdaki gibi sentinel get-master-addr-by-name komutunu kullanarak, köle örneklerinden ana sunucunun adresini ada göre isteyin.

Çıktı, geçerli ana örneğin IP adresi ve bağlantı noktası olmalıdır:

redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

4. Adım: Sentinel Yük Devretme'yi test edin

16. Son olarak Sentinel kurulumumuzdaki otomatik yük devretmeyi test edelim. Redis/Sentinel ana biriminde, Redis ana biriminin (6379 bağlantı noktasında çalışan) 60 saniye boyunca uyku moduna geçmesini sağlayın . Daha sonra replikalar/slaveler üzerindeki mevcut master'ın adresini aşağıdaki gibi sorgulayın.

redis-cli -p 6379
127.0.0.1:6379> AUTH Securep@55Here
127.0.0.1:6379>  debug sleep 60
redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

Sorgunun çıktısına göre, yeni ana öğe artık aşağıdaki ekran görüntüsünde görüldüğü gibi 10.42.0.34 IP adresine sahip replica/slave2'dir.

Redis Sentinel belgelerinden daha fazla bilgi alabilirsiniz. Ancak paylaşacak düşünceleriniz veya sorularınız varsa aşağıdaki geri bildirim formu bize açılan kapınızdır.

Bu serinin bir sonraki ve son bölümünde CentOS 8'de Redis Cluster kurulumunun nasıl yapılacağına bakacağız. İlk ikisinden bağımsız bir makale olacak.