Spójna na poziomie aplikacji kopia zapasowa maszyn wirtualnych z systemem Linux platformy Azure przy użyciu usługi Azure Backup

W tym artykule opisano sposób tworzenia kopii zapasowych spójnych na poziomie aplikacji maszyn wirtualnych z systemem Linux na platformie Azure przy użyciu usługi Azure Backup. W tym artykule skonfigurujesz strukturę skryptów w celu tworzenia kopii zapasowych maszyn wirtualnych z systemem Linux wdrożonych na platformie Azure. Ten artykuł zawiera również informacje dotyczące rozwiązywania problemów.

Podczas tworzenia migawek kopii zapasowych maszyn wirtualnych spójność aplikacji oznacza, że aplikacje są uruchamiane po przywróceniu maszyn wirtualnych. Jak można sobie wyobrazić, spójność aplikacji jest niezwykle ważna. Aby zapewnić spójność aplikacji maszyn wirtualnych z systemem Linux, możesz użyć struktury prescript systemu Linux i po skrypcie do tworzenia kopii zapasowych spójnych na poziomie aplikacji. Platforma prescript i post-script obsługuje maszyny wirtualne z systemem Linux wdrożone w usłudze Azure Resource Manager. Skrypty spójności aplikacji nie obsługują maszyn wirtualnych wdrożonych przez program Service Manager ani maszyn wirtualnych z systemem Windows.

Jak działa struktura

Platforma udostępnia opcję uruchamiania niestandardowych skryptów i prescript podczas tworzenia migawek maszyn wirtualnych. Skrypty wstępne są uruchamiane tuż przed wykonaniem migawki maszyny wirtualnej, a skrypty wykonywane bezpośrednio po wykonaniu migawki maszyny wirtualnej. Indeksy wstępne i skrypty po skrypcie zapewniają elastyczność kontrolowania aplikacji i środowiska podczas tworzenia migawek maszyn wirtualnych.

Indeksy wstępnie wywołują natywne interfejsy API aplikacji, które są w stanie spoczynku operacji we/wy, i opróżniają zawartość w pamięci na dysk. Te akcje zapewniają spójność migawki z aplikacją. Po wykonaniu skryptów użyj natywnych interfejsów API aplikacji, aby rozmrozić operacje we/wy, które umożliwiają aplikacji wznowienie normalnych operacji po migawki maszyny wirtualnej.

Konfigurowanie skryptu prescript i post-script dla maszyny wirtualnej z systemem Linux platformy Azure

