Programkonsekvent säkerhetskopiering av virtuella Azure Linux-datorer med Azure Backup

I den här artikeln beskrivs hur du skapar programkonsekventa säkerhetskopior av dina virtuella Linux-datorer till Azure med hjälp av Azure Backup. I den här artikeln konfigurerar du skriptramverket för att säkerhetskopiera azure-distribuerade virtuella Linux-datorer. Den här artikeln innehåller även felsökningsinformation.

När du tar ögonblicksbilder av virtuella datorer innebär programkonsekvens att dina program startar när de virtuella datorerna startas när de har återställts. Som du kan föreställa dig är programkonsekvens extremt viktigt. För att säkerställa att dina virtuella Linux-datorer är programkonsekventa kan du använda ramverket för Linux-prescript och post-script för att göra programkonsekventa säkerhetskopior. Ramverket prescript och post-script stöder azure Resource Manager-distribuerade virtuella Linux-datorer. Skript för programkonsekvens stöder inte Service Manager-distribuerade virtuella datorer eller virtuella Windows-datorer.

Så här fungerar ramverket

Ramverket tillhandahåller ett alternativ för att köra anpassade prescripts och post-scripts när du tar ögonblicksbilder av virtuella datorer. Prescripts körs precis innan du tar ögonblicksbilden av den virtuella datorn och efterskript körs direkt efter att du har hämtat ögonblicksbilden av den virtuella datorn. Prescripts och post-scripts ger flexibiliteten att styra ditt program och din miljö, medan du tar ögonblicksbilder av virtuella datorer.

Prescripts anropar interna program-API:er, som quiesce IOS och rensar minnesinternt innehåll till disken. Dessa åtgärder säkerställer att ögonblicksbilden är program konsekvent. Efterskript använder interna program-API:er för att tina upp IO:erna, vilket gör att programmet kan återuppta normala åtgärder efter ögonblicksbilden av den virtuella datorn.

Konfigurera prescript och post-script för virtuella Azure Linux-datorer

Följ dessa steg för att konfigurera Prescript och post-script:

  1. Logga in som rotanvändare på den virtuella Linux-dator som du vill säkerhetskopiera.

  2. 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.

  3. Kopiera prescript och post-script 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 för skriptfilerna i VMSnapshotScriptPluginConfig.json-filen.

  4. Kontrollera följande behörigheter för dessa filer:

    • VMSnapshotScriptPluginConfig.json: Behörighet "600". Till exempel ska endast "root"-användare ha behörigheten "läsa" och "skriva" till den här filen, och ingen användare ska ha behörigheten "kör".

    • Förskriptfil: Behörighet "700". Till exempel ska endast "root"-användare ha behörigheten "read", "write" och "execute" 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.

    • Behörighet efter skriptet "700". Till exempel ska endast "root"-användare ha behörigheten "read", "write" och "execute" 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 mycket kraft. Skydda ramverket och se till att endast "root"-användare har åtkomst till kritiska JSON- och skriptfiler. Om kraven inte uppfylls körs inte skriptet, vilket resulterar i en filsystemkrasch och inkonsekvent säkerhetskopiering.

  5. Konfigurera VMSnapshotScriptPluginConfig.json enligt beskrivningen här:

    • pluginName: Lämna det här fältet som det är, annars kanske skripten inte fungerar som förväntat.

    • preScriptLocation: Ange den fullständiga sökvägen för den prescript på den virtuella dator som ska säkerhetskopieras.

    • postScriptLocation: Ange den fullständiga sökvägen för postskriptet på den virtuella dator som ska säkerhetskopieras.

    • preScriptParams: Ange de valfria parametrar som måste skickas till prescript. Alla parametrar ska vara inom citattecken. Om du använder flera parametrar separerar du parametrarna med kommatecken.

    • postScriptParams: Ange de valfria parametrar som måste skickas till efterskriptet. Alla parametrar ska 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 det finns något fel 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 efterskriptet ska försökas igen om det finns något fel 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 post-script (maximalt värde kan vara 1800).

    • continueBackupOnFailure: Ställ in det här värdet på sant om du vill att Azure Backup ska återgå till ett filsystemskonsekvent/kraschkonsekvent säkerhetskopiering om prescript eller post-script misslyckas. Om du ställer in detta på false misslyckas säkerhetskopieringen om det uppstår ett skriptfel (förutom när du har en virtuell dator med en enda disk som återgår till kraschkonsekvent säkerhetskopiering oavsett den här inställningen). När värdet continueBackupOnFailure är inställt på false, kommer säkerhetskopieringen att försöka utföras igen baserat på en omprövningslogik i tjänsten (för det angivna antalet försök).

    • fsFreezeEnabled: Ange om Linux fsfreeze ska anropas när du tar ögonblicksbilden av den virtuella datorn för att säkerställa filsystemets konsekvens. Vi rekommenderar att du behåller den här inställningen inställd på true om inte programmet har ett beroende av att inaktivera fsfreeze.

    • ScriptsExecutionPollTimeSeconds: Ange den tid tillägget måste vila mellan varje avsökning till skriptkörningen. Om värdet till exempel är 2 kontrollerar tillägget om körningen före/efter skriptet slutfördes var 2:e sekund. Det lägsta och högsta värdet som det kan ta är 1 respektive 5. Värdet ska vara strikt ett heltal.

  6. 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 med hjälp av Säkerhetskopiera virtuella Azure-datorer till Recovery Services-valv.

