Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak vytvořit zálohy konzistentní vzhledem k aplikacím pro virtuální počítače s Linuxem nasazenými v Azure pomocí služby Azure Backup. Popisuje, jak nakonfigurovat architekturu skriptů a řešit potíže.
Když Azure Backup pořídí snímek virtuálního počítače, konzistence aplikace zajistí, aby se aplikace po obnovení virtuálního počítače správně spustily. K dosažení tohoto chování použijte architekturu linuxového prescriptu a postscriptu, která podporuje virtuální počítače s Linuxem nasazené pomocí Azure Resource Manageru. Tyto skripty nefungují pro virtuální počítače nasazené pomocí nástroje System Center Service Manager nebo Windows.
Jak rámec funguje?
Architektura poskytuje možnost spouštět vlastní prescripty a postscripty při pořizování snímků virtuálních počítačů. Před pořízením snímku virtuálního počítače se spustí prescripty. Postscripty se spustí okamžitě po pořízení snímku virtuálního počítače. Prescripty a postscripty 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á uklidní vstupně-výstupní operace a vyprázdní obsah v paměti na disk. Tyto akce zajišťují, aby byl snímek konzistentní vzhledem k aplikacím. Postscripty používají rozhraní API nativní aplikace k rozmrazování vstupně-výstupních operací, což aplikaci umožňuje obnovit normální operace po vytvoření snímku virtuálního počítače.
Konfigurace prescriptu a postscriptu pro virtuální počítače Azure s Linuxem
Chcete-li nakonfigurovat prescript a postscript, postupujte takto:
Přihlaste se jako uživatel kořenového adresáře k virtuálnímu počítači s Linuxem, který chcete zálohovat.
Z GitHubu 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.
Zkopírujte prescript a postscript 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 .
Chcete-li použít následující soubory, ujistěte se, že máte odpovídající oprávnění:
- VMSnapshotScriptPluginConfig.json: Oprávnění je 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 prescriptu: Oprávnění je 700. Oprávnění ke čtení, zápisu a spouštění tohoto souboru by například měl mít jenom uživatel root. Očekává se, že soubor bude skript v shellu, ale teoreticky může tento skript interně vytvářet nebo odkazovat na jiné skripty, jako je Python skript.
- Postscript: Oprávnění je 700. Oprávnění ke čtení, zápisu a spouštění tohoto souboru by například měl mít jenom uživatel root. Očekává se, že soubor bude skript v shellu, ale teoreticky může tento skript interně vytvářet nebo odkazovat na jiné skripty, jako je Python skript.
Důležité
Architektura poskytuje uživatelům mnoho pravomocí. Zabezpečte architekturu a zajistěte, aby k kritickým souborům JSON a skriptům měli přístup pouze kořenový uživatel.
Pokud nejsou splněné požadavky, skript nejde spustit, což vede k chybovému ukončení systému souborů a nekonzistentnímu zálohování.
Nakonfigurujte VMSnapshotScriptPluginConfig.json , jak je popsáno tady:
-
pluginName: Ponechte toto pole tak, jak je, nebo skripty nemusí fungovat podle očekávání. -
preScriptLocation: Zadejte úplnou cestu k prescriptu na virtuálním počítači, který se má zálohovat. -
postScriptLocation: Zadejte úplnou cestu postscriptu na virtuálním počítači, který se má zálohovat. -
preScriptParams: Zadejte volitelné parametry, které musí být předány do prescriptu. Všechny parametry musí být v uvozovkách. Pokud používáte více parametrů, oddělte parametry čárkou. -
postScriptParams: Zadejte volitelné parametry, které musí být předány do postscriptu. Všechny parametry musí být v uvozovkách. Pokud používáte více parametrů, oddělte parametry čárkou. -
preScriptNoOfRetries: Nastavte počet opakování prescriptu, pokud dojde k chybě před ukončením. Nula znamená pouze jeden pokus a pokud dojde k selhání, žádné opakování. -
postScriptNoOfRetries: Nastavte, kolikrát se má postscript opakovat, pokud dojde k chybě před ukončením. Nula znamená pouze jeden pokus a pokud dojde k selhání, žádné opakování. -
timeoutInSeconds: Zadejte jednotlivé časové limity pro prescript a postscript (maximální hodnota je 1800). -
continueBackupOnFailure: Tuto hodnotu nastavte na true, pokud chcete, aby se služba Azure Backup vrátila k záloze konzistentní se systémem souborů nebo konzistentní při havárii, pokud selže prescript nebo postscript. Pokud dojde k selhání skriptu, nastavení této hodnoty na false selže při zálohování. (Výjimkou je, když máte virtuální počítač s jedním diskem, který bez ohledu na toto nastavení provádí zálohování konzistentní při havárii.)continueBackupOnFailureKdyž je hodnota nastavena na false, jestliže 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 zavolat Linuxfsfreeze, abyste zajistili konzistenci systému souborů. Doporučujeme ponechat toto nastavení nastavené na true , pokud vaše aplikace nemá závislost na zakázánífsfreeze. -
ScriptsExecutionPollTimeSeconds: Nastavte dobu, po kterou rozšíření musí 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í prescriptu nebo postscriptu dokončilo každých 2 sekundy. Minimální a maximální hodnota, které může nabývat, je 1 a 5. Hodnota by měla být výhradně celé číslo.
-
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 podle kroků v části Zálohování virtuálních počítačů Azure do trezorů služby Recovery Services.
Řešení chyb zálohování konzistentního vzhledem k aplikacím virtuálních počítačů Azure s Linuxem
Při psaní prescriptu a postscriptu nezapomeňte přidat odpovídající protokolování. Zkontrolujte protokoly skriptů a opravte případné problémy se skripty. Pokud máte stále problémy se spouštěním skriptů, projděte si následující tabulku.
| Chyba | Zpráva o chybě | Doporučená akce |
|---|---|---|
Pre-ScriptExecutionFailed |
Prescript vrátil chybu, takže zálohování nemusí být konzistentní vzhledem k aplikacím. | Podívejte se do protokolů selhání skriptu a problém vyřešte. |
Post-ScriptExecutionFailed |
Postscript vrátil chybu, která by mohla ovlivnit stav aplikace. | Projděte si protokoly selhání pro váš skript, abyste problém vyřešili, 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 se prescript nachází na cestě uvedené v konfiguračním souboru, aby bylo zajištěno aplikace konzistentní zálohování. |
Post-ScriptNotFound |
Postscript nebyl nalezen v umístění zadaném v konfiguračním souboru VMSnapshotScriptPluginConfig.json. | Ujistěte se, že skript je dostupný na cestě specifikované v konfiguračním souboru, aby bylo zajištěno zálohování konzistentní s aplikací. |
IncorrectPluginhostFile |
Soubor Pluginhost , který se dodává s příponou VmSnapshotLinux , je poškozený, takže prescript a postscript nelze spustit a zálohování není konzistentní vzhledem k aplikacím. |
Odinstalujte VmSnapshotLinux rozšíření. Automaticky se přeinstaluje s další zálohou, aby se problém vyřešil. |
IncorrectJSONConfigFile |
Soubor VMSnapshotScriptPluginConfig.json je nesprávný, takže se skript a postscript nespustí a zálohování není 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. Soubor by měl mít 700 oprávnění. (To znamená, že oprávnění ke čtení, zápisu a spouštění by měl mít jenom vlastník.) | Ujistěte se, že kořenový uživatel je vlastníkem souboru skriptu a že oprávnění ke čtení, zápisu a spouštění má pouze vlastník. |
InsufficientPermissionforPost-Script |
Pro spouštění skriptů by měl být kořenový uživatel vlastníkem souboru. Soubor by měl mít 700 oprávnění. (To znamená, že oprávnění ke čtení, zápisu a spouštění by měl mít jenom vlastník.) | Ujistěte se, že kořenový uživatel je vlastníkem souboru skriptu a že oprávnění ke čtení, zápisu a spouštění má pouze vlastník. |
Pre-ScriptTimeout |
Vypršel časový limit provádění prescriptu pro zálohování konzistentní vzhledem k aplikacím. | Zkontrolujte skript a zvyšte časový limit v souboru VMSnapshotScriptPluginConfig.json umístěném v /etc/azure. |
Post-ScriptTimeout |
Vypršel časový limit pro provedení postskriptu pro zálohu konzistentní s aplikacemi. | Zkontrolujte skript a zvyšte časový limit v souboru VMSnapshotScriptPluginConfig.json umístěném v /etc/azure. |