Aby skonfigurować skrypt prescript i post, wykonaj następujące kroki:

  1. Zaloguj się jako użytkownik główny do maszyny wirtualnej z systemem Linux, której kopię zapasową chcesz utworzyć.

  2. Z usługi GitHub pobierz VMSnapshotScriptPluginConfig.json i skopiuj go do folderu /etc/azure dla wszystkich maszyn wirtualnych, których kopię zapasową chcesz utworzyć. Jeśli folder /etc/azure nie istnieje, utwórz go.

  3. Skopiuj kod wstępny i skrypt post dla aplikacji na wszystkich maszynach wirtualnych, których kopię zapasową planujesz utworzyć. Skrypty można skopiować do dowolnej lokalizacji na maszynie wirtualnej. Pamiętaj, aby zaktualizować pełną ścieżkę plików skryptów w pliku VMSnapshotScriptPluginConfig.json .

  4. Upewnij się, że następujące uprawnienia dla tych plików:

    • VMSnapshotScriptPluginConfig.json: uprawnienie "600". Na przykład tylko użytkownik "główny" powinien mieć uprawnienia "odczyt" i "zapis" do tego pliku, a żaden użytkownik nie powinien mieć uprawnień "wykonaj".

    • Plik wstępny skryptu: uprawnienie "700". Na przykład tylko użytkownik "root" powinien mieć uprawnienia "read", "write" i "execute" do tego pliku. Oczekuje się, że plik będzie skryptem powłoki, ale teoretycznie ten skrypt może wewnętrznie zduplikować lub odwołać się do innych skryptów, takich jak skrypt języka Python.

    • Uprawnienie po skryscie "700". Na przykład tylko użytkownik "root" powinien mieć uprawnienia "read", "write" i "execute" do tego pliku. Oczekuje się, że plik będzie skryptem powłoki, ale teoretycznie ten skrypt może wewnętrznie zduplikować lub odwołać się do innych skryptów, takich jak skrypt języka Python.

    Ważne

    Struktura zapewnia użytkownikom dużą moc. Zabezpiecz strukturę i upewnij się, że tylko użytkownik "główny" ma dostęp do krytycznych plików JSON i skryptów. Jeśli wymagania nie zostaną spełnione, skrypt nie zostanie uruchomiony, co spowoduje awarię systemu plików i niespójną kopię zapasową.

  5. Skonfiguruj VMSnapshotScriptPluginConfig.json zgodnie z opisem w tym miejscu:

    • pluginName: pozostaw to pole tak, jak jest, lub skrypty mogą nie działać zgodnie z oczekiwaniami.

    • preScriptLocation: podaj pełną ścieżkę indeksu na maszynie wirtualnej, która ma zostać utworzona.

    • postScriptLocation: podaj pełną ścieżkę skryptu po utworzeniu kopii zapasowej na maszynie wirtualnej, która ma zostać utworzona.

    • preScriptParams: podaj opcjonalne parametry, które należy przekazać do prescriptu. Wszystkie parametry powinny być w cudzysłowie. Jeśli używasz wielu parametrów, należy oddzielić parametry przecinkami.

    • postScriptParams: podaj opcjonalne parametry, które należy przekazać do skryptu końcowego. Wszystkie parametry powinny być w cudzysłowie. Jeśli używasz wielu parametrów, należy oddzielić parametry przecinkami.

    • preScriptNoOfRetries: ustaw liczbę ponownych prób indeksu, jeśli przed zakończeniem wystąpi błąd. Zero oznacza tylko jedną próbę i nie spróbuj ponownie, jeśli wystąpi błąd.

    • postScriptNoOfRetries: ustaw liczbę ponownych prób po utworzeniu skryptu, jeśli przed zakończeniem wystąpi błąd. Zero oznacza tylko jedną próbę i nie spróbuj ponownie, jeśli wystąpi błąd.

    • timeoutInSeconds: określ poszczególne limity czasu dla prescriptu i skryptu końcowego (maksymalna wartość może wynosić 1800).

    • continueBackupOnFailure: ustaw tę wartość na true , jeśli chcesz, aby usługa Azure Backup wróciła do kopii zapasowej spójnej/spójnej na poziomie awarii systemu plików, jeśli skrypt wstępny lub post-script zakończy się niepowodzeniem. Ustawienie wartości false powoduje niepowodzenie tworzenia kopii zapasowej, jeśli wystąpi błąd skryptu (z wyjątkiem sytuacji, gdy masz maszynę wirtualną z jednym dyskiem, która wraca do kopii zapasowej spójnej na poziomie awarii niezależnie od tego ustawienia). Gdy wartość continueBackupOnFailure ma wartość false, jeśli tworzenie kopii zapasowej zakończy się niepowodzeniem, operacja tworzenia kopii zapasowej zostanie podjęta ponownie na podstawie logiki ponawiania próby w usłudze (dla określonej liczby prób).

    • fsFreezeEnabled: określ, czy system Linux fsfreeze ma być wywoływany podczas tworzenia migawki maszyny wirtualnej, aby zapewnić spójność systemu plików. Zalecamy zachowanie tego ustawienia na wartość true , chyba że aplikacja ma zależność od wyłączenia fsfreeze.

    • ScriptsExecutionPollTimeSeconds: ustaw czas uśpienia rozszerzenia między każdym sondą a wykonaniem skryptu. Jeśli na przykład wartość to 2, rozszerzenie sprawdza, czy wykonywanie skryptu przed/po zakończyło się co 2 sekundy. Minimalna i maksymalna wartość, która może potrwać, wynosi odpowiednio 1 i 5. Wartość powinna być ściśle liczbą całkowitą.

  6. Platforma skryptów jest teraz skonfigurowana. Jeśli kopia zapasowa maszyny wirtualnej jest już skonfigurowana, następna kopia zapasowa wywołuje skrypty i wyzwala spójną na poziomie aplikacji kopię zapasową. Jeśli kopia zapasowa maszyny wirtualnej nie jest skonfigurowana, skonfiguruj ją przy użyciu funkcji Tworzenie kopii zapasowych maszyn wirtualnych platformy Azure w magazynach usługi Recovery Services.

