다음을 통해 공유


Azure Backup을 사용하여 Azure Linux VM에 대한 애플리케이션 일치 백업 구성

이 문서에서는 Azure Backup을 사용하여 Azure 배포 Linux VM에 대한 애플리케이션 일치 백업을 만드는 방법을 설명합니다. 스크립트 프레임워크 구성 및 문제 해결에 대해 설명합니다.

Azure Backup이 VM의 스냅샷을 만들 때 애플리케이션 일관성은 VM 복원 후 애플리케이션이 올바르게 시작되도록 합니다. 이를 위해 Azure Resource Manager 배포 Linux VM을 지원하는 Linux 스크립트 및 사후 스크립트 프레임워크를 사용합니다. 그러나 이러한 스크립트는 Service Manager 배포 또는 Windows VM에서는 작동하지 않습니다.

프레임워크는 어떻게 작동하나요?

프레임워크는 VM 스냅샷을 만드는 동안 사용자 지정 스크립트 및 사후 스크립트를 실행할 수 있는 옵션을 제공합니다. Prescript는 VM 스냅샷을 만들기 직전에 실행되고, post script는 VM 스냅샷을 만든 직후에 실행됩니다. Prescripts 및 Post-Script는 VM 스냅샷을 만드는 동안 애플리케이션과 환경을 제어할 수 있는 유연성을 제공합니다.

Prescripts는 IO를 중지하고 메모리 내 콘텐츠를 디스크로 플러시하는 네이티브 애플리케이션 API를 호출합니다. 이러한 작업은 스냅샷이 애플리케이션 일관성을 유지하도록 합니다. 사후 스크립트는 네이티브 애플리케이션 API를 사용하여 IO를 재개하며, 이를 통해 애플리케이션이 VM 스냅샷 후 정상 작업을 재개할 수 있습니다.

Azure Linux VM에 대한 사전 스크립트 및 사후 스크립트 구성

Prescript 및 post-script를 구성하려면 다음 단계를 수행합니다.

  1. 백업하려는 Linux VM에 루트 사용자로 로그인합니다.

  2. GitHub에서 VMSnapshotScriptPluginConfig.json 다운로드하여 백업하려는 모든 VM의 /etc/azure 폴더에 복사합니다. /etc/azure 폴더가 없으면 만듭니다.

  3. 백업하려는 모든 VM에서 응용 프로그램에 대한 사전 스크립트 및 사후 스크립트를 복사합니다. VM의 모든 위치에 스크립트를 복사할 수 있습니다. VMSnapshotScriptPluginConfig.json 파일에서 스크립트 파일의 전체 경로를 업데이트해야 합니다.

  4. 다음 파일을 사용하려면 해당 권한이 있는지 확인합니다.

    • VMSnapshotScriptPluginConfig.json: 권한 600. 예를 들어, 루트 사용자만 이 파일에 대한 읽기쓰기 권한을 가져야 하며 어떤 사용자도 실행 권한을 가지지 않아야 합니다.

    • 사전 스크립트 파일: 권한 700. 예를 들어, 루트 사용자만 이 파일에 대한 읽기, 쓰기실행 권한을 가져야 합니다. 파일은 셸 스크립트일 것으로 예상되지만 이론적으로 이 스크립트는 Python 스크립트와 같은 다른 스크립트를 내부적으로 생성하거나 참조할 수 있습니다.

    • 포스트 스크립트 허가 700. 예를 들어, 루트 사용자만 이 파일에 대한 읽기, 쓰기실행 권한을 가져야 합니다. 파일은 셸 스크립트일 것으로 예상되지만 이론적으로 이 스크립트는 Python 스크립트와 같은 다른 스크립트를 내부적으로 생성하거나 참조할 수 있습니다.

    중요합니다

    프레임워크는 사용자에게 많은 기능을 제공합니다. 프레임워크를 보호하고 루트 사용자만 중요한 JSON 및 스크립트 파일에 액세스할 수 있도록 합니다. 요구 사항이 충족되지 않으면 스크립트가 실행되지 않아서 파일 시스템 작동이 중단되고 일관성 없는 백업이 만들어집니다.

  5. 다음에 설명된 대로 VMSnapshotScriptPluginConfig.json을 구성합니다.

    • pluginName: 이 필드를 있는 그대로 둡니다. 그렇지 않으면 스크립트가 예상대로 작동하지 않을 수 있습니다.

    • preScriptLocation: 백업할 VM에서 처방전의 전체 경로를 제공합니다.

    • postScriptLocation: 백업할 VM에서 사후 스크립트의 전체 경로를 제공합니다.

    • preScriptParams: prescript에 전달해야 하는 선택적 매개변수를 제공합니다. 모든 매개 변수는 따옴표로 묶어야 합니다. 매개 변수를 여러 개 사용하는 경우 매개 변수를 쉼표로 분리합니다.

    • postScriptParams: 사후 스크립트에 전달해야 하는 선택적 매개 변수를 제공합니다. 모든 매개 변수는 따옴표로 묶어야 합니다. 매개 변수를 여러 개 사용하는 경우 매개 변수를 쉼표로 분리합니다.

    • preScriptNoOfRetries: 종료하기 전에 오류가 있는 경우 처방을 재시도해야 하는 횟수를 설정합니다. 0은 한 번의 시도를 의미하고 실패의 경우 시도 없음을 의미합니다.

    • postScriptNoOfRetries: 종료하기 전에 모든 오류에서 사후 스크립트가 다시 시도되어야 하는 횟수를 설정합니다. 0은 한 번의 시도를 의미하고 실패의 경우 시도 없음을 의미합니다.

    • timeoutInSeconds: 스크립트 및 사후 스크립트에 대한 개별 시간 제한을 지정합니다(최대값은 1800일 수 있음).

    • continueBackupOnFailure: 처방 또는 사후 스크립트가 실패하는 경우 Azure Backup이 파일 시스템 일관성/충돌 일관성 백업으로 대체되도록 하려면 이 값을 true 로 설정합니다. 이 값을 false 로 설정하면 스크립트 오류가 있는 경우 백업이 실패합니다(이 설정에 관계없이 크래시 일관성 백업으로 대체되는 단일 디스크 VM이 있는 경우 제외). continueBackupOnFailure 값이 false로 설정된 경우 백업이 실패하면 서비스의 재시도 논리에 따라 백업 작업을 다시 시도합니다(규정된 시도 횟수).

    • fsFreezeEnabled: 파일 시스템 일관성을 보장하기 위해 VM 스냅샷을 만드는 동안 Linux fsfreeze를 호출해야 하는지 여부를 지정합니다. 애플리케이션이 fsfreeze 비활성화에 대한 종속성을 갖지 않는 한, 이 설정을 true로 유지하는 것이 좋습니다.

    • ScriptsExecutionPollTimeSeconds: 스크립트 실행에 대한 각 설문 조사 사이에 확장이 일시 중지해야 하는 시간을 설정합니다. 예를 들어 값이 2인 경우 확장은 사전/사후 스크립트 실행이 2초마다 완료되었는지 여부를 확인합니다. 사용할 수 있는 최소값 및 최대값은 각각 1과 5입니다. 값은 항상 정수이어야 합니다.

  6. 이제 스크립트 프레임워크가 구성되었습니다. VM 백업이 이미 구성된 경우 다음 백업은 스크립트를 호출하고 애플리케이션 일치 백업을 트리거합니다. VM 백업이 구성되지 않은 경우 Recovery Services 자격 증명 모음에 Azure 가상 머신 백업을 사용하여 구성합니다.

