బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

ఈ గమనిక బ్యాకప్ సర్వర్‌లో ఆర్కైవ్‌లను సృష్టించడం ద్వారా బ్యాకప్‌లను నిర్వహించే బ్యాకప్ సాధనాలను చర్చిస్తుంది.

అవసరాలను తీర్చే వాటిలో డూప్లిసిటీ (డెజా డప్ రూపంలో చక్కని ఇంటర్‌ఫేస్‌ని కలిగి ఉంటుంది) మరియు డూప్లికాటి ఉన్నాయి.

మరొక గొప్ప బ్యాకప్ సాధనం డార్, కానీ ఇది చాలా విస్తృతమైన ఎంపికల జాబితాను కలిగి ఉన్నందున - పరీక్షా పద్దతి దాని సామర్థ్యంలో కేవలం 10% మాత్రమే కవర్ చేస్తుంది - మేము దానిని ప్రస్తుత చక్రంలో భాగంగా పరీక్షించడం లేదు.

ఆశించిన ఫలితాలు

ఇద్దరు అభ్యర్థులు ఒక విధంగా లేదా మరొక విధంగా ఆర్కైవ్‌లను సృష్టిస్తారు కాబట్టి, సాధారణ తారును గైడ్‌గా ఉపయోగించవచ్చు.

అదనంగా, పూర్తి కాపీకి మరియు ఫైల్‌ల ప్రస్తుత స్థితికి లేదా మునుపటి మరియు ప్రస్తుత ఆర్కైవ్‌ల మధ్య (పెరుగుదల, తగ్గుదల, మొదలైనవి) మధ్య వ్యత్యాసాన్ని మాత్రమే కలిగి ఉన్న బ్యాకప్ కాపీలను సృష్టించడం ద్వారా నిల్వ సర్వర్‌లో డేటా నిల్వ ఎంతవరకు ఆప్టిమైజ్ చేయబడిందో మేము అంచనా వేస్తాము. .

బ్యాకప్‌లను సృష్టించేటప్పుడు ప్రవర్తన:

  1. బ్యాకప్ నిల్వ సర్వర్‌లో సాపేక్షంగా తక్కువ సంఖ్యలో ఫైల్‌లు (బ్యాకప్ కాపీల సంఖ్య లేదా GBలోని డేటా పరిమాణంతో పోల్చవచ్చు), కానీ వాటి పరిమాణం చాలా పెద్దది (పదుల నుండి వందల మెగాబైట్‌లు).
  2. రిపోజిటరీ పరిమాణంలో మార్పులు మాత్రమే ఉంటాయి - నకిలీలు నిల్వ చేయబడవు, కాబట్టి రిపోజిటరీ పరిమాణం rsync-ఆధారిత సాఫ్ట్‌వేర్ కంటే తక్కువగా ఉంటుంది.
  3. కంప్రెషన్ మరియు/లేదా ఎన్‌క్రిప్షన్‌ను ఉపయోగిస్తున్నప్పుడు భారీ CPU లోడ్‌ను ఆశించండి మరియు ఆర్కైవింగ్ మరియు/లేదా ఎన్‌క్రిప్షన్ ప్రాసెస్ బ్యాకప్ స్టోరేజ్ సర్వర్‌లో రన్ అవుతున్నట్లయితే చాలా ఎక్కువ నెట్‌వర్క్ మరియు డిస్క్ లోడ్ అయ్యే అవకాశం ఉంది.

కింది ఆదేశాన్ని సూచన విలువగా అమలు చేద్దాం:

cd /src/dir; tar -cf - * | ssh backup_server "cat > /backup/dir/archive.tar"

అమలు ఫలితాలు క్రింది విధంగా ఉన్నాయి:

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

