Zálohování virtuálních počítačů Azure s Linuxem konzistentní vzhledem k aplikacím pomocí služby Azure Backup

Tento článek popisuje, jak vytvořit zálohy virtuálních počítačů s Linuxem do Azure konzistentní vzhledem k aplikacím pomocí služby Azure Backup. V tomto článku nakonfigurujete architekturu skriptů pro zálohování virtuálních počítačů s Linuxem nasazených v Azure. Tento článek obsahuje také informace o řešení potíží.

Když vytváříte snímky virtuálních počítačů, konzistence aplikací znamená, že se aplikace spustí při spuštění virtuálních počítačů po obnovení. Jak si můžete představit, je konzistence aplikací velmi důležitá. Pokud chcete zajistit, aby vaše virtuální počítače s Linuxem byly konzistentní vzhledem k aplikacím, můžete k vytváření záloh konzistentních vzhledem k aplikacím použít prescript Linux a architekturu po skriptech. Architektura prescriptu a po skriptování podporuje virtuální počítače s Linuxem nasazené v Azure Resource Manageru. Skripty pro konzistenci aplikací nepodporují virtuální počítače nasazené Service Managerem ani virtuální počítače s Windows.

Jak funguje architektura

Architektura poskytuje možnost spouštět vlastní prescripty a post-scripty při pořizování snímků virtuálních počítačů. Prescripty se spouští těsně před pořízením snímku virtuálního počítače a po spuštění skriptů ihned po pořízení snímku virtuálního počítače. Prescripty a post-scripty poskytují flexibilitu pro řízení aplikace a prostředí při pořizování snímků virtuálních počítačů.

Prescripty vyvolávají nativní rozhraní API aplikací, která vyprázdní vstupně-výstupní objekty (IO) a vyprázdní obsah v paměti na disk. Tyto akce zajišťují, že je snímek konzistentní vzhledem k aplikacím. Po skriptech se k rozmrazování IO používají nativní rozhraní API aplikací, která aplikaci umožňují obnovit normální operace po vytvoření snímku virtuálního počítače.

Konfigurace prescriptu a následného skriptu pro virtuální počítač Azure s Linuxem

Chcete-li nakonfigurovat prescript a post-script, postupujte takto:

  1. Přihlaste se jako uživatel kořenového adresáře k virtuálnímu počítači s Linuxem, který chcete zálohovat.

  2. Z GitHubu si stáhněte VMSnapshotScriptPluginConfig.json a zkopírujte ho do složky /etc/azure pro všechny virtuální počítače, které chcete zálohovat. Pokud složka /etc/azure neexistuje, vytvořte ji.

  3. Zkopírujte prescript a post-script pro vaši aplikaci na všech virtuálních počítačích, které chcete zálohovat. Skripty můžete zkopírovat do libovolného umístění na virtuálním počítači. Nezapomeňte aktualizovat úplnou cestu k souborům skriptu v souboru VMSnapshotScriptPluginConfig.json .

  4. Ujistěte se, že pro tyto soubory platí následující oprávnění:

    • VMSnapshotScriptPluginConfig.json: Oprávnění 600. Oprávnění ke čtení a zápisu k tomuto souboru by například měl mít jenom uživatel root a žádný uživatel by neměl mít oprávnění ke spuštění.

    • Soubor předběžného skriptu: Oprávnění 700 Například oprávnění ke čtení, zápisu a spuštění tohoto souboru by měl mít pouze uživatel root. Očekává se, že soubor bude skript prostředí, ale teoreticky může tento skript interně vytvořit nebo odkazovat na jiné skripty, jako je skript Pythonu.

    • Oprávnění post-script "700". Například oprávnění ke čtení, zápisu a spuštění tohoto souboru by měl mít pouze uživatel root. Očekává se, že soubor bude skript prostředí, ale teoreticky může tento skript interně vytvořit nebo odkazovat na jiné skripty, jako je skript Pythonu.

    Důležité

    Architektura poskytuje uživatelům spoustu výkonu. Zabezpečte architekturu a zajistěte, aby k kritickým souborům JSON a skriptům měli přístup jenom uživatel root. Pokud požadavky nejsou splněné, skript se nespustí, což vede k chybovému ukončení systému souborů a nekonzistentnímu zálohování.

  5. Nakonfigurujte VMSnapshotScriptPluginConfig.json , jak je popsáno tady:

    • pluginName: Ponechte toto pole tak, jak je, nebo vaše skripty nemusí fungovat podle očekávání.

    • preScriptLocation: Zadejte úplnou cestu prescriptu na virtuálním počítači, který se má zálohovat.

    • postScriptLocation: Zadejte úplnou cestu post-scriptu na virtuálním počítači, který se bude zálohovat.

    • preScriptParams: Zadejte volitelné parametry, které je potřeba předat do prescriptu. Všechny parametry by měly být v uvozovkách. Pokud používáte více parametrů, oddělte parametry čárkou.

    • postScriptParams: Zadejte volitelné parametry, které je potřeba předat post-script. Všechny parametry by měly být v uvozovkách. Pokud používáte více parametrů, oddělte parametry čárkou.

    • preScriptNoOfRetries: Nastavte, kolikrát se má prescript opakovat, pokud před ukončením dojde k nějaké chybě. Nula znamená, že pouze jeden pokus a pokud dojde k selhání, nebude se opakovat.

    • postScriptNoOfRetries: Nastavte, kolikrát se má po skriptu opakovat, pokud se před ukončením zobrazí nějaká chyba. Nula znamená, že pouze jeden pokus a pokud dojde k selhání, nebude se opakovat.

    • timeoutInSeconds: Zadejte jednotlivé časové limity pro prescript a post-script (maximální hodnota může být 1800).

    • continueBackupOnFailure: Tuto hodnotu nastavte na true , pokud chcete, aby se služba Azure Backup v případě selhání nebo skriptu vrátila zpět do konzistentního zálohování systému souborů nebo zálohování konzistentní s chybovým ukončením. Pokud dojde k selhání skriptu (kromě toho, že máte virtuální počítač s jedním diskem, který se vrátí zpět na zálohování konzistentní vzhledem k selhání bez ohledu na toto nastavení), zálohování se nezdaří. Pokud je hodnota continueBackupOnFailure nastavena na false, pokud zálohování selže, operace zálohování se pokusí znovu na základě logiky opakování ve službě (pro zadaný počet pokusů).

    • fsFreezeEnabled: Určete, jestli se má při pořizování snímku virtuálního počítače volat linuxová fsfreeze, aby se zajistila konzistence systému souborů. Pokud vaše aplikace nemá závislost na zakázání fsfreeze, doporučujeme toto nastavení ponechat nastavené na hodnotu True .

    • ScriptsExecutionPollTimeSeconds: Nastavte čas, kdy má rozšíření spát mezi každým dotazem na spuštění skriptu. Pokud je například hodnota 2, rozšíření zkontroluje, jestli se provádění skriptu před/po dokončení každých 2 sekund dokončilo. Minimální a maximální hodnota, kterou může trvat, je 1 a 5. Hodnota by měla být výhradně celé číslo.

  6. Architektura skriptů je teď nakonfigurovaná. Pokud už je zálohování virtuálního počítače nakonfigurované, vyvolá další zálohování skripty a aktivuje zálohování konzistentní vzhledem k aplikacím. Pokud zálohování virtuálního počítače není nakonfigurované, nakonfigurujte ho pomocí zálohování virtuálních počítačů Azure do trezorů služby Recovery Services.