Azure Linux VM 애플리케이션 일치 백업 오류 문제 해결

prescript 및 post-script를 작성하는 동안 적절한 로깅을 추가하고 스크립트 로그를 검토하여 스크립트 문제를 해결해야 합니다. 스크립트를 실행하는 데 여전히 문제가 있는 경우 자세한 내용은 다음 표를 참조하십시오.

오류 오류 메시지 권장 작업
Pre-ScriptExecutionFailed prescript에서 오류를 반환했으므로 백업이 애플리케이션 일관성이 없을 수 있습니다. 스크립트의 실패 로그를 확인하여 문제를 해결합니다.
사후 ScriptExecutionFailed 사후 스크립트에서 응용 프로그램 상태에 영향을 줄 수 있는 오류를 반환했습니다. 스크립트에 대한 오류 로그를 확인하여 문제를 해결하고 애플리케이션 상태를 확인합니다.
Pre-ScriptNotFound (프리-스크립트NotFound) VMSnapshotScriptPluginConfig.json 구성 파일에 지정된 위치에서 처방전을 찾을 수 없습니다. 애플리케이션 일관성 백업을 보장하기 위해 구성 파일에 지정된 경로에 prescript가 있는지 확인합니다.
포스트-스크립트NotFound VMSnapshotScriptPluginConfig.json 구성 파일에 지정된 위치에서 사후 스크립트를 찾을 수 없습니다. 애플리케이션 일관성 백업을 보장하기 위해 구성 파일에 지정된 경로에 포스트 스크립트가 있는지 확인합니다.
잘못된 플러그인 호스트 파일 VmSnapshotLinux 확장과 Pluginhost 함께 제공되는 파일이 손상되어 prescript와 post-script를 실행할 수 없으며 백업이 응용 프로그램 일관성을 갖지 못합니다. VmSnapshotLinux 확장을 제거하면 문제를 해결하기 위해 다음 백업과 함께 자동으로 다시 설치됩니다.
잘못된 JSONConfigFile VMSnapshotScriptPluginConfig.json 파일이 올바르지 않으므로 prescript 및 post script를 실행할 수 없으며 백업이 애플리케이션 일관성을 갖지 못합니다. GitHub에서 복사본을 다운로드하고 다시 구성합니다.
InsufficientPermissionforPre-Script 스크립트를 실행하려면 루트 사용자가 파일의 소유자여야 하고 파일에 700 개의 권한이 있어야 합니다( 즉, 소유자읽기, 쓰기실행 권한을 가져야 함). 루트 사용자가 스크립트 파일의 소유자이고 해당 소유자읽기, 쓰기실행 권한을 가지고 있는지 확인합니다.
InsufficientPermissionforPost-Script 스크립트를 실행하려면 루트 사용자가 파일의 소유자여야 하고 파일에 700 개의 권한이 있어야 합니다( 즉, 소유자읽기, 쓰기실행 권한을 가져야 함). 루트 사용자가 스크립트 파일의 소유자이고 해당 소유자읽기, 쓰기실행 권한을 가지고 있는지 확인합니다.
Pre-ScriptTimeout 응용 프로그램 일치 백업 사전 스크립트의 실행 시간이 초과되었습니다. 스크립트를 확인하고 /etc/azure에 있는 VMSnapshotScriptPluginConfig.json 파일에서 제한 시간을 늘립니다.
포스트 스크립트 타임아웃 응용 프로그램 일치 백업 사후 스크립트의 실행 시간이 초과되었습니다. 스크립트를 확인하고 /etc/azure에 있는 VMSnapshotScriptPluginConfig.json 파일에서 제한 시간을 늘립니다.

다음 단계

Recovery Services 자격 증명 모음에 대한 VM 백업 구성