అమలు సమయం 3m12s. ఉదాహరణకు, బ్యాకప్ నిల్వ సర్వర్ యొక్క డిస్క్ సబ్‌సిస్టమ్ ద్వారా వేగం పరిమితం చేయబడిందని చూడవచ్చు. rsync. కొంచెం వేగంగా, ఎందుకంటే... రికార్డింగ్ ఒక ఫైల్‌కి వెళుతుంది.

అలాగే, కుదింపును అంచనా వేయడానికి, అదే ఎంపికను అమలు చేద్దాం, కానీ బ్యాకప్ సర్వర్ వైపు కుదింపును ప్రారంభించండి:

cd /src/dir; tar -cf - * | ssh backup_server "gzip > /backup/dir/archive.tgz"

ఫలితాలు:

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

అమలు సమయం 10m11s. చాలా మటుకు అడ్డంకి అనేది స్వీకరించే ముగింపులో సింగిల్-ఫ్లో కంప్రెసర్.

అదే కమాండ్, కానీ అడ్డంకి అనేది సింగిల్-థ్రెడ్ కంప్రెసర్ అనే పరికల్పనను పరీక్షించడానికి ఒరిజినల్ డేటాతో సర్వర్‌కు కుదింపుతో బదిలీ చేయబడుతుంది.

cd /src/dir; tar -czf - * | ssh backup_server "cat > /backup/dir/archive.tgz"

ఇది ఇలా మారింది:

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

అమలు సమయం 9m37s. కంప్రెసర్ ద్వారా ఒక కోర్పై లోడ్ స్పష్టంగా కనిపిస్తుంది, ఎందుకంటే నెట్‌వర్క్ బదిలీ వేగం మరియు సోర్స్ డిస్క్ సబ్‌సిస్టమ్‌పై లోడ్ సమానంగా ఉంటాయి.

గుప్తీకరణను అంచనా వేయడానికి, మీరు అదనపు ఆదేశాన్ని కనెక్ట్ చేయడం ద్వారా openssl లేదా gpgని ఉపయోగించవచ్చు openssl లేదా gpg పైపులో. సూచన కోసం ఇలాంటి కమాండ్ ఉంటుంది:

cd /src/dir; tar -cf - * | ssh backup_server "gzip | openssl enc -e -aes256 -pass pass:somepassword -out /backup/dir/archive.tgz.enc"

ఫలితాలు ఇలా వచ్చాయి:

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

10 ప్రక్రియలు స్వీకరించే వైపు నడుస్తున్నందున అమలు సమయం 30m2s అని తేలింది - అడ్డంకి మళ్లీ ఒకే-థ్రెడ్ కంప్రెసర్ మరియు చిన్న ఎన్‌క్రిప్షన్ ఓవర్‌హెడ్.

యుపిడి: బ్లిజ్నెజ్ అభ్యర్థన మేరకు నేను పిగ్జ్‌తో పరీక్షలను జోడిస్తున్నాను. మీరు కంప్రెసర్‌ను మాత్రమే ఉపయోగిస్తే, దానికి 6m30s పడుతుంది, మీరు ఎన్‌క్రిప్షన్‌ని కూడా జోడిస్తే, అది దాదాపు 7m ఉంటుంది. దిగువ గ్రాఫ్‌లో డిప్ అనేది అన్‌ఫ్లష్ చేయని డిస్క్ కాష్:

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

నకిలీ పరీక్ష

డూప్లిసిటీ అనేది టార్ ఫార్మాట్‌లో ఎన్‌క్రిప్టెడ్ ఆర్కైవ్‌లను సృష్టించడం ద్వారా బ్యాకప్ కోసం పైథాన్ సాఫ్ట్‌వేర్.

పెరుగుతున్న ఆర్కైవ్‌ల కోసం, librsync ఉపయోగించబడుతుంది, కాబట్టి మీరు వివరించిన ప్రవర్తనను ఆశించవచ్చు సిరీస్‌లో మునుపటి పోస్ట్.