Řešení problému

Při psaní prescriptu a po skriptu nezapomeňte přidat odpovídající protokolování a zkontrolujte protokoly skriptů a opravte případné problémy se skripty. Pokud máte stále problémy se spouštěním skriptů, další informace najdete v následující tabulce.

Chyba Chybová zpráva Doporučená akce
Pre-ScriptExecutionFailed Prescript vrátil chybu, takže zálohování nemusí být konzistentní vzhledem k aplikacím. Projděte si protokoly selhání pro váš skript a opravte problém.
Post-ScriptExecutionFailed Po skriptu se vrátila chyba, která může mít vliv na stav aplikace. Projděte si protokoly selhání pro váš skript, abyste problém opravili, a zkontrolujte stav aplikace.
Pre-ScriptNotFound V umístění zadaném v konfiguračním souboru VMSnapshotScriptPluginConfig.json nebyl nalezen prescript. Ujistěte se, že je prescript k dispozici v cestě, která je zadaná v konfiguračním souboru, aby se zajistilo zálohování konzistentní vzhledem k aplikacím.
Post-ScriptNotFound Post-script nebyl nalezen v umístění zadaném v konfiguračním souboru VMSnapshotScriptPluginConfig.json . Ujistěte se, že je po skriptu k dispozici cesta zadaná v konfiguračním souboru, aby se zajistilo zálohování konzistentní vzhledem k aplikacím.
IncorrectPluginhostFile Soubor Pluginhost , který je součástí rozšíření VmSnapshotLinux, je poškozený, takže prescript a post-script nelze spustit a zálohování nebude konzistentní vzhledem k aplikacím. Odinstalujte rozšíření VmSnapshotLinux a automaticky se přeinstaluje s další zálohou, aby se problém vyřešil.
Nesprávný souborJSONConfigFile Soubor VMSnapshotScriptPluginConfig.json je nesprávný, takže se nedá spustit prescript a post-script a zálohování nebude konzistentní vzhledem k aplikacím. Stáhněte si kopii z GitHubu a znovu ji nakonfigurujte.
InsufficientPermissionforPre-Script Pro spouštění skriptů by měl být "kořenový" uživatel vlastníkem souboru a soubor by měl mít oprávnění 700 (to znamená, že pouze "vlastník" by měl mít oprávnění ke čtení, zápisu a spuštění). Ujistěte se, že uživatel root je vlastníkem souboru skriptu a že oprávnění ke čtení, zápisu a spuštění má pouze uživatel "owner".
InsufficientPermissionforPost-Script Pro spouštění skriptů by měl být kořenový uživatel vlastníkem souboru a soubor by měl mít oprávnění 700 (to znamená, že pouze "vlastník" by měl mít oprávnění ke čtení, zápisu a spuštění). Ujistěte se, že uživatel root je vlastníkem souboru skriptu a že oprávnění ke čtení, zápisu a spuštění má pouze uživatel "owner".
Pre-ScriptTimeout Vypršení časového limitu spuštění předzálohovacího skriptu konzistentního vzhledem k aplikacím Zkontrolujte skript a zvyšte časový limit v souboru VMSnapshotScriptPluginConfig.json , který se nachází v /etc/azure.
Post-ScriptTimeout Vypršel časový limit provádění záloh konzistentních vzhledem k aplikacím po skriptech. Zkontrolujte skript a zvyšte časový limit v souboru VMSnapshotScriptPluginConfig.json , který se nachází v /etc/azure.

Další kroky

Konfigurace zálohování virtuálních počítačů do trezoru služby Recovery Services