Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du skapar programkonsekventa säkerhetskopior för Azure-distribuerade virtuella Linux-datorer med hjälp av Azure Backup. Den beskriver hur du konfigurerar skriptramverket och felsökningen.
När Azure Backup tar en ögonblicksbild av en virtuell dator säkerställer programkonsekvens att programmen startas korrekt efter återställningen av den virtuella datorn. För att uppnå det här beteendet använder du Linux-ramverket prescript och postscript, som stöder virtuella Linux-datorer som distribuerats med Azure Resource Manager. Dessa skript fungerar inte för virtuella datorer som distribueras med System Center Service Manager eller Windows.
Hur fungerar ramverket?
Ramverket tillhandahåller en möjlighet att köra anpassade före- och efter-skript (prescripts and postscripts) när du tar snapshots av virtuella maskiner. Prescripts körs innan du tar ögonblicksbilden av den virtuella datorn. Postscripts körs omedelbart efter att du har hämtat ögonblicksbilden av den virtuella datorn. Förhandskript och efterskript ger dig flexibilitet att kontrollera ditt program och din miljö när du tar ögonblicksbilder av VM.
Prescripts anropar interna program-API:er, vilket tystar I/Os och tömer minnesinternt innehåll till disken. Dessa åtgärder säkerställer att ögonblicksbilden är programkonsekvent. Postscripts använder inbyggda program-API:er för att frigöra I/O-operationer, vilket gör att programmet kan återuppta normala åtgärder efter ögonblicksbilden av den virtuella datorn.
Konfigurera prescript och postscript för virtuella Azure Linux-datorer
Följ dessa steg för att konfigurera prescript och postscript:
Logga in som rotanvändare på den virtuella Linux-dator som du vill säkerhetskopiera.
Från GitHub laddar du ned VMSnapshotScriptPluginConfig.json och kopierar den till mappen /etc/azure för alla virtuella datorer som du vill säkerhetskopiera. Om mappen /etc/azure inte finns skapar du den.
Kopiera prescript och postscript för ditt program på alla virtuella datorer som du planerar att säkerhetskopiera. Du kan kopiera skripten till valfri plats på den virtuella datorn. Se till att uppdatera den fullständiga sökvägen till skriptfilerna i VMSnapshotScriptPluginConfig.json-filen .
Om du vill använda följande filer kontrollerar du att du har motsvarande behörigheter:
- VMSnapshotScriptPluginConfig.json: Behörighet är 600. Till exempel ska endast rotanvändaren ha läs- och skrivbehörighet till den här filen och ingen användare ska ha körbehörighet.
- Prescript-fil: Behörigheten är 700. Till exempel ska endast rotanvändaren ha läs-, skriv- och exekveringsrättigheter till den här filen. Filen förväntas vara ett gränssnittsskript, men teoretiskt sett kan det här skriptet internt skapa eller referera till andra skript som ett Python-skript.
- Postscript: Behörighet är 700. Till exempel ska endast rotanvändaren ha läs-, skriv- och exekveringsrättigheter till den här filen. Filen förväntas vara ett gränssnittsskript, men teoretiskt sett kan det här skriptet internt skapa eller referera till andra skript som ett Python-skript.
Viktigt!
Ramverket ger användarna många befogenheter. Skydda ramverket och se till att endast rotanvändaren har åtkomst till kritiska JSON- och skriptfiler.
Om kraven inte uppfylls kan skriptet inte köras, vilket resulterar i en filsystemkrasch och inkonsekvent säkerhetskopiering.
Konfigurera VMSnapshotScriptPluginConfig.json enligt beskrivningen här:
-
pluginName: Lämna det här fältet som det är eller så kanske skripten inte fungerar som förväntat. -
preScriptLocation: Ange den fullständiga sökvägen för skriptet på den virtuella datorn som ska säkerhetskopieras. -
postScriptLocation: Ange den fullständiga sökvägen för postscript på den virtuella datorn som ska säkerhetskopieras. -
preScriptParams: Ange de valfria parametrar som måste skickas till prescript. Alla parametrar måste vara inom citattecken. Om du använder flera parametrar separerar du parametrarna med kommatecken. -
postScriptParams: Ange de valfria parametrar som måste skickas till postscript. Alla parametrar måste vara inom citattecken. Om du använder flera parametrar separerar du parametrarna med kommatecken. -
preScriptNoOfRetries: Ange hur många gånger som förskriptet ska försökas igen om ett fel inträffar innan det avslutas. Noll innebär bara ett försök och inget nytt försök om det uppstår ett fel. -
postScriptNoOfRetries: Ange hur många gånger postscriptet ska försökas igen om ett fel inträffar innan det avslutas. Noll innebär bara ett försök och inget nytt försök om det uppstår ett fel. -
timeoutInSeconds: Ange enskilda timeouter för prescript och postscript (maxvärdet är 1800). -
continueBackupOnFailure: Ställ in det här värdet på sant om du vill att Azure Backup ska återgå till en filsystemkonsekvent/kraschkonsekvent säkerhetskopiering om det inte går att använda förskrivning eller postscript. Om det här värdet anges till false misslyckas säkerhetskopieringen om ett skriptfel inträffar. (Ett undantag är när du har en virtuell dator med en disk som återgår till kraschkonsekvent säkerhetskopiering oavsett den här inställningen.)continueBackupOnFailureNär värdet är inställt på false, om säkerhetskopieringen misslyckas, görs säkerhetskopieringsåtgärden igen baserat på en återförsökslogik i tjänsten (för det angivna antalet försök). -
fsFreezeEnabled: Ange om Linuxfsfreezeska anropas när du tar en VM-ögonblicksbild av den virtuella datorn för att säkerställa konsistens i filsystemet. Vi rekommenderar att du behåller den här inställningen inställd på sant om inte programmet har ett beroende av att inaktiverafsfreeze. -
ScriptsExecutionPollTimeSeconds: Ange den tid som tillägget måste sova mellan varje pollning under skriptkörningen. Om värdet till exempel är 2, kontrollerar tillägget om prescript- eller postscript-utförandet slutfördes varannan sekund. Det lägsta och högsta värdet som det kan ta är 1 respektive 5. Värdet ska vara strikt ett heltal.
-
Skriptramverket har nu konfigurerats. Om säkerhetskopieringen av den virtuella datorn redan har konfigurerats anropar nästa säkerhetskopia skripten och utlöser programkonsekvent säkerhetskopiering. Om säkerhetskopieringen av den virtuella datorn inte har konfigurerats konfigurerar du den genom att följa stegen i Säkerhetskopiera virtuella Azure-datorer till Recovery Services-valv.
Felsöka programkonsekventa säkerhetskopieringsfel för virtuella Azure Linux-datorer
Se till att du lägger till lämplig loggning när du skriver förskriptet och postscript. Granska skriptloggarna för att åtgärda eventuella skriptproblem. Om du fortfarande har problem med att köra skript kan du läsa följande tabell.
| Fel | Felmeddelande | Rekommenderad åtgärd |
|---|---|---|
Pre-ScriptExecutionFailed |
Förskriptet returnerade ett fel, så säkerhetskopieringen kanske inte är programkonsekvent. | Titta på felloggarna för skriptet för att åtgärda problemet. |
Post-ScriptExecutionFailed |
Postscript returnerade ett fel som kan påverka programtillståndet. | Titta på felloggarna för skriptet för att åtgärda problemet och kontrollera programtillståndet. |
Pre-ScriptNotFound |
Det gick inte att hitta prescript på den plats som anges i VMSnapshotScriptPluginConfig.json konfigurationsfilen. | Kontrollera att prescript finns på sökvägen som angavs i konfigurationsfilen för att säkerställa programkonsekvent säkerhetskopiering. |
Post-ScriptNotFound |
Postscript hittades inte på den plats som angavs i VMSnapshotScriptPluginConfig.json konfigurationsfilen. | Kontrollera att postscript finns på sökvägen som angavs i konfigurationsfilen för att säkerställa programkonsekvent säkerhetskopiering. |
IncorrectPluginhostFile |
Filen Pluginhost med VmSnapshotLinux-tillägget är skadad, så det går inte att köra för- och post-script-koden och säkerhetskopieringen är inte applikationskonsekvent. |
VmSnapshotLinux Avinstallera tillägget. Den installeras automatiskt om med nästa säkerhetskopia för att åtgärda problemet. |
IncorrectJSONConfigFile |
Filen VMSnapshotScriptPluginConfig.json är felaktig, vilket gör att prescript och postscript inte kan köras, och säkerhetskopieringen är inte applikationskonsekvent. | Ladda ned kopian från GitHub och konfigurera den igen. |
InsufficientPermissionforPre-Script |
För att köra skript ska rotanvändaren vara ägare till filen. Filen ska ha 700 behörigheter. (Det vill: endast ägaren ska ha läs-, skriv- och körningsbehörigheter.) | Kontrollera att rotanvändaren är ägare till skriptfilen och att endast ägaren har läs-, skriv- och körningsbehörigheter. |
InsufficientPermissionforPost-Script |
För att köra skript ska rotanvändaren vara ägare till filen. Filen ska ha 700 behörigheter. (Det vill: endast ägaren ska ha läs-, skriv- och körningsbehörigheter.) | Kontrollera att rotanvändaren är ägare till skriptfilen och att endast ägaren har läs-, skriv- och körningsbehörigheter. |
Pre-ScriptTimeout |
Tidsgränsen för körningen av prescript för programkonsekvent säkerhetskopiering utgick. | Kontrollera skriptet och öka tidsgränsen i den VMSnapshotScriptPluginConfig.json filen som finns på /etc/azure. |
Post-ScriptTimeout |
Utförandet av postscript för applikationskonsekvent säkerhetskopiering tidsgränsöverskreds. | Kontrollera skriptet och öka tidsgränsen i den VMSnapshotScriptPluginConfig.json filen som finns på /etc/azure. |