బ్యాకప్‌లను గుప్తీకరించవచ్చు మరియు gnupgని ఉపయోగించి సంతకం చేయవచ్చు, ఇది బ్యాకప్‌లను నిల్వ చేయడానికి వేర్వేరు ప్రొవైడర్‌లను ఉపయోగిస్తున్నప్పుడు ముఖ్యమైనది (s3, బ్యాక్‌బ్లేజ్, gdrive, మొదలైనవి)

ఫలితాలు ఏమిటో చూద్దాం:

ఎన్‌క్రిప్షన్ లేకుండా రన్ చేస్తున్నప్పుడు మనకు లభించిన ఫలితాలు ఇవి

స్పాయిలర్

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

ప్రతి టెస్ట్ రన్ యొక్క రన్నింగ్ సమయం:

ప్రయోగ 1
ప్రయోగ 2
ప్రయోగ 3

16m33 లు
17m20 లు
16m30 లు

8m29 లు
9m3 లు
8m45 లు

5m21 లు
6m04 లు
5m53 లు

మరియు 2048 బిట్‌ల కీ పరిమాణంతో gnupg ఎన్‌క్రిప్షన్ ప్రారంభించబడినప్పుడు ఫలితాలు ఇక్కడ ఉన్నాయి:

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

ఎన్‌క్రిప్షన్‌తో ఒకే డేటాపై ఆపరేటింగ్ సమయం:

ప్రయోగ 1
ప్రయోగ 2
ప్రయోగ 3

17m22 లు
17m32 లు
17m28 లు

8m52 లు
9m13 లు
9m3 లు

5m48 లు
5m40 లు
5m30 లు

బ్లాక్ పరిమాణం సూచించబడింది - 512 మెగాబైట్లు, ఇది గ్రాఫ్‌లలో స్పష్టంగా కనిపిస్తుంది; ప్రాసెసర్ లోడ్ వాస్తవానికి 50% వద్ద ఉంది, అంటే ప్రోగ్రామ్ ఒకటి కంటే ఎక్కువ ప్రాసెసర్ కోర్లను ఉపయోగించదు.

ప్రోగ్రామ్ యొక్క ఆపరేషన్ సూత్రం కూడా చాలా స్పష్టంగా కనిపిస్తుంది: వారు డేటా యొక్క భాగాన్ని తీసుకున్నారు, దానిని కుదించారు మరియు బ్యాకప్ నిల్వ సర్వర్‌కు పంపారు, ఇది చాలా నెమ్మదిగా ఉంటుంది.
మరొక లక్షణం ప్రోగ్రామ్ యొక్క ఊహాజనిత రన్నింగ్ సమయం, ఇది మార్చబడిన డేటా పరిమాణంపై మాత్రమే ఆధారపడి ఉంటుంది.

ఎన్‌క్రిప్షన్‌ని ప్రారంభించడం వల్ల ప్రోగ్రామ్ యొక్క రన్నింగ్ టైమ్ గణనీయంగా పెరగలేదు, అయితే ఇది ప్రాసెసర్ లోడ్‌ను సుమారు 10% పెంచింది, ఇది చాలా మంచి బోనస్ కావచ్చు.

దురదృష్టవశాత్తూ, ఈ ప్రోగ్రామ్ డైరెక్టరీ పేరు మార్చడంతో పరిస్థితిని సరిగ్గా గుర్తించలేకపోయింది మరియు ఫలితంగా రిపోజిటరీ పరిమాణం మార్పుల పరిమాణానికి (అంటే మొత్తం 18GB) సమానంగా ఉంటుంది, అయితే బ్యాకప్ కోసం అవిశ్వసనీయ సర్వర్‌ను ఉపయోగించగల సామర్థ్యం స్పష్టంగా ఉంది. ఈ ప్రవర్తనను కవర్ చేస్తుంది.

నకిలీ పరీక్ష