Felsökning

Se till att du lägger till lämplig loggning när du skriver förskriptet och efterskriptet och granskar skriptloggarna för att åtgärda eventuella skriptproblem. Mer information finns i följande tabell om du fortfarande har problem med att köra skript.

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 Efterskriptet 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å den sökväg som anges i konfigurationsfilen för att säkerställa programkonsekvent säkerhetskopiering.
Post-ScriptNotFound Det gick inte att hitta efterskriptet på den plats som anges i VMSnapshotScriptPluginConfig.json konfigurationsfilen. Kontrollera att post-script finns på sökvägen som anges i konfigurationsfilen för att säkerställa programkonsekvent säkerhetskopiering.
IncorrectPluginhostFile Pluginhost-filen, som medföljer VmSnapshotLinux-tillägget, är skadad, så förskript och efterskript kan inte köras och säkerhetskopieringen blir inte programkonsekvent. Avinstallera VmSnapshotLinux-tillägget så installeras det automatiskt om med nästa säkerhetskopia för att åtgärda problemet.
IncorrectJSONConfigFile Den VMSnapshotScriptPluginConfig.json filen är felaktig, så prescript och post-script kan inte köras och säkerhetskopieringen blir inte programkonsekvent. Ladda ned kopian från GitHub och konfigurera den igen.
InsufficientPermissionforPre-Script För att köra skript ska "root"-användaren vara ägare till filen och filen ska ha behörigheten "700" (det vill ex. endast "ägare" ska ha behörigheten "read", "write" och "execute"). Kontrollera att "root"-användaren är "ägare" av skriptfilen och att endast "ägare" har behörigheten "read", "write" och "execute".
InsufficientPermissionforPost-Script För att köra skript ska rotanvändaren vara ägare till filen och filen ska ha behörigheten "700" (det vill: endast "ägare" ska ha behörigheten "läsa", "skriva" och "köra"). Kontrollera att "root"-användaren är "ägare" av skriptfilen och att endast "ägare" har behörigheten "read", "write" och "execute".
Pre-ScriptTimeout Körningen av den programkonsekventa tidsgränsen för säkerhetskopiering före skriptet. Kontrollera skriptet och öka tidsgränsen i den VMSnapshotScriptPluginConfig.json filen som finns på /etc/azure.
Post-ScriptTimeout Tidsgränsen för körningen av programkonsekvent säkerhetskopiering efter skript överst. Kontrollera skriptet och öka tidsgränsen i den VMSnapshotScriptPluginConfig.json filen som finns på /etc/azure.

Nästa steg

Konfigurera säkerhetskopiering av virtuella datorer till ett Recovery Services-valv