Udostępnij za pośrednictwem


Konfigurowanie spójnej na poziomie aplikacji kopii zapasowej dla maszyn wirtualnych z systemem Linux platformy Azure przy użyciu Azure Backup

W tym artykule opisano sposób tworzenia spójnych na poziomie aplikacji kopii zapasowych dla maszyn wirtualnych z systemem Linux wdrożonych na platformie Azure przy użyciu Azure Backup. Obejmuje on konfigurowanie struktury skryptu i rozwiązywanie problemów.

Gdy Azure Backup tworzy migawkę maszyny wirtualnej, spójność aplikacji zapewnia, że aplikacje są uruchamiane poprawnie po przywróceniu maszyny wirtualnej. Aby to osiągnąć, użyj struktury skryptu wstępnego i skryptu końcowego systemu Linux, która obsługuje maszyny wirtualne z systemem Linux wdrożone w usłudze Azure Resource Manager. Jednak te skrypty nie działają w przypadku maszyn wirtualnych wdrożonych przez Service Manager lub z systemem Windows.

Jak działa framework?

Struktura zapewnia opcję uruchamiania niestandardowych skryptów wstępnych i skryptów końcowych podczas wykonywania migawek maszyn wirtualnych. Skrypty są uruchamiane tuż przed wykonaniem migawki maszyny wirtualnej, a skrypty końcowe są uruchamiane natychmiast po utworzeniu migawki maszyny wirtualnej. Skrypty wstępne i skrypty końcowe zapewniają elastyczność kontrolowania aplikacji i środowiska podczas tworzenia migawek maszyn wirtualnych.

Skrypty wywołują natywne interfejsy API aplikacji, które wyciszają operacje we/wy i opróżniają zawartość w pamięci na dysku. Te akcje zapewniają, że migawka jest spójna z aplikacją. Skrypty używają natywnych interfejsów API aplikacji do odblokowania operacji we/wy, co umożliwia aplikacji wznowienie normalnych operacji po migawce maszyny wirtualnej.

Konfigurowanie skryptu wstępnego i skryptu końcowego dla maszyny wirtualnej z systemem Linux platformy Azure

Aby skonfigurować skrypt wstępny i skrypt końcowy, 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, dla których chcesz utworzyć kopię zapasową. Jeśli folder /etc/azure nie istnieje, utwórz go.

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

  4. Aby użyć następujących plików, upewnij się, że masz odpowiednie uprawnienia:

    • VMSnapshotScriptPluginConfig.json: Zezwolenie 600. Na przykład tylko użytkownik root powinien mieć uprawnienia do odczytu i zapisu do tego pliku i żaden użytkownik nie powinien mieć uprawnień do wykonywania .

    • Plik skryptu: Uprawnienie 700. Na przykład tylko użytkownik root powinien mieć uprawnienia do odczytu, zapisu i wykonywania tego pliku. Oczekuje się, że plik będzie skryptem powłoki, ale teoretycznie ten skrypt może wewnętrznie uruchomić lub odwołać się do innych skryptów, takich jak skrypt Python.

    • Post-scriptum (post-scriptum) Zezwolenie 700. Na przykład tylko użytkownik root powinien mieć uprawnienia do odczytu, zapisu i wykonywania tego pliku. Oczekuje się, że plik będzie skryptem powłoki, ale teoretycznie ten skrypt może wewnętrznie uruchomić lub odwołać się do innych skryptów, takich jak skrypt Python.

    Ważne

    Framework daje użytkownikom liczne możliwości. Zabezpiecz strukturę i upewnij się, że tylko użytkownik root 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ę preskryptu na maszynie wirtualnej, której kopia zapasowa zostanie utworzona.

    • postScriptLocation: Podaj pełną ścieżkę do skryptu na maszynie wirtualnej, która ma zostać zarchiwizowana.

    • preScriptParams: Podaj opcjonalne parametry, które należy przekazać do skryptu. 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 skryptu, jeśli wystąpi błąd przed zakończeniem. 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 indywidualne limity czasu dla skryptu wstępnego i skryptu końcowego (maksymalna wartość może wynosić 1800).

    • continueBackupOnFailure: ustaw tę wartość na true , jeśli chcesz, aby Azure Backup powróciła do spójnej kopii zapasowej spójnego systemu plików/awarii, jeśli skrypt wstępny lub skrypt końcowy 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 powraca do kopii zapasowej spójnej podczas awarii niezależnie od 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 należy wywołać narzędzie fsfreeze systemu Linux 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, przez jaki rozszerzenie ma być uśpione pomiędzy kolejnymi odpytywaniami 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órą może przyjąć, wynoszą 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ą za pomocą Utwórz kopię zapasową maszyn wirtualnych Azure w magazynach Recovery Services.