ఈ సాఫ్ట్‌వేర్ C#లో వ్రాయబడింది మరియు మోనో నుండి లైబ్రరీల సమితిని ఉపయోగించి నడుస్తుంది. GUI అలాగే CLI వెర్షన్ కూడా ఉంది.

ప్రధాన లక్షణాల యొక్క ఉజ్జాయింపు జాబితా డూప్లిసిటీని పోలి ఉంటుంది, వివిధ బ్యాకప్ స్టోరేజ్ ప్రొవైడర్లతో సహా, అయితే, డూప్లిసిటీకి భిన్నంగా, చాలా ఫీచర్లు థర్డ్-పార్టీ టూల్స్ లేకుండా అందుబాటులో ఉంటాయి. ఇది ప్లస్ లేదా మైనస్ అనేది నిర్దిష్ట కేసుపై ఆధారపడి ఉంటుంది, కానీ ప్రారంభకులకు, పైథాన్ కోసం అదనపు ప్యాకేజీలను ఇన్‌స్టాల్ చేయకుండా ఒకేసారి అన్ని లక్షణాల జాబితాను కలిగి ఉండటం చాలా సులభం. ద్వంద్వత్వంతో కేసు.

మరొక చిన్న సూక్ష్మభేదం - ప్రోగ్రామ్ బ్యాకప్‌ను ప్రారంభించే వినియోగదారు తరపున స్థానిక స్క్లైట్ డేటాబేస్‌ను చురుకుగా వ్రాస్తుంది, కాబట్టి మీరు క్లిని ఉపయోగించి ప్రాసెస్ ప్రారంభించిన ప్రతిసారీ అవసరమైన డేటాబేస్ సరిగ్గా పేర్కొనబడిందని మీరు అదనంగా నిర్ధారించుకోవాలి. GUI లేదా WEBGUI ద్వారా పని చేస్తున్నప్పుడు, వివరాలు వినియోగదారు నుండి దాచబడతాయి.

ఈ పరిష్కారం ఏ సూచికలను ఉత్పత్తి చేయగలదో చూద్దాం:

మీరు ఎన్‌క్రిప్షన్‌ను ఆఫ్ చేస్తే (మరియు WEBGUI దీన్ని చేయమని సిఫార్సు చేయదు), ఫలితాలు క్రింది విధంగా ఉంటాయి:

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

పని గంటలు:

ప్రయోగ 1
ప్రయోగ 2
ప్రయోగ 3

20m43 లు
20m13 లు
20m28 లు

5m21 లు
5m40 లు
5m35 లు

7m36 లు
7m54 లు
7m49 లు

ఎన్క్రిప్షన్ ప్రారంభించబడి, aes ఉపయోగించి, ఇది ఇలా కనిపిస్తుంది:

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

పని గంటలు:

ప్రయోగ 1
ప్రయోగ 2
ప్రయోగ 3

29m9 లు
30m1 లు
29m54 లు

5m29 లు
6m2 లు
5m54 లు

8m44 లు
9m12 లు
9m1 లు

మరియు మీరు బాహ్య ప్రోగ్రామ్ gnupgని ఉపయోగిస్తే, క్రింది ఫలితాలు వస్తాయి:

బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి రివ్యూ మరియు టెస్టింగ్

ప్రయోగ 1
ప్రయోగ 2
ప్రయోగ 3

26m6 లు
26m35 లు
26m17 లు

5m20 లు
5m48 లు
5m40 లు

8m12 లు
8m42 లు
8m15 లు

మీరు చూడగలిగినట్లుగా, ప్రోగ్రామ్ అనేక థ్రెడ్‌లలో పని చేయగలదు, కానీ ఇది మరింత ఉత్పాదక పరిష్కారంగా మారదు మరియు మీరు ఎన్‌క్రిప్షన్ పనిని పోల్చినట్లయితే, అది బాహ్య ప్రోగ్రామ్‌ను ప్రారంభిస్తోంది.
మోనో సెట్ నుండి లైబ్రరీని ఉపయోగించడం కంటే వేగవంతమైనది. బాహ్య ప్రోగ్రామ్ మరింత ఆప్టిమైజ్ చేయబడటం దీనికి కారణం కావచ్చు.

