다음을 통해 공유


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

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

Azure Backup이 VM의 스냅샷을 만들 때 애플리케이션 일관성은 VM 복원 후에 애플리케이션이 올바르게 시작되도록 합니다. 이 동작을 수행하려면 Azure Resource Manager와 함께 배포된 Linux VM을 지원하는 Linux 규범 및 사후 스크립트 프레임워크를 사용합니다. 이러한 스크립트는 System Center Service Manager 또는 Windows와 함께 배포된 VM에는 작동하지 않습니다.

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

프레임워크는 VM 스냅샷을 만드는 동안 사용자 지정 프리 스크립트 및 포스트스크립트를 실행하는 옵션을 제공합니다. VM 스냅샷을 만들기 전에 프리스크립트가 실행됩니다. 사후 스크립트는 VM 스냅샷을 생성한 직후에 실행됩니다. 프리스크립트 및 포스트스크립트는 VM 스냅샷 중 애플리케이션과 환경을 유연하게 관리할 수 있도록 해줍니다.

규범은 I/O를 중지하고 메모리 내 콘텐츠를 디스크에 플러시하는 네이티브 애플리케이션 API를 호출합니다. 이러한 작업을 수행하면 스냅샷이 애플리케이션 일치를 보장합니다. 포스트스크립트는 네이티브 애플리케이션 API를 사용하여 I/O를 해동하므로 VM 스냅샷 후에 애플리케이션이 정상 작업을 다시 시작할 수 있습니다.

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

프리스크립트 및 포스트스크립트를 구성하려면 다음 단계를 수행합니다.

  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: 규범에 전달해야 하는 선택적 매개 변수를 제공합니다. 모든 매개 변수는 따옴표로 묶어야 합니다. 매개 변수를 여러 개 사용하는 경우 매개 변수를 쉼표로 분리합니다.
    • postScriptParams: 포스트스크립트로 전달되어야 하는 선택적 매개 변수를 제공합니다. 모든 매개 변수는 따옴표로 묶어야 합니다. 매개 변수를 여러 개 사용하는 경우 매개 변수를 쉼표로 분리합니다.
    • preScriptNoOfRetries: 종료하기 전에 오류가 발생할 경우 규범을 다시 시도해야 하는 횟수를 설정합니다. 0은 한 번의 시도만을 의미하며 오류가 있는 경우 다시 시도하지 않습니다.
    • postScriptNoOfRetries: 종료하기 전에 오류가 발생할 경우 포스트스크립트를 다시 시도해야 하는 횟수를 설정합니다. 0은 한 번의 시도만을 의미하며 오류가 있는 경우 다시 시도하지 않습니다.
    • timeoutInSeconds: 프리스크립트 및 포스트스크립트(최대값은 1800)에 대한 개별 시간 초과를 지정합니다.
    • continueBackupOnFailure: 프리스크립트 또는 포스크립트가 실패할 경우 Azure Backup을 파일 시스템 일관성/크래시 일관성 백업으로 전환하려면 이 값을 true로 설정합니다. 이 값을 false 로 설정하면 스크립트 오류가 발생하는 경우 백업이 실패합니다. (예외는 이 설정에 관계없이 크래시 일관성 백업으로 대체되는 단일 디스크 VM이 있는 경우입니다.) 값이 continueBackupOnFailurefalse로 설정되면 백업이 실패하면 지정된 시도 횟수에 대해 서비스의 재시도 논리에 따라 백업 작업이 다시 시도됩니다.
    • fsFreezeEnabled: 파일 시스템 일관성을 보장하기 위해 VM 스냅샷을 사용하는 동안 Linux fsfreeze 를 호출할지 여부를 지정합니다. 애플리케이션이 를 비활성화하도록 의존하지 않는 이상, 이 설정을 fsfreeze로 유지할 것을 권장합니다.
    • ScriptsExecutionPollTimeSeconds: 확장이 각 폴링 사이에 대기해야 하는 시간을 스크립트 실행에 맞춰 설정합니다. 예를 들어 값이 2이면, 확장은 사전 스크립트 또는 사후 스크립트 실행이 2초마다 완료되었는지 확인합니다. 걸릴 수 있는 최소값과 최대값은 각각 15입니다. 값은 항상 정수이어야 합니다.
  6. 이제 스크립트 프레임워크가 구성되었습니다. VM 백업이 이미 구성된 경우 다음 백업 시 스크립트가 호출되고 애플리케이션 일치 백업이 트리거됩니다. VM 백업이 구성되지 않은 경우, Azure 가상 머신을 Recovery Services 보관소에 백업하는 단계에 따라 백업을 구성합니다.

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

