Red Hat Blog를 보다가 관심 가는 글이 보여서 AI번역+약간 교정해 보았습니다.
출처: https://developers.redhat.com/articles/2025/07/22/openshift-apis-data-protection-vm-pre-backup-hooks
OpenShift APIs for Data Protection은 Red Hat에서 제공하는 오퍼레이터 입니다 . Red Hat OpenShift 클러스터 에서 애플리케이션, 데이터 및 쿠버네티스 리소스의 백업, 복구 및 마이그레이션을 지원합니다. OpenShift APIs for Data Protection은 오픈소스 쿠버네티스 백업 도구인 Velero를 활용하고 클라우드 및 스토리지 제공업체와 통합하여 Red Hat OpenShift Container Platform 워크로드에 대한 포괄적인 데이터 보호를 제공합니다.
일부 시나리오에서는 가상 머신(VM)을 백업할 때 다음을 위해 가상 머신 내부에 사전 마이그레이션 후크가 필요합니다.
- 가상 머신 크기를 최소화하고, 백업 저장 공간을 절약하고, 로그 파일과 같은 불필요한 파일을 제거합니다.
- KVM에 대한 Postgres 일관된 시점 스냅샷을 얻으세요 .
- 파일 시스템 버퍼를 플러시합니다.
- 사용자 정의 애플리케이션 스크립트를 트리거합니다.
기존 OpenShift APIs for Data Protection 후크 솔루션( 백업 후크 생성 )은 게스트 VM에서는 작동하지 않습니다. 게스트 VM은 Pod 내에서만 후크를 실행할 수 있지만, 후크를 실행하기 위해 Kvirt 게스트 VM에 로그인할 수 있는 권한이나 구성이 없기 때문입니다. 이 문서에서는 OpenShift APIs for Data Protection을 사용하여 VM 백업을 수행하기 전에 작업을 실행하는 방법을 설명합니다.
백업 중 VM 사전 동결 후크
VM이 정지되기 전에 하나 이상의 스크립트를 실행할 수 있습니다. 스크립트 실행이 실패하거나 차단되어도 백업이 수행되는 데 지장은 없습니다. 따라서 스크립트는 백업의 조건이 될 수 없습니다.
스크립트를 추가하는 방법
스크립트는 가상 머신 내부에 /etc/qemu-ga/fsfreeze-hook.d에 위치하면 자동으로 실행됩니다.
후크 스크립트 로그는 /var/log/qga-fsfreeze-hook.log에 기록됩니다.
예를 들어, VM 백업 전에 파일을 삭제해야 한다고 가정해 보겠습니다. 이를 위해서는 VM 백업 전에 실행되는 후크를 생성하고, 백업 전에 삭제 스크립트를 실행하여 VM 크기를 최소화해야 합니다.
다음 단계를 따르면 이를 달성하는 데 도움이 됩니다.
- VM에 로그인합니다. 폴더
/etc/qemu-ga에는 다음이 포함되어 있습니다.- VM이 정지되기 전에 트리거되는 마스터 스크립트
fsfreeze-hook이며,fsfreeze-hook.d내부의 스크립트를 트리거합니다 . fsfreeze-hook.d폴더는 스크립트를 생성하고 동결되기 전에 실행하하는 것을 넣는 폴더 입니다.
- VM이 정지되기 전에 트리거되는 마스터 스크립트
- 로그 파일을 삭제하려면
purge.sh스크립트를 추가하세요 .
#!/bin/bash # Path to the folder that contains the log files DIR="root/my-app/logs" if [ -d "$DIR" ]; then rm -rf “$DIR”/* fi
chmod +x purge.sh명령으로 생성된 스크립트가 실행 가능하게 하세요 .- 삭제된 파일에 Linux 및 SELinux 에 대한 쓰기 권한이 있는지 확인하세요 (아래 SELinux에 대한 지침 참조).
중요 사항
이 문서에서는 OADP를 사용하여 VM 백업을 생성하는 방법을 설명합니다. 또한, OADP를 사용하여 VM을 복원하는 방법도 설명합니다 .
파일에 대한 다음과 같은 권한 규칙이 있어야 합니다.
- 스크립트는 Linux 루트 사용자 권한으로 실행됩니다.
- SELinux가 활성화된 경우, 스크립트가 파일에 대한 작업을 수행할 수 있도록 규칙을 따르세요. 자세한 내용은 이 블로그 를 참조하세요.
- 먼저
ausearch를 실행해서 SELinux 거부 모듈을 생성합니다. - 정책을 적용하기 위해
semodule를 실행합니다 (이 블로그 에서 예를 들어 정책을 적용하는 방법을 확인하세요). - SELinux 권한을 확인하려면:
- 대상 파일의 SELinux 사용자/역할을
ls -Z를 사용해서 확인합니다. - 스크립트의 권한을 이해하려면
echo $(id -Z) >> logfile.log를 사용하여 권한을 인쇄하세요.
- 대상 파일의 SELinux 사용자/역할을