Rozwiązywanie problemów z błędami tworzenia kopii zapasowych spójnych na poziomie aplikacji maszyny wirtualnej z systemem Linux platformy Azure

Upewnij się, że dodałeś odpowiednie rejestrowanie podczas pisania skryptu wstępnego i końcowego, a następnie przejrzyj dzienniki skryptów, aby rozwiązać wszelkie 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 Skrypt zwrócił błąd, więc kopia zapasowa może nie być spójna z aplikacją. Zapoznaj się z dziennikami błędów skryptu, aby rozwiązać problem.
Post-ScriptExecutionFailed (Niepowodzenie skryptu) Skrypt końcowy zwrócił błąd, który może mieć wpływ na stan aplikacji. Spójrz na dzienniki błędów skryptu, aby rozwiązać problem i sprawdzić stan aplikacji.
Pre-ScriptNotFound Skrypt nie został znaleziony w lokalizacji określonej w pliku konfiguracji VMSnapshotScriptPluginConfig.json . Upewnij się, że skrypt wstępny jest obecny w ścieżce określonej w pliku konfiguracji, aby zapewnić kopię zapasową spójną na poziomie aplikacji.
Post-ScriptNotFound Skrypt końcowy nie został znaleziony w lokalizacji określonej w pliku konfiguracyjnym VMSnapshotScriptPluginConfig.json . Upewnij się, że skrypt końcowy jest obecny w ścieżce określonej w pliku konfiguracji, aby zapewnić kopię zapasową spójną na poziomie aplikacji.
NiepoprawnyPluginhostFile Plik Pluginhost , który jest dostarczany z rozszerzeniem VmSnapshotLinux, jest uszkodzony, więc skrypt wstępny i skrypt końcowy nie mogą być uruchamiane, a kopia zapasowa nie będzie spójna z aplikacją. Odinstaluj rozszerzenie VmSnapshotLinux , a zostanie ono automatycznie zainstalowane ponownie z następną kopią zapasową, aby rozwiązać problem.
Nieprawidłowy plik JSONConfigFile Plik VMSnapshotScriptPluginConfig.json jest niepoprawny, więc nie można uruchomić skryptu wstępnego i końcowego, a kopia zapasowa nie będzie spójna z aplikacją. 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ć 700 uprawnień (czyli tylko właściciel powinien mieć uprawnienia do odczytu, zapisu i wykonywania ). Upewnij się, że użytkownik root jest właścicielem pliku skryptu i że tylko właściciel ma uprawnienia do odczytu, zapisu i wykonywania .
InsufficientPermissionforPost-Script W przypadku uruchamiania skryptów użytkownik root powinien być właścicielem pliku, a plik powinien mieć 700 uprawnień (czyli tylko właściciel powinien mieć uprawnienia do odczytu, zapisu i wykonywania ). Upewnij się, że użytkownik root jest właścicielem pliku skryptu i że tylko właściciel ma uprawnienia do odczytu, zapisu i wykonywania .
Limit czasu wstępnego skryptu Upłynął limit czasu wykonywania kopii zapasowej spójnej na poziomie aplikacji przed skryptem. Sprawdź skrypt i zwiększ limit czasu w pliku VMSnapshotScriptPluginConfig.json , który znajduje się pod adresem /etc/azure.
Post-ScriptTimeout (limit czasu postskryptu) Upłynął limit czasu wykonywania skryptów końcowych kopii zapasowej spójnej na poziomie aplikacji. Sprawdź skrypt i zwiększ limit czasu w pliku VMSnapshotScriptPluginConfig.json , który znajduje się pod adresem /etc/azure.

Dalsze kroki

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