CentOS 8 - ഭാഗം 2-ൽ സെന്റിനൽ ഉപയോഗിച്ച് ഉയർന്ന ലഭ്യതയ്ക്കായി Redis എങ്ങനെ സജ്ജീകരിക്കാം


റെഡിസ് സെന്റിനൽ വിതരണ സംവിധാനം വഴി റെഡിസ് ഉയർന്ന ലഭ്യത നൽകുന്നു. റെഡിസ് സംഭവങ്ങൾ നിരീക്ഷിക്കാനും പരാജയങ്ങൾ കണ്ടെത്താനും റോളുകൾ സ്വിച്ചുചെയ്യാനും സെന്റിനൽ സഹായിക്കുന്നു, അങ്ങനെ ഏതെങ്കിലും തരത്തിലുള്ള പരാജയങ്ങളെ ചെറുക്കാൻ റെഡിസ് വിന്യാസത്തെ പ്രാപ്തമാക്കുന്നു.

റെഡിസ് സംഭവങ്ങളുടെ നിരീക്ഷണം (മാസ്റ്ററും റെപ്ലിക്കസും), മറ്റ് സേവനങ്ങൾ/പ്രക്രിയകൾ അല്ലെങ്കിൽ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർ എന്നിവയെ സ്ക്രിപ്റ്റ് വഴിയുള്ള അറിയിപ്പ് പിന്തുണയ്ക്കുന്നു, മാസ്റ്റർ താഴേക്ക് പോകുമ്പോൾ ഒരു മാസ്റ്ററിലേക്ക് ഒരു പകർപ്പ് പ്രൊമോട്ട് ചെയ്യുന്നതിൽ സ്വയമേവ പരാജയപ്പെടുകയും ക്ലയന്റുകൾക്ക് കറന്റ് കണ്ടെത്തുന്നതിനുള്ള കോൺഫിഗറേഷൻ നൽകുകയും ചെയ്യുന്നു. ഒരു പ്രത്യേക സേവനം വാഗ്ദാനം ചെയ്യുന്ന മാസ്റ്റർ.

സെന്റിനലുകൾ കോൺഫിഗർ ചെയ്യൽ, സജ്ജീകരണ നില പരിശോധിക്കൽ, സെന്റിനൽ പരാജയം പരിശോധിക്കൽ എന്നിവ ഉൾപ്പെടെ, CentOS 8-ൽ Redis Sentinel-നൊപ്പം ഉയർന്ന ലഭ്യതയ്ക്കായി Redis എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഈ ലേഖനം കാണിക്കുന്നു.

  1. CentOS 8 - ഭാഗം 1-ൽ Redis Replication (ക്ലസ്റ്റർ-മോഡ് പ്രവർത്തനരഹിതമാക്കിയത്) എങ്ങനെ സജ്ജീകരിക്കാം

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

റെഡിസ് സെന്റിനൽ ഡോക്യുമെന്റേഷൻ അനുസരിച്ച്, ശക്തമായ വിന്യാസത്തിന് ഒരാൾക്ക് കുറഞ്ഞത് മൂന്ന് സെന്റിനൽ സംഭവങ്ങളെങ്കിലും ആവശ്യമാണ്. മുകളിലുള്ള ഞങ്ങളുടെ സജ്ജീകരണം പരിഗണിക്കുമ്പോൾ, മാസ്റ്റർ പരാജയപ്പെടുകയാണെങ്കിൽ, സെന്റിനൽസ്2, സെന്റിനൽ3 എന്നിവർ പരാജയത്തെക്കുറിച്ച് സമ്മതിക്കുകയും ഒരു പരാജയത്തിന് അംഗീകാരം നൽകുകയും ചെയ്യും, ഇത് ക്ലയന്റ് പ്രവർത്തനങ്ങൾ തുടരാൻ പ്രാപ്തമാക്കും.

ഘട്ടം 1: റെഡിസ് സെന്റിനൽ സേവനം ആരംഭിക്കുകയും പ്രവർത്തനക്ഷമമാക്കുകയും ചെയ്യുക

1. CentOS 8-ൽ, Redis സെർവറിനൊപ്പം Redis Sentinel സേവനം ഇൻസ്uറ്റാൾ ചെയ്uതിരിക്കുന്നു (ഇത് ഞങ്ങൾ ഇതിനകം Redis Replication സെറ്റപ്പിൽ ചെയ്uതിട്ടുണ്ട്).

