CentOS 8 - பகுதி 3 இல் ஒரு ரெடிஸ் கிளஸ்டரை எவ்வாறு அமைப்பது


ரெடிஸ் கிளஸ்டர் என்பது ஒரு பில்டின் ரெடிஸ் அம்சமாகும், இது தானியங்கி கூர்மை, பிரதி மற்றும் அதிக கிடைக்கும் தன்மையை ஆதரிக்கிறது, இது முன்பு சென்டினல்களைப் பயன்படுத்தி செயல்படுத்தப்பட்டது. இது இரண்டு முக்கிய நோக்கங்களுக்காக வடிவமைக்கப்பட்டுள்ளது: ஒன்று உங்கள் தரவுத்தொகுப்பை தானாகவே பல நிகழ்வுகளாகப் பிரிப்பதும், இரண்டாவதாக பகிர்வுகளின் போது ஓரளவு கிடைக்கும் தன்மையை வழங்குவதும், சில நிகழ்வுகள் (குறிப்பாக முதுநிலை) தோல்வியுற்றால் அல்லது பெரும்பான்மையினருடன் தொடர்பு கொள்ள முடியாமல் போகும்போது செயல்பாடுகளைத் தொடர்வதும் ஆகும். கொத்து உள்ள முனைகள்.

இருப்பினும், பெரிய தோல்விகள் ஏற்பட்டால் கொத்து செயல்படுவதை நிறுத்துகிறது (எ.கா. பெரும்பாலான முதன்மை நிகழ்வுகள் கிடைக்காதபோது). மேலும், ஒரே நேரத்தில் ஒரு மாஸ்டர் மற்றும் அடிமை தோல்வியுற்றால், கொத்து சாதாரண செயல்பாடுகளைத் தொடர முடியாது (இருப்பினும், அதிக முனைகளைச் சேர்ப்பது அல்லது கிளஸ்டரில் ஒரு சமச்சீரற்ற தன்மையை உருவாக்குவது, கிளஸ்டர் தளவமைப்பை தானாக மாற்றுவது).

ரெடிஸ் கிளஸ்டர் ஆவணத்தின் படி, expected "குறைந்தபட்ச கிளஸ்டர்" குறைந்தது 3 மாஸ்டர் முனைகளைக் கொண்டிருக்க வேண்டும். ஆனால் அதிக கிடைக்கும் தன்மைக்கு மிகவும் பொருத்தமான அமைப்பில் மூன்று எஜமானர்கள் மற்றும் மூன்று அடிமைகளுடன் குறைந்தது 6 முனைகள் இருக்க வேண்டும், ஒவ்வொரு மாஸ்டரும் ஒரு அடிமை.

முக்கியமானது: ரெடிஸ் கிளஸ்டருக்கு சில வரம்புகள் உள்ளன, அவை நேட்டட் சூழல்களுக்கான ஆதரவின்மை மற்றும் ஐபி முகவரிகள் அல்லது டிசிபி போர்ட்களை டோக்கரின் கீழ் மறுபெயரிடுகின்றன. கூடுதலாக, ஒவ்வொரு கிளையன்ட் நூலகமும் அதை ஆதரிக்காது.

சென்டோஸ் 8 இல் ரெடிஸ் கிளஸ்டரை (க்ளஸ்டர்-மோட் முடக்கப்பட்ட நிலையில்) எவ்வாறு அமைப்பது என்பதை இந்த கட்டுரை காட்டுகிறது. இதில் ரெடிஸை எவ்வாறு நிறுவுவது, கிளஸ்டர் முனைகளை உள்ளமைப்பது, ஒரு கிளஸ்டரை உருவாக்குவது மற்றும் கிளஸ்டர் செயலிழப்பை சோதிப்பது ஆகியவை அடங்கும்.

குறிப்பு: இந்த வழிகாட்டியைப் பொறுத்தவரை, கிளஸ்டர் பயன்முறையை இயக்க புதிய/வெற்று ரெடிஸ் நிகழ்வுகளைப் பயன்படுத்துவோம். எங்கள் ரெடிஸ் தொடரின் முதல் இரண்டு வழிகாட்டிகளில் செய்யப்பட்ட சில உள்ளமைவுகளுடன் கிளஸ்டர் பயன்முறை இயங்காது, குறிப்பாக அளவுருவின் பிரதி பயன்படுத்தப்படும்போது இது இயங்காது.

  1. CentOS 8 நிறுவலுடன் சேவையகங்கள்

Redis Master1: 10.42.0.247
Redis Master2: 10.42.0.197
Redis Master3: 10.42.0.132

Redis Slave1: 10.42.0.200
Redis Slave2: 10.42.0.21
Redis Slave3: 10.42.0.34

எங்கள் அமைப்பில் 3 படிக்க/எழுத மாஸ்டர் முனைகள் மற்றும் 3 படிக்க-மட்டும் பிரதி முனைகள் உள்ளன, ஒவ்வொரு மாஸ்டருக்கும் ஒரு பிரதி உள்ளது, எனவே மூன்று துகள்களில் ஒவ்வொரு முனையிலும் உள்ள அனைத்து கிளஸ்டரின் தரவுகளும் உள்ளன. ஒரு பயன்பாட்டு ஏபிஐ அல்லது சிஎல்ஐ கிளையன்ட் மாஸ்டர் முனைகளுக்கு மட்டுமே எழுத முடியும், ஆனால் கிளஸ்டரில் உள்ள எந்த முனையிலிருந்தும் படிக்க முடியும்.

படி 1: எல்லா முனைகளிலும் ரெடிஸை நிறுவுதல்

1. SSH வழியாக அனைத்து நிகழ்வுகளிலும் உள்நுழைந்து, காட்டப்பட்டுள்ளபடி DNF தொகுப்பு நிர்வாகியைப் பயன்படுத்தி Redis தொகுதியை நிறுவ பின்வரும் கட்டளையை இயக்கவும்.

# dnf module install redis

2. அடுத்து, ரெடிஸ் சேவையைத் தொடங்கவும், கணினி துவக்கத்தில் தானாகவே தொடங்கவும், அது இயங்குகிறதா என்பதைச் சரிபார்க்க அதன் நிலையைச் சரிபார்க்கவும் (அனைத்து 6 நிகழ்வுகளிலும் சேவையைச் சரிபார்க்கவும்):

# systemctl start redis
# systemctl enable redis
# systemctl status redis

படி 2: அனைத்து முனைகளிலும் ரெடிஸ் நிகழ்வுகளை கட்டமைத்தல்

3. ரெடிஸ் கிளஸ்டர் முனைகளை எவ்வாறு கட்டமைப்பது என்பதை இந்த பகுதி விவரிக்கிறது. எல்லா முனைகளிலும் உள்ளமைவுகளை இங்கே செய்ய நினைவில் கொள்க.

Redis சேவையகத்தை உள்ளமைக்க /etc/redis.conf உள்ளமைவு கோப்பைப் பயன்படுத்தவும். பரிந்துரைக்கப்பட்ட நடைமுறையாக, உங்கள் விருப்பப்படி கட்டளை வரி உரை திருத்தியைப் பயன்படுத்தி அசல் கோப்பைத் திருத்துவதற்கு முன் காப்புப்பிரதியை உருவாக்கவும்.

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

4. அடுத்து, பின்வரும் உள்ளமைவு அளவுருக்களைக் கண்டுபிடித்து அவற்றின் மதிப்புகளைக் காட்டப்பட்டுள்ளபடி திருத்தவும். பிணைப்பு அளவுரு ரெடிஸ் சேவையகத்தின் இடைமுகத்தை கேட்கும், அதன் மதிப்பை உதாரணமாக லேன் ஐபிக்கு அமைக்கும். 127.0.0.1 ஐ அகற்று, ஏனென்றால் அதை விட்டு வெளியேறுவது கிளஸ்டர் உருவாக்கும் செயல்முறையை மெதுவாக்குகிறது, குறிப்பாக கிளஸ்டரில் சேரும் கட்டம்.

bind  10.42.0.247

கிளஸ்டரில் உள்ள பிற நிகழ்வுகளிலிருந்து இணைப்புகளை அனுமதிக்க பாதுகாக்கப்பட்ட பயன்முறையை இல்லை என அமைக்கவும்.

protected-mode no

போர்ட் அளவுரு துறைமுகத்தை வரையறுக்கிறது, ரெடிஸ் சேவையகம் இணைப்புகளைக் கேட்கும், இயல்புநிலை 6379 ஆகும். இது வாடிக்கையாளர்களுடன் தொடர்புகொள்வதற்கான தரவு துறை.

port 6379

5. அடுத்த அளவுருக்கள் கொத்து பயன்முறையை இயக்கும் மற்றும் அதன் பயனுள்ள சில அம்சங்களை அமைக்கும். கிளஸ்டர்-இயக்கப்பட்ட அளவுரு, ஆம் என அமைக்கப்பட்டால், கிளஸ்டர் பயன்முறையை செயல்படுத்துகிறது.

cluster-enabled yes

அடுத்து, கிளஸ்டர்-கட்டமைப்பு-கோப்பு அளவுரு ஒரு கிளஸ்டர் முனையின் கிளஸ்டர் உள்ளமைவு கோப்பின் பெயரை அமைக்கிறது (எ.கா. முனைகள் -6379.conf). கோப்பு பணிபுரியும் கோப்பகத்தில் உருவாக்கப்பட்டது (இயல்புநிலை/var/lib/redis என்பது dir அளவுருவைப் பயன்படுத்தி வரையறுக்கப்பட்டுள்ளது) மற்றும் பயனர் திருத்தக்கூடியது அல்ல.

cluster-config-file nodes-6379.conf

அடுத்த பயனுள்ள கிளஸ்டர் விருப்பம் கிளஸ்டர்-நோட்-டைம்அவுட் ஆகும், இது அதிகபட்ச நேரத்தை மில்லி விநாடிகளில் அமைக்கப் பயன்படுகிறது, இது ஒரு தோல்வி நிலையில் கருதப்படுவதற்கு ஒரு நிகழ்வு கிடைக்காது. 15000 மதிப்பு 15 வினாடிகளுக்கு சமம்.

cluster-node-timeout 15000

6. வட்டில் ரெடிஸ் நிலைத்தன்மையையும் நாம் இயக்க வேண்டும். நிலைத்தன்மையுள்ள பயன்முறைகளில் ஒன்றை நாம் பயன்படுத்தலாம், அதாவது இணைப்பு மட்டும் கோப்பு (AOF): இது பதிவுசெய்கிறது (பணிபுரியும் கோப்பகத்தின் கீழ் உருவாக்கப்பட்ட appendonly.aof கோப்பில்) சேவையகத்தால் வெற்றிகரமாக பெறப்பட்ட ஒவ்வொரு எழுதும் செயல்பாடும். அசல் தரவுத்தொகுப்பை மறுகட்டமைக்க சேவையக தொடக்கத்தின் போது தரவு இயக்கப்படும்.

இதை இயக்க, இணைப்பு அளவுருவை ஆம் என அமைக்கவும்.

appendonly yes

7. அனைத்து மாற்றங்களையும் செய்த பிறகு, சமீபத்திய மாற்றங்களைப் பயன்படுத்த அனைத்து முனைகளிலும் ரெடிஸ் சேவையை மறுதொடக்கம் செய்யுங்கள்.

# systemctl restart redis

8. இந்த கட்டத்தில், ஒவ்வொரு கிளஸ்டர் கணுக்கும் இப்போது ஒரு ஐடி இருக்க வேண்டும். இதை /var/log/redis/redis.log இல் உள்ள logfile இல் சரிபார்க்கலாம்.

# cat /var/log/redis/redis.log

9. அடுத்து, அனைத்து நிகழ்வுகளிலும் துறைமுகம் 6397 மற்றும் 16379 ஐத் திறக்கவும். பின்னர் துறைமுகம் கிளஸ்டர் பஸ்ஸுக்கு பயன்படுத்தப்படுகிறது (பைனரி நெறிமுறையைப் பயன்படுத்தி ஒரு முனை-க்கு-முனை தொடர்பு சேனல்). ரெடிஸ் கிளஸ்டர் டி.சி.பி இணைப்புகளுக்கு இது ஒரு அடிப்படை தேவை.

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

படி 3: ரெடிஸ் கிளஸ்டரை உருவாக்குதல்

10. கிளஸ்டரை உருவாக்க, redis-cli கட்டளை-வரி கிளையண்டை பின்வருமாறு பயன்படுத்தவும். --cluster create கொத்து உருவாக்கத்தை செயல்படுத்துகிறது மற்றும் --cluster-replicas 1 என்பது ஒரு மாஸ்டருக்கு ஒரு பிரதி ஒன்றை உருவாக்குகிறது.

6 முனைகளைக் கொண்ட எங்கள் அமைப்பிற்கு, எங்களுக்கு 3 எஜமானர்களும் 3 அடிமைகளும் இருப்பார்கள்.

முதல் 6 முனைகள் எஜமானர்கள் (M) ஆகவும், அடுத்த மூன்று முனைகள் அடிமைகளாகவும் கருதப்படும் (S) என்பதை நினைவில் கொள்க. முதல் அடிமை அதாவது 10.42.0.200:6379 முதல் எஜமானரை பிரதிபலிக்கிறது, அதாவது 10.42.0.247:6379, இரண்டாவது அடிமை இரண்டாவது எஜமானரை அந்த வரிசையில் பிரதிபலிக்கிறது.

பின்வரும் கட்டளை வடிவமைக்கப்பட்டுள்ளது, இதன் விளைவாக மேலே உள்ள எங்கள் தருக்க அமைப்பைக் குறிக்கும்.

# redis-cli --cluster create 10.42.0.247:6379 10.42.0.197:6379 10.42.0.132:6379 10.42.0.200:6379 10.42.0.21:6379 10.42.0.34:6379 --cluster-replicas 1

11. கிளஸ்டர் உருவாக்கம் வெற்றிகரமாக முடிந்ததும், அனைத்து கிளஸ்டர் முனைகளையும் பட்டியலிட பின்வரும் ஹோஸ்டை எந்த ஹோஸ்டிலும் இயக்கவும் (அதன் ஐபி முகவரியை -h கொடியைப் பயன்படுத்தி குறிப்பிடவும்).

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes

பின்வரும் ஸ்கிரீன்ஷாட்டில் காட்டப்பட்டுள்ளபடி, அடிமைகள் தங்கள் எஜமானர்களைக் குறிக்கும் அனைத்து கிளஸ்டர் முனைகளையும் நீங்கள் காண முடியும்.

வெவ்வேறு புலங்கள் இந்த வரிசையில் உள்ளன: முனை ஐடி, ஐபி முகவரி: போர்ட், கொடிகள், கடைசியாக அனுப்பப்பட்ட பிங், கடைசியாக பெறப்பட்ட பாங், உள்ளமைவு சகாப்தம், இணைப்பு-நிலை, இடங்கள் (எஜமானர்களுக்கு).

படி 4: ரெடிஸ் கிளஸ்டர் ஃபெயில்ஓவரை சோதித்தல்

12. இந்த பிரிவில், ஒரு கிளஸ்டர் செயலிழப்பை எவ்வாறு சோதிப்பது என்பதை நாங்கள் காண்பிப்போம். முதலில், எஜமானர்களைக் கவனிப்போம்.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

