Մեկ արխիվը վերականգնում է աշխատող Pritunl տեղակայում, մյուսը՝ միայն դրա պատկերը։ Հաճախորդի պրոֆիլը, հոսթի կարգավորումների պատճենը և վիճակի գրացուցակի tarball-ը բոլորն էլ նման են պահուստային պատճենների, և դրանցից ոչ մեկը միայնակ չի վերադարձնում Pritunl-ի կառավարած կազմակերպությունները, օգտատերերին և սերվերի սահմանումները։ Տարբերությունը սեփականության մեջ է՝ վիճակի մի մասը պատկանում է տվյալների բազային, մի մասը՝ հոսթին, իսկ մի մասը վերագեներացված ելք է։ Ընտրեք սխալ շերտը, և վերականգնումը կստեղծի սերվեր, որը գործարկվում է, լսում և ոչինչ չգիտի։ Այս համեմատությունը բաժանում է երեք շերտերը, որպեսզի ձեր պահած արխիվը համապատասխանի այն խափանմանը, որից վերականգնվում եք։

Երկու օբյեկտ նման են պահուստային պատճենների, և միայն մեկը վերականգնում է ծառայությունը

Ներբեռնված հաճախորդի պրոֆիլը պարունակում է վկայական, բանալի և վերջնակետ։ Այն ամբողջական է այդ մեկ սարքի համար և անօգուտ՝ որպես տեղակայման գրառում՝ այն չի կրում կազմակերպություններ, անջատված օգտատերեր, սերվերի երթուղիներ կամ վարչական հաշիվներ։ Պրոֆիլների պանակից վերականգնելը տալիս է հաճախորդներ, որոնք չեն կարող նույնականացվել ոչ մի բանի առաջ։

Հոսթի կարգավորումների պատճենը նույնքան մասնակի է։ /etc/pritunl.conf պարունակում է հոսթի մակարդակի կարգավորումներ, ներառյալ, թե ինչպես հասնել տվյալների բազային, և չի պարունակում հենց VPN օբյեկտները։

Ինչ ունի տվյալների բազան և ինչ ունի հոսթը

Pritunl-ը պահում է սերվերի սահմանումները, օգտատերերին, կազմակերպությունները և բանալիները MongoDB-ում։ Այդ տվյալների բազան հեղինակավոր կառավարման հարթությունն է, և սկավառակի վրա գեներացված յուրաքանչյուր OpenVPN ֆայլ դրանից ածանցված ելք է։ Գեներացված ֆայլում ուղղակիորեն արված փոփոխությունը գոյատևում է մինչև հաջորդ վերագեներացումը և հետո անհետանում, դրա համար էլ գործարկման ժամանակի ֆայլերի խմբագրումը կայուն ուղղում չէ։ Նույն կանոնը վերաբերում է արդյունավետ երթուղիներին և միջերեսներին՝ դրանք նկարագրում են, թե ինչ է ստեղծել կառավարման հարթությունը, և ոչ թե ինչ պետք է ստեղծի։

Հոսթը նպաստում է ավելի փոքր, բայց չփոխանցվող արժեքների հավաքածուով։ Դրանցից մեկը /var/lib/pritunl/pritunl.uuid-ն է՝ տվյալ հանգույցի ինքնությունը։

Այդ ինքնությունն ամենակարևորն է կլաստերում։ Փոխարինող հոսթին անհրաժեշտ է իր սեփական գրանցումը՝ ակտիվ հանգույցի UUID-ի կլոնի փոխարեն, հակառակ դեպքում երկուսը պայքարում են նույն ինքնության համար։ Գրանցեք քարտեզագրումը յուրաքանչյուր հոսթի, նրա UUID-ի և այն տվյալների բազայի միջև, որին այն ուղղված է, քանի որ տվյալների բազայի մեկ արտահանումը չի նկարագրում, թե որ հոսթի կարգավորումներն էին պատկանում որ մեքենային։ Ծրագրային տարբերակները և հանրային վերջնակետերի անունները պատկանում են նույն գրառմանը։

Արեք հետևողական արտահանում, ոչ թե պանակի պատճեն

MongoDB-ի տվյալների պանակի պատճենումը, մինչ ծառայությունը գրում է, ստեղծում է ֆայլեր, որոնք կարող են օգտագործելի տվյալների բազա չկազմել։ Փոխարենը օգտագործեք տվյալների բազայի աջակցվող արտահանման ուղին՝ գործարկված այն տոպոլոգիայի դեմ, որն իսկապես ունեք:

mongodump --uri="mongodb://127.0.0.1:27017/pritunl" --out=/var/backups/pritunl/db
sudo tar czf /var/backups/pritunl/host.tgz /etc/pritunl.conf /var/lib/pritunl/pritunl.uuid

Առանձին հոսթը հանդուրժում է այդ պարզ ձևը։ Կրկնօրինակների հավաքածուն պահանջում է հետևողական ժամանակային կետ, իսկ oplog-ի վրա հիմնված արտահանումն ունի պահանջներ, որոնք սովորական արտահանումը չունի։ Աջակցվող ընթացակարգը կախված է ձեր MongoDB տարբերակից և տոպոլոգիայից, ուստի մի եզրակացրեք այն տվյալների պանակի առկայությունից։ Արխիվացրեք հոսթի շերտը արտահանման կողքին, նույն գործարկումով, նույն ժամանակի նշանով։

Փորձեք վերականգնումը, նախքան այն ձեզ պետք կգա

Պահուստային պատճենը, որը ոչ ոք չի վերականգնել, վարկած է։ Կառուցեք ծառայությունը մեկուսացված ցանցում, վերականգնեք արտահանումը և վերադարձրեք հոսթի ֆայլերը տեղը:

mongorestore --uri="mongodb://127.0.0.1:27017" --drop /var/backups/pritunl/db
sudo tar xzf /var/backups/pritunl/host.tgz -C /

Այնուհետև ստուգեք օբյեկտները, ոչ թե գործընթացը՝ մուտք գործեք, հաստատեք, որ կազմակերպությունները և օգտատերերը առկա են, և գործարկեք մեկ փորձնական հաճախորդ ձեզ ծանոթ սերվերի սահմանման դեմ։ Թույլ մի տվեք վերականգնված հոսթին գովազդել արտադրական վերջնակետը կամ ընդունել իրական կապեր, քանի դեռ հասցեները և ինքնությունները դիտավորյալ չեն։ Այստեղ է, որ նաև հայտնաբերում եք, որ արխիվին անհրաժեշտ են հավատարմագրեր, որոնք ապրում էին միայն խափանված մեքենայի վրա, ուստի պահեք վերականգնման հավատարմագրերը անկախ վայրում։ Վերականգնումը, որը կախված է հոսթից, որը հենց նոր կորցրիք, վերականգնման ծրագիր չէ։

Վերջապես, հիշեք, որ հին պահոցը վերականգնում է հին որոշումներ։ Եթե ադմինիստրատորը անջատեց ինքնությունը արտահանումը վերցնելուց հետո, վերականգնումը նորից միացնում է այն։ Վերականգնումից հետո համաձայնեցումը ընթացակարգի մաս է, և ոչ թե ուշ մտքի։

Առնչվող հոդվածներ