ఈ గమనిక బ్యాకప్ గురించి చక్రాన్ని పూర్తి చేస్తుంది. ఇది బ్యాకప్ కోసం అనుకూలమైన డెడికేటెడ్ సర్వర్ (లేదా VPS) యొక్క తార్కిక సంస్థను చర్చిస్తుంది మరియు విపత్తు సంభవించినప్పుడు ఎక్కువ పనికిరాకుండానే బ్యాకప్ నుండి సర్వర్ను త్వరగా పునరుద్ధరించడానికి ఒక ఎంపికను కూడా అందిస్తుంది.
మూల డేటా
అంకితమైన సర్వర్ చాలా తరచుగా కనీసం రెండు హార్డ్ డ్రైవ్లను కలిగి ఉంటుంది, ఇవి మొదటి-స్థాయి RAID శ్రేణిని (మిర్రర్) నిర్వహించడానికి ఉపయోగపడతాయి. ఒక డిస్క్ విఫలమైతే సర్వర్ని ఆపరేట్ చేయడం కొనసాగించడానికి ఇది అవసరం. ఇది రెగ్యులర్ డెడికేటెడ్ సర్వర్ అయితే, SSDలో యాక్టివ్ కాషింగ్ టెక్నాలజీతో ప్రత్యేక హార్డ్వేర్ RAID కంట్రోలర్ ఉండవచ్చు, తద్వారా సాధారణ హార్డ్ డ్రైవ్లతో పాటు, ఒకటి లేదా అంతకంటే ఎక్కువ SSDలు కనెక్ట్ చేయబడతాయి. కొన్నిసార్లు అంకితమైన సర్వర్లు అందించబడతాయి, దీనిలో స్థానిక డిస్క్లు SATADOM (చిన్న డిస్క్లు, నిర్మాణాత్మకంగా SATA పోర్ట్కు కనెక్ట్ చేయబడిన ఫ్లాష్ డ్రైవ్), లేదా ఒక ప్రత్యేక అంతర్గత పోర్ట్కు కనెక్ట్ చేయబడిన సాధారణ చిన్న (8-16GB) ఫ్లాష్ డ్రైవ్, మరియు డేటా స్టోరేజ్ సిస్టమ్ నుండి తీసుకోబడింది , డెడికేటెడ్ స్టోరేజ్ నెట్వర్క్ (ఈథర్నెట్ 10G, FC, మొదలైనవి) ద్వారా కనెక్ట్ చేయబడింది మరియు నిల్వ సిస్టమ్ నుండి నేరుగా లోడ్ చేయబడిన డెడికేటెడ్ సర్వర్లు ఉన్నాయి. నేను అలాంటి ఎంపికలను పరిగణించను, ఎందుకంటే అటువంటి సందర్భాలలో సర్వర్ను బ్యాకప్ చేసే పని సజావుగా నిల్వ వ్యవస్థను నిర్వహించే నిపుణుడికి వెళుతుంది; సాధారణంగా స్నాప్షాట్లు, అంతర్నిర్మిత తగ్గింపు మరియు సిస్టమ్ అడ్మినిస్ట్రేటర్ యొక్క ఇతర ఆనందాలను రూపొందించడానికి వివిధ యాజమాన్య సాంకేతికతలు ఉన్నాయి. , ఈ సిరీస్ యొక్క మునుపటి భాగాలలో చర్చించబడింది. సర్వర్కి కనెక్ట్ చేయబడిన డిస్క్ల సంఖ్య మరియు పరిమాణాన్ని బట్టి డెడికేటెడ్ సర్వర్ డిస్క్ శ్రేణి వాల్యూమ్ అనేక పదుల టెరాబైట్లకు చేరుకుంటుంది. VPS విషయంలో, వాల్యూమ్లు మరింత నిరాడంబరంగా ఉంటాయి: సాధారణంగా 100GB కంటే ఎక్కువ ఉండవు (కానీ ఎక్కువ ఉన్నాయి), మరియు అలాంటి VPS కోసం సుంకాలు అదే హోస్టర్ నుండి చౌకైన అంకితమైన సర్వర్ల కంటే సులభంగా ఖరీదైనవి. VPS చాలా తరచుగా ఒక డిస్క్ను కలిగి ఉంటుంది, ఎందుకంటే దాని కింద నిల్వ వ్యవస్థ (లేదా ఏదైనా హైపర్కన్వర్జ్డ్) ఉంటుంది. కొన్నిసార్లు VPS వివిధ ప్రయోజనాల కోసం వివిధ లక్షణాలతో అనేక డిస్కులను కలిగి ఉంటుంది:
- చిన్న వ్యవస్థ - ఆపరేటింగ్ సిస్టమ్ను ఇన్స్టాల్ చేయడానికి;
- పెద్ద - వినియోగదారు డేటాను నిల్వ చేస్తుంది.
మీరు కంట్రోల్ ప్యానెల్ ఉపయోగించి సిస్టమ్ను మళ్లీ ఇన్స్టాల్ చేసినప్పుడు, వినియోగదారు డేటాతో డిస్క్ ఓవర్రైట్ చేయబడదు, కానీ సిస్టమ్ డిస్క్ పూర్తిగా రీఫిల్ చేయబడింది. అలాగే, VPS విషయంలో, హోస్టర్ VPS (లేదా డిస్క్) స్థితి యొక్క స్నాప్షాట్ తీసుకునే బటన్ను అందించవచ్చు, కానీ మీరు మీ స్వంత ఆపరేటింగ్ సిస్టమ్ను ఇన్స్టాల్ చేస్తే లేదా VPS లోపల కావలసిన సేవను సక్రియం చేయడం మర్చిపోతే, కొన్ని డేటా ఇప్పటికీ కోల్పోవచ్చు. బటన్తో పాటు, డేటా నిల్వ సేవ సాధారణంగా అందించబడుతుంది, చాలా తరచుగా చాలా పరిమితం. సాధారణంగా ఇది FTP లేదా SFTP ద్వారా యాక్సెస్తో కూడిన ఖాతా, కొన్నిసార్లు SSHతో పాటు, స్ట్రిప్డ్-డౌన్ షెల్ (ఉదాహరణకు, rbash) లేదా authorized_keys ద్వారా (ForcedCommand ద్వారా) ఆదేశాలను అమలు చేయడంపై పరిమితి.
అంకితమైన సర్వర్ 1 Gbps వేగంతో రెండు పోర్ట్ల ద్వారా నెట్వర్క్కి కనెక్ట్ చేయబడింది, కొన్నిసార్లు ఇవి 10 Gbps వేగంతో కార్డ్లు కావచ్చు. VPS చాలా తరచుగా ఒక నెట్వర్క్ ఇంటర్ఫేస్ను కలిగి ఉంటుంది. చాలా తరచుగా, డేటా సెంటర్లు డేటా సెంటర్లో నెట్వర్క్ వేగాన్ని పరిమితం చేయవు, కానీ అవి ఇంటర్నెట్ యాక్సెస్ వేగాన్ని పరిమితం చేస్తాయి.
అటువంటి అంకితమైన సర్వర్ లేదా VPS యొక్క సాధారణ లోడ్ వెబ్ సర్వర్, డేటాబేస్ మరియు అప్లికేషన్ సర్వర్. కొన్నిసార్లు వెబ్ సర్వర్ లేదా డేటాబేస్ కోసం వివిధ అదనపు సహాయక సేవలు ఇన్స్టాల్ చేయబడవచ్చు: శోధన ఇంజిన్, మెయిల్ సిస్టమ్ మొదలైనవి.
ప్రత్యేకంగా తయారు చేయబడిన సర్వర్ బ్యాకప్ కాపీలను నిల్వ చేయడానికి స్థలంగా పనిచేస్తుంది; మేము దాని గురించి మరింత వివరంగా తరువాత వ్రాస్తాము.
డిస్క్ సిస్టమ్ యొక్క తార్కిక సంస్థ
మీకు RAID కంట్రోలర్ లేదా ఒక డిస్క్తో VPS ఉంటే మరియు డిస్క్ సబ్సిస్టమ్ (ఉదాహరణకు, డేటాబేస్ కోసం ప్రత్యేక ఫాస్ట్ డిస్క్) యొక్క ఆపరేషన్కు ప్రత్యేక ప్రాధాన్యతలు లేకుంటే, ఖాళీ స్థలం మొత్తం ఈ క్రింది విధంగా విభజించబడింది: ఒక విభజన సృష్టించబడింది మరియు దాని పైన ఒక LVM వాల్యూమ్ సమూహం సృష్టించబడుతుంది , దానిలో అనేక వాల్యూమ్లు సృష్టించబడతాయి: ఒకే పరిమాణంలో 2 చిన్నవి, రూట్ ఫైల్ సిస్టమ్గా ఉపయోగించబడతాయి (శీఘ్ర రోల్బ్యాక్ అవకాశం కోసం నవీకరణల సమయంలో ఒక్కొక్కటిగా మార్చబడింది, ఈ ఆలోచన Linux పంపిణీని లెక్కించడం నుండి తీసుకోబడింది), మరొకటి స్వాప్ విభజన కోసం, మిగిలిన ఖాళీ స్థలం చిన్న వాల్యూమ్లుగా విభజించబడింది, పూర్తి స్థాయి కంటైనర్ల కోసం రూట్ ఫైల్ సిస్టమ్గా ఉపయోగించబడుతుంది, వర్చువల్ మిషన్ల కోసం డిస్క్లు, ఫైల్ /హోమ్లోని ఖాతాల కోసం సిస్టమ్లు (ప్రతి ఖాతాకు దాని స్వంత ఫైల్ సిస్టమ్ ఉంటుంది), అప్లికేషన్ కంటైనర్ల కోసం ఫైల్ సిస్టమ్లు.
ముఖ్యమైన గమనిక: వాల్యూమ్లు పూర్తిగా స్వీయ-నియంత్రణలో ఉండాలి, అనగా. ఒకదానికొకటి లేదా రూట్ ఫైల్ సిస్టమ్పై ఆధారపడకూడదు. వర్చువల్ మిషన్లు లేదా కంటైనర్ల విషయంలో, ఈ పాయింట్ స్వయంచాలకంగా గమనించబడుతుంది. ఇవి అప్లికేషన్ కంటైనర్లు లేదా హోమ్ డైరెక్టరీలు అయితే, మీరు వెబ్ సర్వర్ మరియు ఇతర సేవల కాన్ఫిగరేషన్ ఫైల్లను వీలైనంత వరకు వాల్యూమ్ల మధ్య డిపెండెన్సీలను తొలగించే విధంగా వేరు చేయడం గురించి ఆలోచించాలి. ఉదాహరణకు, ప్రతి సైట్ దాని స్వంత వినియోగదారు నుండి నడుస్తుంది, సైట్ కాన్ఫిగరేషన్ ఫైల్లు వినియోగదారు హోమ్ డైరెక్టరీలో ఉంటాయి, వెబ్ సర్వర్ సెట్టింగ్లలో, సైట్ కాన్ఫిగరేషన్ ఫైల్లు /etc/nginx/conf.d/ ద్వారా చేర్చబడవు.conf, మరియు, ఉదాహరణకు, /home//configs/nginx/*.conf
అనేక డిస్క్లు ఉంటే, మీరు సాఫ్ట్వేర్ RAID శ్రేణిని సృష్టించవచ్చు (మరియు దాని కాషింగ్ను SSDలో కాన్ఫిగర్ చేయండి, అవసరమైతే మరియు అవకాశం ఉంటే), దాని పైన మీరు పైన ప్రతిపాదించిన నియమాల ప్రకారం LVMని నిర్మించవచ్చు. ఈ సందర్భంలో కూడా, మీరు ZFS లేదా BtrFSని ఉపయోగించవచ్చు, కానీ మీరు దీని గురించి ఒకటికి రెండుసార్లు ఆలోచించాలి: రెండింటికి వనరులకు మరింత తీవ్రమైన విధానం అవసరం, అంతేకాకుండా, ZFS Linux కెర్నల్తో చేర్చబడలేదు.
ఉపయోగించిన స్కీమ్తో సంబంధం లేకుండా, డిస్క్లకు మార్పులను వ్రాసే సుమారు వేగాన్ని ముందుగానే అంచనా వేయడం విలువైనది, ఆపై స్నాప్షాట్లను రూపొందించడానికి కేటాయించబడే ఖాళీ స్థలాన్ని లెక్కించడం. ఉదాహరణకు, మా సర్వర్ సెకనుకు 10 మెగాబైట్ల వేగంతో డేటాను వ్రాస్తే మరియు మొత్తం డేటా శ్రేణి పరిమాణం 10 టెరాబైట్లు ఉంటే - సమకాలీకరణ సమయం ఒక రోజుకి చేరుకుంటుంది (22 గంటలు - అటువంటి వాల్యూమ్ ఎంత బదిలీ చేయబడుతుంది నెట్వర్క్ ద్వారా 1 Gbps) - ఇది సుమారు 800 GB రిజర్వ్ చేయడం విలువైనది . వాస్తవానికి, ఫిగర్ చిన్నదిగా ఉంటుంది; మీరు దానిని లాజికల్ వాల్యూమ్ల సంఖ్యతో సురక్షితంగా విభజించవచ్చు.
బ్యాకప్ నిల్వ సర్వర్ పరికరం
బ్యాకప్ కాపీలను నిల్వ చేయడానికి సర్వర్ మధ్య ప్రధాన వ్యత్యాసం దాని పెద్ద, చౌక మరియు సాపేక్షంగా నెమ్మదిగా ఉండే డిస్క్లు. ఆధునిక HDDలు ఇప్పటికే ఒక డిస్క్లో 10TB బార్ను దాటినందున, చెక్సమ్లతో ఫైల్ సిస్టమ్లు లేదా RAIDని ఉపయోగించడం అవసరం, ఎందుకంటే శ్రేణి యొక్క పునర్నిర్మాణం లేదా ఫైల్ సిస్టమ్ పునరుద్ధరణ సమయంలో (చాలా రోజులు!) రెండవ డిస్క్ విఫలం కావచ్చు. పెరిగిన లోడ్ వరకు. 1TB వరకు సామర్థ్యం ఉన్న డిస్క్లలో ఇది అంత సున్నితంగా ఉండదు. వివరణ యొక్క సరళత కోసం, డిస్క్ స్థలం దాదాపు సమాన పరిమాణంలో రెండు భాగాలుగా విభజించబడిందని నేను ఊహిస్తున్నాను (మళ్ళీ, ఉదాహరణకు, LVMని ఉపయోగించడం):
- వినియోగదారు డేటాను నిల్వ చేయడానికి ఉపయోగించే సర్వర్లకు సంబంధించిన వాల్యూమ్లు (తయారు చేసిన చివరి బ్యాకప్ ధృవీకరణ కోసం వాటిపై అమలు చేయబడుతుంది);
- BorgBackup రిపోజిటరీలుగా ఉపయోగించే వాల్యూమ్లు (బ్యాకప్ల కోసం డేటా నేరుగా ఇక్కడకు వెళ్తుంది).
ఆపరేషన్ సూత్రం ఏమిటంటే, BorgBackup రిపోజిటరీల కోసం ప్రతి సర్వర్కు ప్రత్యేక వాల్యూమ్లు సృష్టించబడతాయి, ఇక్కడ పోరాట సర్వర్ల నుండి డేటా వెళ్తుంది. రిపోజిటరీలు అనుబంధం-మాత్రమే మోడ్లో పనిచేస్తాయి, ఇది ఉద్దేశపూర్వకంగా డేటాను తొలగించే అవకాశాన్ని తొలగిస్తుంది మరియు పాత బ్యాకప్ల నుండి రిపోజిటరీలను తగ్గించడం మరియు కాలానుగుణంగా శుభ్రపరచడం వలన (వార్షిక కాపీలు మిగిలి ఉన్నాయి, గత సంవత్సరంలో నెలవారీగా, గత నెలలో వారంవారీగా, ప్రతిరోజూ గత వారం, బహుశా ప్రత్యేక సందర్భాలలో - చివరి రోజు కోసం గంటకు: మొత్తం 24 + 7 + 4 + 12 + వార్షికం - ప్రతి సర్వర్కు దాదాపు 50 కాపీలు).
BorgBackup రిపోజిటరీలు అనుబంధం-మాత్రమే మోడ్ను ప్రారంభించవు; బదులుగా, .ssh/authorized_keysలో ఫోర్స్డ్కమాండ్ ఇలా ఉపయోగించబడుతుంది:
from="адрес сервера",command="/usr/local/bin/borg serve --append-only --restrict-to-path /home/servername/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc AAAAA.......
పేర్కొన్న మార్గం బోర్గ్ పైన ఒక రేపర్ స్క్రిప్ట్ను కలిగి ఉంది, ఇది బైనరీని పారామితులతో ప్రారంభించడంతో పాటు, డేటా తీసివేయబడిన తర్వాత బ్యాకప్ కాపీని పునరుద్ధరించే ప్రక్రియను అదనంగా ప్రారంభిస్తుంది. దీన్ని చేయడానికి, రేపర్ స్క్రిప్ట్ సంబంధిత రిపోజిటరీ పక్కన ట్యాగ్ ఫైల్ను సృష్టిస్తుంది. డేటా నింపే ప్రక్రియ పూర్తయిన తర్వాత చివరిగా బ్యాకప్ చేయబడినది సంబంధిత లాజికల్ వాల్యూమ్కు స్వయంచాలకంగా పునరుద్ధరించబడుతుంది.
ఈ డిజైన్ అనవసరమైన బ్యాకప్లను క్రమానుగతంగా శుభ్రం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు బ్యాకప్ నిల్వ సర్వర్లో ఏదైనా తొలగించకుండా పోరాట సర్వర్లను నిరోధిస్తుంది.
బ్యాకప్ ప్రక్రియ
బ్యాకప్ని ప్రారంభించేది అంకితమైన సర్వర్ లేదా VPS మాత్రమే, ఎందుకంటే ఈ స్కీమ్ ఈ సర్వర్లో బ్యాకప్ ప్రక్రియపై మరింత నియంత్రణను ఇస్తుంది. ముందుగా, సక్రియ రూట్ ఫైల్ సిస్టమ్ స్థితి యొక్క స్నాప్షాట్ తీసుకోబడుతుంది, ఇది BorgBackup ఉపయోగించి బ్యాకప్ నిల్వ సర్వర్కు మౌంట్ చేయబడుతుంది మరియు అప్లోడ్ చేయబడుతుంది. డేటా క్యాప్చర్ పూర్తయిన తర్వాత, స్నాప్షాట్ అన్మౌంట్ చేయబడుతుంది మరియు తొలగించబడుతుంది.
ఒక చిన్న డేటాబేస్ (ప్రతి సైట్కు 1 GB వరకు) ఉంటే, ఒక డేటాబేస్ డంప్ తయారు చేయబడుతుంది, ఇది సముచిత లాజికల్ వాల్యూమ్లో సేవ్ చేయబడుతుంది, అదే సైట్కు సంబంధించిన మిగిలిన డేటా ఉన్న చోట డంప్ చేయబడుతుంది. వెబ్ సర్వర్ ద్వారా యాక్సెస్ చేయబడదు. డేటాబేస్లు పెద్దగా ఉంటే, మీరు “హాట్” డేటా తొలగింపును కాన్ఫిగర్ చేయాలి, ఉదాహరణకు, MySQL కోసం xtrabackupని ఉపయోగించడం లేదా PostgreSQLలో archive_commandతో WALతో పని చేయండి. ఈ సందర్భంలో, డేటాబేస్ సైట్ డేటా నుండి విడిగా పునరుద్ధరించబడుతుంది.
కంటైనర్లు లేదా వర్చువల్ మిషన్లు ఉపయోగించినట్లయితే, మీరు qemu-guest-agent, CRIU లేదా ఇతర అవసరమైన సాంకేతికతలను కాన్ఫిగర్ చేయాలి. ఇతర సందర్భాల్లో, అదనపు సెట్టింగులు చాలా తరచుగా అవసరం లేదు - మేము కేవలం లాజికల్ వాల్యూమ్ల స్నాప్షాట్లను సృష్టిస్తాము, అవి రూట్ ఫైల్ సిస్టమ్ యొక్క స్థితి యొక్క స్నాప్షాట్ వలె ప్రాసెస్ చేయబడతాయి. డేటా తీసిన తర్వాత, చిత్రాలు తొలగించబడతాయి.
బ్యాకప్ నిల్వ సర్వర్లో తదుపరి పని జరుగుతుంది:
- ప్రతి రిపోజిటరీలో చేసిన చివరి బ్యాకప్ తనిఖీ చేయబడింది,
- డేటా సేకరణ ప్రక్రియ పూర్తయినట్లు సూచించే మార్క్ ఫైల్ ఉనికిని తనిఖీ చేస్తారు,
- డేటా సంబంధిత స్థానిక వాల్యూమ్కు విస్తరించబడుతుంది,
- ట్యాగ్ ఫైల్ తొలగించబడింది
సర్వర్ రికవరీ ప్రక్రియ
ప్రధాన సర్వర్ చనిపోతే, అదే విధమైన అంకితమైన సర్వర్ ప్రారంభించబడుతుంది, ఇది కొన్ని ప్రామాణిక చిత్రం నుండి బూట్ అవుతుంది. చాలా మటుకు డౌన్లోడ్ నెట్వర్క్లో జరుగుతుంది, అయితే సర్వర్ను సెటప్ చేసే డేటా సెంటర్ టెక్నీషియన్ వెంటనే ఈ ప్రామాణిక చిత్రాన్ని డిస్క్లలో ఒకదానికి కాపీ చేయవచ్చు. డౌన్లోడ్ RAM లోకి జరుగుతుంది, దాని తర్వాత రికవరీ ప్రక్రియ ప్రారంభమవుతుంది:
- మరణించిన సర్వర్ యొక్క రూట్ ఫైల్ సిస్టమ్ను కలిగి ఉన్న లాజికల్ వాల్యూమ్కు iscsinbd లేదా మరొక సారూప్య ప్రోటోకాల్ ద్వారా బ్లాక్ పరికరాన్ని జోడించమని అభ్యర్థన చేయబడింది; రూట్ ఫైల్ సిస్టమ్ తప్పనిసరిగా చిన్నదిగా ఉండాలి కాబట్టి, ఈ దశ కొన్ని నిమిషాల్లో పూర్తవుతుంది. బూట్లోడర్ కూడా పునరుద్ధరించబడింది;
- స్థానిక లాజికల్ వాల్యూమ్ల నిర్మాణం పునఃసృష్టించబడింది, dm_clone కెర్నల్ మాడ్యూల్ ఉపయోగించి బ్యాకప్ సర్వర్ నుండి లాజికల్ వాల్యూమ్లు జోడించబడతాయి: డేటా రికవరీ ప్రారంభమవుతుంది మరియు మార్పులు వెంటనే స్థానిక డిస్క్లకు వ్రాయబడతాయి.
- అందుబాటులో ఉన్న అన్ని భౌతిక డిస్క్లతో కంటైనర్ ప్రారంభించబడింది - సర్వర్ యొక్క కార్యాచరణ పూర్తిగా పునరుద్ధరించబడుతుంది, కానీ తగ్గిన పనితీరుతో;
- డేటా సింక్రొనైజేషన్ పూర్తయిన తర్వాత, బ్యాకప్ సర్వర్ నుండి లాజికల్ వాల్యూమ్లు డిస్కనెక్ట్ చేయబడతాయి, కంటైనర్ ఆఫ్ చేయబడింది మరియు సర్వర్ రీబూట్ చేయబడుతుంది;
రీబూట్ చేసిన తర్వాత, సర్వర్ బ్యాకప్ సృష్టించబడిన సమయంలో ఉన్న మొత్తం డేటాను కలిగి ఉంటుంది మరియు పునరుద్ధరణ ప్రక్రియలో చేసిన అన్ని మార్పులను కూడా కలిగి ఉంటుంది.
సిరీస్లోని ఇతర కథనాలు
బ్యాకప్ పార్ట్ 7: ముగింపులు
వ్యాఖ్యలలో ప్రతిపాదిత ఎంపికను చర్చించడానికి నేను మిమ్మల్ని ఆహ్వానిస్తున్నాను, మీ దృష్టికి ధన్యవాదాలు!
మూలం: www.habr.com