Rozwiązywanie problemów

Upewnij się, że dodano odpowiednie rejestrowanie podczas pisania skryptu i prescriptu oraz przejrzyj dzienniki skryptów, aby rozwiązać problemy ze skryptem. Jeśli nadal masz problemy z uruchamianiem skryptów, zapoznaj się z poniższą tabelą, aby uzyskać więcej informacji.

Błąd Komunikat o błędzie Zalecana akcja
Pre-ScriptExecutionFailed Indeks wstępnie zwrócił błąd, więc tworzenie kopii zapasowej może nie być spójne z aplikacją. Przejrzyj dzienniki błędów skryptu, aby rozwiązać ten problem.
Post-ScriptExecutionFailed Post-script zwrócił błąd, który może mieć wpływ na stan aplikacji. Przejrzyj dzienniki błędów skryptu, aby rozwiązać problem i sprawdzić stan aplikacji.
Pre-ScriptNotFound Indeks wstępny nie został znaleziony w lokalizacji określonej w pliku konfiguracji VMSnapshotScriptPluginConfig.json . Upewnij się, że indeks wstępny znajduje się w ścieżce określonej w pliku konfiguracji, aby zapewnić spójną na poziomie aplikacji kopię zapasową.
Post-ScriptNotFound Skrypt post-script nie został znaleziony w lokalizacji określonej w pliku konfiguracji VMSnapshotScriptPluginConfig.json . Upewnij się, że skrypt po utworzeniu skryptu znajduje się w ścieżce określonej w pliku konfiguracji, aby zapewnić spójną na poziomie aplikacji kopię zapasową.
IncorrectPluginhostFile Plik Pluginhost, który jest dostarczany z rozszerzeniem VmSnapshotLinux, jest uszkodzony, więc skrypt wstępny i post-script nie może działać, a kopia zapasowa nie będzie spójna na poziomie aplikacji. Odinstaluj rozszerzenie VmSnapshotLinux i zostanie ono automatycznie ponownie zainstalowane przy użyciu następnej kopii zapasowej, aby rozwiązać ten problem.
IncorrectJSONConfigFile Plik VMSnapshotScriptPluginConfig.json jest niepoprawny, dlatego nie można uruchomić skryptu prescript i post, a kopia zapasowa nie będzie spójna na poziomie aplikacji. Pobierz kopię z usługi GitHub i skonfiguruj ją ponownie.
InsufficientPermissionforPre-Script W przypadku uruchamiania skryptów użytkownik "root" powinien być właścicielem pliku, a plik powinien mieć uprawnienia "700" (czyli tylko "właściciel" powinien mieć uprawnienia "read", "write" i "execute"). Upewnij się, że użytkownik "root" jest "właścicielem" pliku skryptu i że tylko "właściciel" ma uprawnienia "read", "write" i "execute".
InsufficientPermissionforPost-Script W przypadku uruchamiania skryptów użytkownik główny powinien być właścicielem pliku, a plik powinien mieć uprawnienia "700" (czyli tylko "właściciel" powinien mieć uprawnienia "read", "write" i "execute"). Upewnij się, że użytkownik "root" jest "właścicielem" pliku skryptu i że tylko "właściciel" ma uprawnienia "read", "write" i "execute".
Limit czasu przed skryptem Przekroczono limit czasu wykonywania kopii zapasowej spójnej na poziomie aplikacji. Sprawdź skrypt i zwiększ limit czasu w pliku VMSnapshotScriptPluginConfig.json znajdującym się w lokalizacji /etc/azure.
Post-ScriptTimeout Przekroczono limit czasu wykonywania kopii zapasowych spójnych na poziomie aplikacji. Sprawdź skrypt i zwiększ limit czasu w pliku VMSnapshotScriptPluginConfig.json znajdującym się w lokalizacji /etc/azure.

Następne kroki

Konfigurowanie kopii zapasowej maszyny wirtualnej w magazynie usługi Recovery Services