프리스크립트와 포스트스크립트를 작성하는 동안 적절한 로깅을 추가해야 합니다. 스크립트 로그를 검토하여 스크립트 문제를 해결합니다. 스크립트를 실행하는 데 여전히 문제가 있는 경우 다음 표를 참조하세요.

오류 오류 메시지 권장 작업
Pre-ScriptExecutionFailed 규범에서 오류를 반환했기 때문에 백업이 애플리케이션과 일치하지 않을 수 있습니다. 이 문제를 해결하려면 스크립트에 대한 오류 로그를 확인하세요.
Post-ScriptExecutionFailed 포스트스크립트는 애플리케이션 상태에 영향을 줄 수 있는 오류를 반환했습니다. 스크립트의 실패 로그를 확인하여 문제를 해결하고 애플리케이션 상태를 확인합니다.
Pre-ScriptNotFound VMSnapshotScriptPluginConfig.json 구성 파일에 지정된 위치에서 스크립트를 찾을 수 없습니다. 애플리케이션 일치 백업을 위해 사전 스크립트가 구성 파일에 지정된 경로에 있는지 확인하세요.
Post-ScriptNotFound VMSnapshotScriptPluginConfig.json 구성 파일에 지정된 위치에서 포스트스크립트를 찾을 수 없습니다. 애플리케이션 일치 백업을 보장하기 위해 구성 파일에 지정된 경로에 포스트스크립트가 있는지 확인합니다.
IncorrectPluginhostFile Pluginhost 확장자와 함께 제공되는 VmSnapshotLinux 파일이 손상되었으므로 프리스크립트와 포스크립트를 실행할 수 없고 백업이 애플리케이션 일관성에 맞지 않습니다. 확장을 제거합니다 VmSnapshotLinux . 문제를 해결하기 위해 다음 백업을 사용하여 자동으로 다시 설치합니다.
IncorrectJSONConfigFile VMSnapshotScriptPluginConfig.json 파일이 올바르지 않으므로 규범과 포스트스크립트를 실행할 수 없고 백업이 애플리케이션과 일치하지 않습니다. GitHub에서 복사본을 다운로드하고 다시 구성하세요.
InsufficientPermissionforPre-Script 스크립트를 실행하는 경우 루트 사용자가 파일의 소유자여야 합니다. 파일에는 700개의 권한이 있어야 합니다. 즉, 소유자만 읽기, 쓰기 및 실행 권한이 있어야 합니다. 루트 사용자가 스크립트 파일의 소유자이고 소유자만 읽기, 쓰기 및 실행 권한이 있는지 확인합니다.
InsufficientPermissionforPost-Script 스크립트를 실행하는 경우 루트 사용자가 파일의 소유자여야 합니다. 파일에는 700개의 권한이 있어야 합니다. 즉, 소유자만 읽기, 쓰기 및 실행 권한이 있어야 합니다. 루트 사용자가 스크립트 파일의 소유자이고 소유자만 읽기, 쓰기 및 실행 권한이 있는지 확인합니다.
Pre-ScriptTimeout 애플리케이션 일관성 백업에 대한 사전 스크립트 실행이 시간 초과되었습니다. 스크립트를 확인하고 /etc/azure에 있는 VMSnapshotScriptPluginConfig.json 파일에서 시간 제한을 늘입니다.
Post-ScriptTimeout 애플리케이션 일치 백업에 대한 사후 스크립트 실행 시간이 초과되었습니다. 스크립트를 확인하고 /etc/azure에 있는 VMSnapshotScriptPluginConfig.json 파일에서 시간 제한을 늘입니다.