మరో మంచి విషయం ఏమిటంటే, రిపోజిటరీ పరిమాణం వాస్తవంగా మార్చబడిన డేటాకు సమానంగా పడుతుంది, అనగా. నకిలీ డైరెక్టరీ పేరును గుర్తించింది మరియు ఈ పరిస్థితిని సరిగ్గా నిర్వహించింది. రెండవ పరీక్షను అమలు చేస్తున్నప్పుడు ఇది చూడవచ్చు.

మొత్తంమీద, కొత్తవారికి చాలా స్నేహపూర్వకంగా ఉండటంతో సహా ప్రోగ్రామ్ యొక్క సానుకూల ప్రభావాలు.

Результаты

ఇద్దరు అభ్యర్థులు చాలా నెమ్మదిగా పనిచేశారు, కానీ సాధారణంగా, సాధారణ తారుతో పోలిస్తే, కనీసం డూప్లికాటీతో పురోగతి ఉంది. అటువంటి పురోగతి యొక్క ధర కూడా స్పష్టంగా ఉంది - గుర్తించదగిన భారం
ప్రాసెసర్. సాధారణంగా, ఫలితాలను అంచనా వేయడంలో ప్రత్యేక వ్యత్యాసాలు లేవు.

కనుగొన్న

మీరు ఎక్కడికీ హడావిడి చేయనవసరం లేదు మరియు విడి ప్రాసెసర్ కూడా కలిగి ఉంటే, పరిగణించబడిన ఏవైనా పరిష్కారాలు చేయగలవు, ఏ సందర్భంలోనైనా, తారు పైన రేపర్ స్క్రిప్ట్‌లను వ్రాయడం ద్వారా పునరావృతం చేయకూడని పని చాలా ఎక్కువ జరిగింది. . బ్యాకప్ కాపీలను నిల్వ చేయడానికి సర్వర్‌ను పూర్తిగా విశ్వసించలేకపోతే ఎన్‌క్రిప్షన్ ఉనికి చాలా అవసరమైన ఆస్తి.

ఆధారిత పరిష్కారాలతో పోలిస్తే rsync - తారు దాని స్వచ్ఛమైన రూపంలో rsync కంటే 20-30% వేగంగా పనిచేసినప్పటికీ, పనితీరు చాలా రెట్లు అధ్వాన్నంగా ఉంటుంది.
రిపోజిటరీ పరిమాణంపై పొదుపులు ఉన్నాయి, కానీ నకిలీతో మాత్రమే.

ప్రకటన

బ్యాకప్, పార్ట్ 1: బ్యాకప్ ఎందుకు అవసరం, పద్ధతులు, సాంకేతికతల యొక్క అవలోకనం
బ్యాకప్ పార్ట్ 2: rsync-ఆధారిత బ్యాకప్ సాధనాలను సమీక్షించడం మరియు పరీక్షించడం
బ్యాకప్ పార్ట్ 3: డూప్లిసిటీ, డూప్లికాటి, డెజా డూప్‌ని రివ్యూ మరియు టెస్టింగ్
బ్యాకప్ పార్ట్ 4: zbackup, retic, borgbackupని సమీక్షించడం మరియు పరీక్షించడం
బ్యాకప్ పార్ట్ 5: linux కోసం బాకులా మరియు వీమ్ బ్యాకప్‌ని పరీక్షిస్తోంది
బ్యాకప్ పార్ట్ 6: బ్యాకప్ సాధనాలను పోల్చడం
బ్యాకప్ పార్ట్ 7: ముగింపులు

వీరిచే పోస్ట్ చేయబడింది: పావెల్ డెమ్కోవిచ్

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి