వ్యాసం యొక్క అనువాదం కోర్సు ప్రారంభం సందర్భంగా తయారు చేయబడింది
DRBD (డిస్ట్రిబ్యూటెడ్ రెప్లికేటెడ్ బ్లాక్ డివైస్) అనేది Linux కోసం పంపిణీ చేయబడిన, సౌకర్యవంతమైన మరియు విశ్వవ్యాప్తంగా పునరావృతమయ్యే నిల్వ పరిష్కారం. ఇది హార్డ్ డ్రైవ్లు, విభజనలు, లాజికల్ వాల్యూమ్లు మొదలైన బ్లాక్ పరికరాల కంటెంట్లను ప్రతిబింబిస్తుంది. సర్వర్ల మధ్య. ఇది రెండు నిల్వ పరికరాలలో డేటా కాపీలను సృష్టిస్తుంది, తద్వారా వాటిలో ఒకటి విఫలమైతే, రెండవదానిలోని డేటాను ఉపయోగించవచ్చు.
ఇది అలాంటిదేనని మీరు చెప్పవచ్చు
ప్రారంభంలో, DRBD ప్రధానంగా అధిక లభ్యత (HA) కంప్యూటర్ క్లస్టర్లలో ఉపయోగించబడింది, అయినప్పటికీ, వెర్షన్ XNUMX నుండి ప్రారంభించి, క్లౌడ్ నిల్వ పరిష్కారాలను అమలు చేయడానికి దీనిని ఉపయోగించవచ్చు.
ఈ కథనంలో, మేము CentOSలో DRBDని ఎలా ఇన్స్టాల్ చేయాలో వివరిస్తాము మరియు రెండు సర్వర్లలో నిల్వ (విభజన)ని ప్రతిబింబించడానికి దాన్ని ఎలా ఉపయోగించాలో క్లుప్తంగా ప్రదర్శిస్తాము. Linuxలో DRBDతో ప్రారంభించడానికి ఇది సరైన కథనం.
పరీక్ష పర్యావరణం
ఈ సెటప్ కోసం మేము రెండు నోడ్ క్లస్టర్ని ఉపయోగిస్తాము.
- నోడ్ 1: 192.168.56.101 – tecmint.tecmint.lan
- నోడ్ 2: 192.168.56.102 – server1.tecmint.lan
దశ 1: DRBD ప్యాకేజీలను ఇన్స్టాల్ చేయండి
DRBD Linux కెర్నల్ మాడ్యూల్గా అమలు చేయబడింది. ఇది వర్చువల్ బ్లాక్ పరికరానికి డ్రైవర్, కనుక ఇది సిస్టమ్ I/O స్టాక్లో చాలా దిగువన ఉంది.
DRBDని ELRepo లేదా EPEL నుండి ఇన్స్టాల్ చేయవచ్చు. దిగువ చూపిన విధంగా ELRepo ప్యాకేజీ సంతకం కీని దిగుమతి చేయడం మరియు రెండు నోడ్లలోని రిపోజిటరీని కనెక్ట్ చేయడం ద్వారా ప్రారంభిద్దాం.
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
అప్పుడు మీరు రెండు నోడ్లలో DRBD కెర్నల్ మాడ్యూల్ మరియు యుటిలిటీలను ఇన్స్టాల్ చేయాలి:
# yum install -y kmod-drbd84 drbd84-utils
మీరు SELinux ప్రారంభించబడి ఉంటే, SELinux నియంత్రణ నుండి DRBD ప్రక్రియలను మినహాయించడానికి మీరు విధానాలను కాన్ఫిగర్ చేయాలి.
# semanage permissive -a drbd_t
అదనంగా, మీ సిస్టమ్ ఫైర్వాల్ (ఫైర్వాల్డ్)ను నడుపుతున్నట్లయితే, మీరు రెండు నోడ్ల మధ్య డేటా సమకాలీకరణను అనుమతించడానికి DRBD పోర్ట్ 7789ని జోడించాలి.
మొదటి నోడ్ కోసం ఈ ఆదేశాలను అమలు చేయండి:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
రెండవ నోడ్ కోసం ఈ ఆదేశాలను అమలు చేయండి:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
దశ 2: తక్కువ-స్థాయి నిల్వను సిద్ధం చేయండి
ఇప్పుడు మేము రెండు క్లస్టర్ నోడ్లలో DRBDని ఇన్స్టాల్ చేసాము, మేము వాటిపై దాదాపు ఒకే పరిమాణంలో ఉన్న నిల్వ ప్రాంతాలను తప్పనిసరిగా అందించాలి. ఇది హార్డ్ డ్రైవ్ విభజన (లేదా పూర్తి భౌతిక హార్డ్ డ్రైవ్), సాఫ్ట్వేర్ RAID పరికరం,
ఈ కథనం కోసం, మేము dd ఆదేశాన్ని ఉపయోగించి 2GB టెస్ట్ బ్లాక్ పరికరాన్ని సృష్టిస్తాము.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024
ఇది రెండు నోడ్లకు కనెక్ట్ చేయబడిన రెండవ బ్లాక్ పరికరం (/dev/sdb)లో ఉపయోగించని విభజన (/dev/sdb1) అని అనుకుందాం.
దశ 3. DRBDని కాన్ఫిగర్ చేస్తోంది
DRBD ప్రధాన కాన్ఫిగరేషన్ ఫైల్ - /etc/drbd.conf
, మరియు అదనపు కాన్ఫిగరేషన్ ఫైళ్ళను డైరెక్టరీలో కనుగొనవచ్చు /etc/drbd.d
.
నిల్వను పునరావృతం చేయడానికి, మేము ఫైల్కు అవసరమైన కాన్ఫిగరేషన్లను జోడించాలి /etc/drbd.d/global_common.conf
, ఇది DRBD కాన్ఫిగరేషన్ యొక్క గ్లోబల్ మరియు సాధారణ విభాగాలను కలిగి ఉంది మరియు మేము వనరులను నిర్వచించాలి .res
ఫైళ్లు.
రెండు నోడ్లలో అసలు ఫైల్ యొక్క బ్యాకప్ కాపీని తయారు చేద్దాం, ఆపై సవరణ కోసం కొత్త ఫైల్ను తెరవండి (మీకు నచ్చిన టెక్స్ట్ ఎడిటర్ని ఉపయోగించండి).
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf
రెండు ఫైల్లకు క్రింది పంక్తులను జోడించండి:
global {
usage-count yes;
}
common {
net {
protocol C;
}
}
ఫైల్ను సేవ్ చేసి, ఆపై ఎడిటర్ను మూసివేయండి.
ప్రోటోకాల్ C లైన్ను ఒక్కసారి చూద్దాం. DRBD మూడు వేర్వేరు రెప్లికేషన్ మోడ్లకు (అంటే మూడు డిగ్రీల రెప్లికేషన్ సింక్రోనీ) మద్దతు ఇస్తుంది, అవి:
- ప్రోటోకాల్ A: అసమకాలిక రెప్లికేషన్ ప్రోటోకాల్; చాలా తరచుగా సుదూర ప్రతిరూపణ దృశ్యాలలో ఉపయోగిస్తారు.
- ప్రోటోకాల్ B: సెమీ-సింక్రోనస్ రెప్లికేషన్ ప్రోటోకాల్ లేదా సింక్రోనస్ మెమరీ ప్రోటోకాల్.
- ప్రోటోకాల్ సి: సాధారణంగా తక్కువ దూరాలతో నెట్వర్క్లలో నోడ్ల కోసం ఉపయోగిస్తారు; DRBD సెట్టింగ్లలో ఇది చాలా సాధారణంగా ఉపయోగించే రెప్లికేషన్ ప్రోటోకాల్.
ముఖ్యమైన: రెప్లికేషన్ ప్రోటోకాల్ ఎంపిక రెండు విస్తరణ కారకాలను ప్రభావితం చేస్తుంది: భద్రత మరియు జాప్యం. దీనికి విరుద్ధంగా, ఎంచుకున్న రెప్లికేషన్ ప్రోటోకాల్పై నిర్గమాంశ గణనీయంగా ఆధారపడి ఉండదు.
దశ 4: వనరును జోడించండి
వనరు అనేది ఒక నిర్దిష్ట ప్రతిరూప డేటాసెట్ యొక్క అన్ని అంశాలను సూచించే గొడుగు పదం. మేము ఫైల్లో మా వనరును నిర్వచిస్తాము /etc/drbd.d/test.res
.
రెండు నోడ్లలోని ఫైల్కు క్రింది వాటిని జోడించండి (మీ పర్యావరణం కోసం వాస్తవ విలువలతో వేరియబుల్లను భర్తీ చేయాలని గుర్తుంచుకోండి).
హోస్ట్ పేర్లపై శ్రద్ధ వహించండి, మేము నెట్వర్క్ హోస్ట్ పేరును పేర్కొనాలి, ఇది uname ఆదేశాన్ని ఉపయోగించి పొందవచ్చు. -n
.
resource test {
on tecmint.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.102:7789;
}
}
}
పేరు:
- హోస్ట్ పేరు మీద: నెస్టెడ్ కాన్ఫిగరేషన్ స్టేట్మెంట్ వర్తించే ఆన్ సెక్షన్.
- పరీక్ష: ఇది కొత్త వనరు పేరు.
- పరికరం /dev/drbd0: DRBD ద్వారా నిర్వహించబడే కొత్త వర్చువల్ బ్లాక్ పరికరాన్ని సూచిస్తుంది.
- డిస్క్ /dev/sdb1: ఇది DRBD పరికరానికి బ్యాకప్ పరికరం అయిన బ్లాక్ పరికర విభజన.
- మెటా-డిస్క్: DRBD తన మెటాడేటాను ఎక్కడ నిల్వ చేస్తుందో నిర్వచిస్తుంది. అంతర్గత అంటే DRBD దాని మెటాడేటాను ఉత్పత్తిలో ఉన్న వాస్తవ డేటా వలె అదే భౌతిక తక్కువ-స్థాయి పరికరంలో నిల్వ చేస్తుంది.
- చిరునామా: సంబంధిత నోడ్ యొక్క IP చిరునామా మరియు పోర్ట్ సంఖ్యను సూచిస్తుంది.
రెండు హోస్ట్లలో పారామితులు ఒకే విలువలను కలిగి ఉంటే, మీరు వాటిని నేరుగా వనరుల విభాగంలో పేర్కొనవచ్చని కూడా గమనించండి.
ఉదాహరణకు, పై కాన్ఫిగరేషన్ని దీని కోసం పునర్నిర్మించవచ్చు:
resource test {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
on tecmint.tecmint.lan {
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
address 192.168.56.102:7789;
}
}
దశ 5. వనరును ప్రారంభించండి మరియు ప్రారంభించండి
DRBDతో పరస్పర చర్య చేయడానికి మేము క్రింది అడ్మినిస్ట్రేషన్ సాధనాలను ఉపయోగిస్తాము (ఇది DRBD వనరులను కాన్ఫిగర్ చేయడానికి మరియు నిర్వహించడానికి కెర్నల్ మాడ్యూల్తో పరస్పర చర్య చేస్తుంది):
- drbdadm: DRBD ఉన్నత-స్థాయి పరిపాలన సాధనం.
- drbdsetup: DRBD పరికరాలను వాటి బ్యాకప్ పరికరాలకు కనెక్ట్ చేయడానికి, వాటి బ్యాకప్ పరికరాలను ప్రతిబింబించేలా DRBD పరికరాల జతలను కాన్ఫిగర్ చేయడానికి మరియు నడుస్తున్న DRBD పరికరాల కాన్ఫిగరేషన్ను ధృవీకరించడానికి దిగువ-స్థాయి పరిపాలనా సాధనం.
- Drbdmeta: మెటాడేటా నిర్వహణ సాధనం.
అన్ని ప్రారంభ వనరుల కాన్ఫిగరేషన్లను జోడించిన తర్వాత, మేము రెండు నోడ్లలో వనరును తప్పనిసరిగా అమలు చేయాలి.
# drbdadm create-md test
మెటాడేటా స్టోర్ని ప్రారంభించడం
తరువాత మనం దీన్ని అమలు చేయాలి, ఇది రిసోర్స్ను దాని బ్యాకప్ పరికరానికి కనెక్ట్ చేస్తుంది, ఆపై ప్రతిరూపణ పారామితులను సెట్ చేస్తుంది మరియు వనరును దాని పీర్కి కనెక్ట్ చేస్తుంది:
# drbdadm up test
ఇప్పుడు మీరు ఆదేశాన్ని అమలు చేస్తే /dev/sdb1
:
# lsblk
బ్లాక్ పరికరాల జాబితా
వనరును నిలిపివేయడానికి, అమలు చేయండి:
# drbdadm down test
వనరు యొక్క స్థితిని తనిఖీ చేయడానికి, కింది ఆదేశాన్ని అమలు చేయండి (ఈ సమయంలో డిస్క్ల స్థితి అంచనా వేయబడుతుందని గమనించండి అస్థిరమైనది/అస్థిరమైనది):
# drbdadm status test
OR
# drbdsetup status test --verbose --statistics #for a more detailed status
వనరు యొక్క స్థితిని తనిఖీ చేస్తోంది
చెడు
దశ 6: ప్రాథమిక వనరు/ప్రారంభ పరికర సమకాలీకరణ మూలాన్ని సెట్ చేయండి
ఈ దశలో, DRBD సిద్ధంగా ఉంది. ఇప్పుడు మనం ప్రారంభ పరికర సమకాలీకరణ యొక్క మూలంగా ఏ నోడ్ని ఉపయోగించాలో పేర్కొనాలి.
ప్రారంభ పూర్తి సమకాలీకరణను ప్రారంభించడానికి కింది ఆదేశాన్ని కేవలం ఒక నోడ్పై అమలు చేయండి:
# drbdadm primary --force test
# drbdadm status test
ప్రాథమిక నోడ్ను ప్రారంభ పరికరంగా సెట్ చేస్తోంది
సింక్రొనైజేషన్ పూర్తయిన తర్వాత, రెండు డ్రైవ్ల స్థితి UpToDateగా ఉండాలి.
దశ 7: DRBD సెటప్ని పరీక్షిస్తోంది
చివరగా, ప్రతిరూపం చేయబడిన డేటాను నిల్వ చేయడానికి అవసరమైన విధంగా DRBD పరికరం పని చేస్తుందో లేదో మేము తనిఖీ చేయాలి. మేము ఖాళీ డిస్క్ వాల్యూమ్ను ఉపయోగించామని గుర్తుంచుకోండి, కాబట్టి మేము తప్పనిసరిగా పరికరంలో ఫైల్ సిస్టమ్ను సృష్టించాలి మరియు ప్రతిరూప డేటాను నిల్వ చేయడానికి దాన్ని ఉపయోగించవచ్చో లేదో తనిఖీ చేయడానికి దాన్ని మౌంట్ చేయాలి.
మేము ప్రారంభ పూర్తి సమకాలీకరణను ప్రారంభించిన నోడ్పై కింది ఆదేశాన్ని ఉపయోగించి పరికరంలో ఫైల్ సిస్టమ్ను సృష్టించాలి (దీనికి ప్రాథమిక పాత్రతో వనరు ఉంటుంది):
# mkfs -t ext4 /dev/drbd0
Drbd వాల్యూమ్పై ఫైల్ సిస్టమ్ను సృష్టిస్తోంది
చూపిన విధంగా దానిని మౌంట్ చేయండి (మీరు మౌంట్ పాయింట్కి తగిన పేరు ఇవ్వవచ్చు):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
ఇప్పుడు పై మౌంట్ పాయింట్లో కొన్ని ఫైల్లను కాపీ చేయండి లేదా సృష్టించండి మరియు దీనితో సుదీర్ఘ జాబితాను రూపొందించండి
# cd /mnt/DRDB_PRI/
# ls -l
ప్రధాన Drbd వాల్యూమ్ యొక్క కంటెంట్లను జాబితా చేయండి
తర్వాత, పరికరాన్ని అన్మౌంట్ చేయండి (మౌంట్ తెరవబడలేదని నిర్ధారించుకోండి, లోపాలను నివారించడానికి అన్మౌంట్ చేసిన తర్వాత డైరెక్టరీని మార్చండి) మరియు నోడ్ పాత్రను ప్రైమరీ నుండి సెకండరీకి మార్చండి:
# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test
ఇతర నోడ్ను (ద్వితీయ పాత్రతో కూడిన వనరును కలిగి ఉంటుంది) ప్రాథమికంగా చేయండి, ఆపై దానికి పరికరాన్ని జోడించి, మౌంట్ పాయింట్ల యొక్క సుదీర్ఘ జాబితాను జారీ చేయండి. సెటప్ బాగా పని చేస్తే, వాల్యూమ్లో నిల్వ చేయబడిన అన్ని ఫైల్లు ఉండాలి:
# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls -l
సెకండరీ నోడ్లో నడుస్తున్న DRBD సెటప్ని తనిఖీ చేస్తోంది.
మరింత సమాచారం కోసం, అడ్మినిస్ట్రేటివ్ టూల్స్ సహాయ పేజీలను చూడండి:
# man drbdadm
# man drbdsetup
# man drbdmeta
తరచుగా అడిగే ప్రశ్నలు:
సారాంశం
DRBD చాలా అనువైనది మరియు బహుముఖమైనది, ఇది దాదాపు ఏ అప్లికేషన్కైనా HAని జోడించడానికి అనువైన స్టోరేజ్ రెప్లికేషన్ సొల్యూషన్గా మారుతుంది. ఈ కథనంలో, మేము CentOS 7లో DRBDని ఎలా ఇన్స్టాల్ చేయాలో చూపించాము మరియు నిల్వ ప్రతిరూపణ కోసం దీన్ని ఎలా ఉపయోగించాలో క్లుప్తంగా ప్రదర్శించాము. దిగువ అభిప్రాయ ఫారమ్ని ఉపయోగించి మీ ఆలోచనలను మాతో పంచుకోవడానికి సంకోచించకండి.
మూలం: www.habr.com