மேலும், ரெடிஸ் அடிமைகளை கவனியுங்கள்.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

13. அடுத்து, முதன்மை முனைகளில் ஒன்றில் ரெடிஸ் சேவையை நிறுத்தலாம், எ.கா. 10.42.0.197 மற்றும் கிளஸ்டரில் உள்ள அனைத்து முதன்மை முனைகளையும் சரிபார்க்கவும்.

# systemctl stop redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master

பின்வரும் ஸ்கிரீன்ஷாட்டில் இருந்து, 10.42.0.197:6367 முனை தோல்வியுற்ற நிலையில் இருப்பதையும் அதன் அடிமை 10.42.0.21:6379 முதன்மை நிலைக்கு உயர்த்தப்பட்டுள்ளதையும் நீங்கள் காணலாம்.

14. இப்போது தோல்வியுற்ற முனையில் மீண்டும் ரெடிஸ் சேவையைத் தொடங்குவோம், மேலும் கிளஸ்டரில் உள்ள அனைத்து எஜமானர்களையும் சரிபார்க்கலாம்.

# systemctl start redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

மேலும், தோல்வியுற்ற எஜமானர் இப்போது ஒரு அடிமை என்பதை உறுதிப்படுத்த கொத்து அடிமைகளை சரிபார்க்கவும்.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

படி 5: ரெடிஸ் கிளஸ்டர் முழுவதும் தரவு நகலெடுப்பு சோதனை

15. இந்த கடைசி பகுதி கிளஸ்டர் தரவு நகலெடுப்பை எவ்வாறு சரிபார்க்க வேண்டும் என்பதை விளக்குகிறது. எஜமானர்களில் ஒருவரிடம் ஒரு விசையையும் மதிப்பையும் உருவாக்குவோம், பின்னர் எல்லா கிளஸ்டர் முனைகளிலிருந்தும் பின்வருமாறு படிக்க முயற்சிப்போம். ரெடிஸ்-கிளி பயன்பாட்டின் கீழ் கிளஸ்டர் ஆதரவை இயக்க -c சுவிட்சைப் பயன்படுத்தவும் மற்றும் கிளஸ்டர் பயன்முறையில் தரவை அணுகவும்.

# redis-cli -c -h 10.42.0.247 -p 6379 set name 'TecMint.com'
# redis-cli -c -h 10.42.0.247 -p 6379 get name
# redis-cli -c -h 10.42.0.21 -p 6379 get name
# redis-cli -c -h 10.42.0.132 -p 6379 get name
# redis-cli -c -h 10.42.0.200 -p 6379 get name
# redis-cli -c -h 10.42.0.197 -p 6379 get name
# redis-cli -c -h 10.42.0.34 -p 6379 get name

கீழேயுள்ள வரி என்பது ரெடிஸ் கிளஸ்டர் என்பது தானியங்கி கூர்மைப்படுத்துதல், பிரதி செய்தல் மற்றும் அதிக கிடைக்கும் தன்மையைப் பெறுவதற்கான விருப்பமான வழியாகும். மீதமுள்ள /etc/redis.conf கோப்பில் இன்னும் பல நன்கு ஆவணப்படுத்தப்பட்ட உள்ளமைவு அளவுருக்கள் உள்ளன, அதிகாரப்பூர்வ ஆவணத்தில் கூடுதல் தகவல்களை நீங்கள் காணலாம்: ரெடிஸ் கிளஸ்டர் டுடோரியல் மற்றும் ரெடிஸ் கிளஸ்டர் விவரக்குறிப்பு.

இது மூன்று பகுதி ரெடிஸ் டுடோரியல் தொடரின் முடிவுக்கு நம்மை அழைத்துச் செல்கிறது. கேள்விகள் அல்லது கருத்துகளை இடுகையிட கீழே உள்ள கருத்து படிவத்தைப் பயன்படுத்தலாம்.