Redis സെന്റിനൽ സേവനം ആരംഭിക്കുന്നതിനും സിസ്റ്റം ബൂട്ടിൽ സ്വയമേവ ആരംഭിക്കുന്നതിന് അത് പ്രവർത്തനക്ഷമമാക്കുന്നതിനും, ഇനിപ്പറയുന്ന systemctl കമാൻഡുകൾ ഉപയോഗിക്കുക. കൂടാതെ, അതിന്റെ നില പരിശോധിച്ചുകൊണ്ട് അത് പ്രവർത്തനക്ഷമമാണെന്നും പ്രവർത്തിക്കുന്നുണ്ടെന്നും സ്ഥിരീകരിക്കുക (എല്ലാ നോഡുകളിലും ഇത് ചെയ്യുക):

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

ഘട്ടം 2: എല്ലാ റെഡിസ് നോഡുകളിലും റെഡിസ് സെന്റിനൽ കോൺഫിഗർ ചെയ്യുന്നു

2. ഈ വിഭാഗത്തിൽ, ഞങ്ങളുടെ എല്ലാ നോഡുകളിലും സെന്റിനൽ എങ്ങനെ ക്രമീകരിക്കാമെന്ന് ഞങ്ങൾ വിശദീകരിക്കുന്നു. Redis സെർവറിന് സമാനമായ കോൺഫിഗറേഷൻ ഫോർമാറ്റ് സെന്റിനൽ സേവനത്തിനുണ്ട്. ഇത് ക്രമീകരിക്കുന്നതിന്, /etc/redis-sentinel.conf സ്വയം-പ്രമാണമുള്ള കോൺഫിഗറേഷൻ ഫയൽ ഉപയോഗിക്കുക.

ആദ്യം, യഥാർത്ഥ ഫയലിന്റെ ഒരു ബാക്കപ്പ് സൃഷ്uടിച്ച് എഡിറ്റിംഗിനായി തുറക്കുക.

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

3. ഡിഫോൾട്ടായി, സെന്റിനൽ പോർട്ട് 26379-ൽ ശ്രദ്ധിക്കുന്നു, എല്ലാ സന്ദർഭങ്ങളിലും ഇത് സ്ഥിരീകരിക്കുക. നിങ്ങൾ ബൈൻഡ് പാരാമീറ്റർ അഭിപ്രായമിടേണ്ടതുണ്ടെന്ന കാര്യം ശ്രദ്ധിക്കുക (അല്ലെങ്കിൽ 0.0.0.0 ആയി സജ്ജമാക്കുക).

port 26379

4. അടുത്തതായി, ഞങ്ങളുടെ മാസ്റ്ററെ നിരീക്ഷിക്കാൻ സെന്റിനലിനോട് പറയുക, കൂടാതെ 2 കോറം സെന്റിനലുകളെങ്കിലും അംഗീകരിച്ചാൽ മാത്രം \വസ്തുനിഷ്ഠമായി താഴേക്ക് എന്ന അവസ്ഥയിൽ അത് പരിഗണിക്കുക. നിങ്ങൾക്ക് \mymaster എന്നതിന് പകരം ഒരു ഇഷ്uടാനുസൃത നാമം നൽകാം.

#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

പ്രധാനം: \നിർദിഷ്ട പേരുള്ള അത്തരം മാസ്റ്റർ ഇല്ല എന്ന പിശക് ഒഴിവാക്കാൻ സെന്റിനൽ മോണിറ്റർ സ്റ്റേറ്റ്uമെന്റ് സെന്റിനൽ ഓത്ത്-പാസ് സ്റ്റേറ്റ്uമെന്റിന് മുമ്പായി സ്ഥാപിക്കണം. സെന്റിനൽ സേവനം പുനരാരംഭിക്കുമ്പോൾ.

5. മോണിറ്റർ ചെയ്യാനുള്ള റെഡിസ് മാസ്റ്ററിന് ഒരു പാസ്uവേഡ് സെറ്റ് ഉണ്ടെങ്കിൽ (ഞങ്ങളുടെ കാര്യത്തിൽ മാസ്റ്ററിന് ഉണ്ട്), പാസ്uവേഡ് നൽകുക, അതുവഴി സെന്റിനൽ സംഭവത്തിന് പരിരക്ഷിത ഉദാഹരണം ഉപയോഗിച്ച് പ്രാമാണീകരിക്കാൻ കഴിയും.

 
sentinel auth-pass mymaster [email 

6. തുടർന്ന്, \ആത്മനിഷ്uഠമായി താഴേക്ക് എന്ന അവസ്ഥയിൽ പരിഗണിക്കുന്നതിന് മാസ്റ്ററിന് (അല്ലെങ്കിൽ ഘടിപ്പിച്ചിട്ടുള്ള ഏതെങ്കിലും പകർപ്പ് അല്ലെങ്കിൽ സെന്റിനൽ) എത്തിച്ചേരാനാകാത്ത മില്ലിസെക്കൻഡുകളുടെ എണ്ണം സജ്ജമാക്കുക.

ഇനിപ്പറയുന്ന കോൺഫിഗറേഷൻ അർത്ഥമാക്കുന്നത് 5 സെക്കൻഡിനുള്ളിൽ ഞങ്ങളുടെ പിംഗിൽ നിന്ന് ഒരു മറുപടിയും ലഭിക്കാത്ത ഉടൻ മാസ്റ്റർ പരാജയപ്പെടുന്നതായി കണക്കാക്കും എന്നാണ് (1 സെക്കൻഡ് 1000 മില്ലിസെക്കൻഡിന് തുല്യമാണ്).

sentinel down-after-milliseconds mymaster 5000

7. അടുത്തതായി, പല കാര്യങ്ങളും നിർവചിക്കുന്ന മില്ലിസെക്കൻഡിൽ പരാജയ സമയപരിധി സജ്ജമാക്കുക (കോൺഫിഗറേഷൻ ഫയലിലെ പാരാമീറ്ററിന്റെ ഡോക്യുമെന്റേഷൻ വായിക്കുക).

sentinel failover-timeout mymaster 180000

8. തുടർന്ന് ഒരേ സമയം ഒരു പരാജയത്തിന് ശേഷം പുതിയ മാസ്റ്റർ ഉപയോഗിക്കുന്നതിന് പുനഃക്രമീകരിക്കാൻ കഴിയുന്ന പകർപ്പുകളുടെ എണ്ണം സജ്ജമാക്കുക. ഞങ്ങൾക്ക് രണ്ട് പകർപ്പുകൾ ഉള്ളതിനാൽ, മറ്റൊന്ന് പുതിയ മാസ്റ്ററായി പ്രമോട്ടുചെയ്യപ്പെടുന്നതിനാൽ ഞങ്ങൾ ഒരു പകർപ്പ് സജ്ജമാക്കും.

sentinel parallel-syncs mymaster 1

Redis Replica1, Sentinel2, Reddis Replica1, Sentinel2 എന്നിവയിലെ കോൺഫിഗറേഷൻ ഫയലുകൾ ഒരുപോലെ ആയിരിക്കണമെന്ന് ശ്രദ്ധിക്കുക.

9. അടുത്തതായി, സമീപകാല മാറ്റങ്ങൾ പ്രയോഗിക്കുന്നതിന് എല്ലാ നോഡുകളിലും സെന്റിനൽ സേവനങ്ങൾ പുനരാരംഭിക്കുക.

# systemctl restart redis-sentinel

10. അടുത്തതായി, എല്ലാ നോഡുകളിലെയും ഫയർവാളിൽ പോർട്ട് 26379 തുറക്കുക, സെന്റിനൽ സംഭവങ്ങൾ സംസാരിക്കാൻ തുടങ്ങുകയും മറ്റ് സെന്റിനൽ സംഭവങ്ങളിൽ നിന്ന് കണക്ഷനുകൾ സ്വീകരിക്കുകയും ചെയ്യുക, ഫയർവാൾ-cmd ഉപയോഗിച്ച്.

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

11. എല്ലാ പകർപ്പുകളും സ്വയമേവ കണ്ടെത്തും. പ്രധാനമായും, പകർപ്പുകളെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ ഉപയോഗിച്ച് സെന്റിനൽ കോൺഫിഗറേഷൻ സ്വയമേവ അപ്ഡേറ്റ് ചെയ്യും. ഓരോ സന്ദർഭത്തിനും സെന്റിനൽ കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് അതിലൂടെ നോക്കുന്നതിലൂടെ നിങ്ങൾക്ക് ഇത് സ്ഥിരീകരിക്കാം.

ഉദാഹരണത്തിന്, നിങ്ങൾ മാസ്റ്ററുടെ കോൺഫിഗറേഷൻ ഫയലിന്റെ അവസാനം നോക്കുമ്പോൾ, ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ അറിയപ്പെടുന്ന-സെന്റിനലുകളും അറിയപ്പെടുന്ന-പ്രതികരണ പ്രസ്താവനകളും നിങ്ങൾ കാണും.

replica1, replica2 എന്നിവയിലും ഇത് സമാനമായിരിക്കണം.

പരാജയപ്പെടുമ്പോൾ ഒരു പകർപ്പ് മാസ്റ്റർ സ്റ്റാറ്റസിലേക്ക് പ്രമോട്ടുചെയ്യുമ്പോഴും സജ്ജീകരണത്തിൽ ഒരു പുതിയ സെന്റിനൽ കണ്ടെത്തുമ്പോഴെല്ലാം സെന്റിനൽ കോൺഫിഗറേഷൻ മാറ്റിയെഴുതുന്നു/അപ്uഡേറ്റ് ചെയ്യപ്പെടുന്നു എന്നത് ശ്രദ്ധിക്കുക.

ഘട്ടം 3: റെഡിസ് സെന്റിനൽ സെറ്റപ്പ് സ്റ്റാറ്റസ് പരിശോധിക്കുക

12. ഇപ്പോൾ താഴെ പറയുന്ന പോലെ ഇൻഫോ സെന്റിനൽ കമാൻഡ് ഉപയോഗിച്ച് മാസ്റ്ററിലെ സെന്റിനൽ സ്റ്റാറ്റസ്/ഇൻഫർമേഷൻ പരിശോധിക്കുക.

# redis-cli -p 26379 info sentinel

ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണുന്നതുപോലെ കമാൻഡിന്റെ ഔട്ട്പുട്ടിൽ നിന്ന്, നമുക്ക് രണ്ട് പകർപ്പുകൾ/അടിമകൾ, മൂന്ന് സെന്റിനലുകൾ എന്നിവയുണ്ട്.

13. മാസ്റ്ററെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ കാണിക്കുന്നതിന് (മൈമാസ്റ്റർ എന്ന് വിളിക്കപ്പെടുന്നു), സെന്റിനൽ മാസ്റ്റർ കമാൻഡ് ഉപയോഗിക്കുക.

# redis-cli -p 26379 sentinel master mymaster

14. അടിമകളെയും കാവൽക്കാരെയും കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ കാണിക്കുന്നതിന്, യഥാക്രമം സെന്റിനൽ സ്ലേവ്സ് കമാൻഡും സെന്റിനൽ സെന്റിനൽ കമാൻഡും ഉപയോഗിക്കുക.

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

15. അടുത്തതായി, ഇനിപ്പറയുന്ന രീതിയിൽ സെന്റിനൽ get-master-addr-by-name കമാൻഡ് ഉപയോഗിച്ച് സ്ലേവ് ഇൻസ്uറ്റൻസുകളിൽ നിന്ന് പേര് ഉപയോഗിച്ച് മാസ്റ്ററുടെ വിലാസം ചോദിക്കുക.

ഔട്ട്uപുട്ട് നിലവിലെ മാസ്റ്റർ സംഭവത്തിന്റെ IP വിലാസവും പോർട്ടും ആയിരിക്കണം:

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

ഘട്ടം 4: സെന്റിനൽ പരാജയം പരിശോധിക്കുക

16. അവസാനമായി, നമ്മുടെ സെന്റിനൽ സെറ്റപ്പിൽ ഓട്ടോമാറ്റിക് പരാജയം പരിശോധിക്കാം. റെഡിസ്/സെന്റിനൽ മാസ്റ്ററിൽ, റെഡിസ് മാസ്റ്ററെ (പോർട്ട് 6379-ൽ പ്രവർത്തിക്കുന്നത്) 60 സെക്കൻഡ് ഉറങ്ങാൻ പ്രേരിപ്പിക്കുക. തുടർന്ന് പകർപ്പുകളിൽ/അടിമകളിൽ നിലവിലുള്ള യജമാനന്റെ വിലാസം ഇനിപ്പറയുന്ന രീതിയിൽ അന്വേഷിക്കുക.

# redis-cli -p 6379
127.0.0.1:6379> AUTH [email 
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

അന്വേഷണത്തിനായുള്ള ഔട്ട്uപുട്ടിൽ നിന്ന്, ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണുന്നത് പോലെ പുതിയ മാസ്റ്റർ ഇപ്പോൾ IP വിലാസം 10.42.0.34 ഉള്ള replica/slave2 ആണ്.

റെഡിസ് സെന്റിനൽ ഡോക്യുമെന്റേഷനിൽ നിന്ന് നിങ്ങൾക്ക് കൂടുതൽ വിവരങ്ങൾ ലഭിക്കും. എന്നാൽ പങ്കിടാൻ നിങ്ങൾക്ക് എന്തെങ്കിലും ചിന്തകളോ ചോദ്യങ്ങളോ ഉണ്ടെങ്കിൽ, ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം ഞങ്ങളിലേക്കുള്ള നിങ്ങളുടെ ഗേറ്റ്uവേയാണ്.

ഈ സീരീസിന്റെ അടുത്ത ഭാഗത്തിലും അവസാന ഭാഗത്തിലും, CentOS 8-ൽ ഒരു Redis ക്ലസ്റ്റർ എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് നോക്കാം. ആദ്യ രണ്ടിൽ നിന്നുള്ള ഒരു സ്വതന്ത്ര ലേഖനമായിരിക്കും ഇത്.