Proxmox의 Windows 게스트에 대한 이전 스냅샷 스크립트 후크?

Proxmox의 Windows 게스트에 대한 이전 스냅샷 스크립트 후크?

MSSQL Express를 실행할 Windows 10 게스트로 Proxmox 서버를 설정했습니다. Windows 게스트에는 QEMU 게스트 에이전트가 설치되어 작동 중입니다. 백업의 경우 Proxmox Backup을 실행하는 별도의 서버가 있는데, 이 서버는 이미 일주일에 한 번(중지 모드) 게스트의 전체 백업을 수행하도록 예약되어 있습니다. 또한 액세스 중단이 거의 또는 전혀 없이 더 자주 스냅샷 백업이 필요하지만 단순히 활성 데이터베이스가 있는 파일 시스템을 "고정"하는 것은 데이터 불일치 가능성으로 인해 문제가 됩니다.

Linux 게스트의 MySQL인 경우 fsfreeze-hook에 스크립트를 추가하는 형태의 솔루션이 이미 있습니다.레포에 포함되어 있습니다. 그러나 내가 찾을 수 있는 구체적인 정보가 거의 없는 것으로 보아 QEMU 게스트 에이전트의 Windows 빌드에는 이 전체 기능이 누락된 것 같습니다.

Windows에서 유사한 게스트 후크 스크립트를 구현하려면 어떻게 해야 합니까? 이상적으로는 데이터베이스를 스냅샷을 생성할 수 있는 안전한 상태로 만들기 위해 스냅샷이 시작되기 직전에 스크립트가 호출됩니다.

답변1

를 사용하여 Windows 시스템에서 스냅샷을 스크립팅할 수 있어야 합니다 vssadmin create shadow. 그러나 다음 사항에 유의하십시오.

  • Windows 10의 vss 스냅샷은 스냅샷 데이터 손상으로 인해 사용할 수 없다는 평판이 있습니다. (저는 를 통해 일부 스냅샷 파일을 복구하려고 할 때 이 문제를 직접 경험했습니다 ShadowExplorer)

  • 모든 최신 데이터베이스 엔진(읽기: 거의 모든 예상 MyISAM)은 전원 손실이나 충돌 일관성 백업에서 살아남기 위해 저널링 및/또는 WAL을 사용합니다.

전체 VM 백업을 수행하는 것 외에도 가능하면 다른 위치(예: 네트워크 공유)에서 스크립트로 작성된 데이터베이스 덤프를 정기적으로 수행하는 것이 좋습니다.

답변2

나는 여기의 요구 사항을 이해하지만 불행히도 "대체" 가상화 플랫폼이 Microsoft의 속임수를 처리하는 것은 쉽지 않습니다. Citrix조차도 xenserver의 정지 스냅샷을 포기했다고 생각하신다면 여기서의 어려움을 이해하실 것입니다.

SSH나 Powershell을 통해 vssadmin create Shadow를 호출해 볼 수도 있겠지만 실제로 시도해 본 적은 없습니다.

내가 아는 유일한 방법은확실하게Proxmox와 같은 것을 사용하여 엔터프라이즈 수준에서 Windows VM의 백업을 유지 관리하는 방법은 다음과 같습니다.

  1. 구체적으로 SQL Server 시스템에 대해 이야기하고 있으므로 SQL Server 자체 기능을 사용하여 백업하므로 데이터를 분리된 상태로 유지합니다. OS는 무엇이든 사용할 수 있으며, 아니면 예비/복제 SQL Server 설치를 유지할 수도 있습니다(중지해도 라이선스 위반 없음). 그런데 SQL Server Express를 사용하고 있는데, 예약된 작업을 할 수 없어 번거롭기 때문에 다른 것을 찾아야 합니다.
  2. VM 내부에서 Windows(서버) 백업을 사용하고 백업 수행 후 스냅샷을 찍는 ZFS 공유 폴더와 결합하여 스토리지 관리 측면에서 보관하려는 기록을 실제로 제어할 수 있습니다. 이것은 무료이며 실제로 꽤 잘 작동합니다. Windows 설치 ISO를 부팅하고 VM 내부에서 가짜 "베어 메탈" 복원을 수행해야 하므로 복구가 가장 빠르지는 않습니다. SQL Server VSS 기록기를 시작해야 하며 이를 통해 SQL Server의 일관된 백업도 제공되어야 합니다.이론에 의하면. 저는 개발 및 테스트 환경에서 이 작업을 정기적으로 수행하지만 프로덕션은 다른 짐승이고 문서도 가장 명확하지 않습니다(Microsoft에게 감사드립니다. 평소처럼 잘하셨습니다).
  3. Windows 백업보다 더 나은 작업을 수행하지만 VM 내부에서 다시 수행하는 다른 인증된 백업 솔루션을 사용하십시오. 많은 VM에 대한 라이선스를 구입해야 한다면 여전히 비용이 많이 들기 때문에 이 시점에서는 큰 회사를 선택하는 것을 고려해 보겠습니다.

사실, Proxmox에 대해 문의하시는 것을 알고 있지만 전문적으로 중요한 데이터가 포함된 Windows 시스템을 관리하는 가장 좋은 방법은 Veeam Backup과 함께 VMWare vSphere 또는 Hyper-V를 사용하는 것입니다. 이는 가장 비용이 많이 드는 솔루션이지만 재해 복구를 위한 가장 멋진 솔루션이기도 합니다. 예를 들어 백업 및 기타 멋진 기능에서 머신을 실행할 수 있습니다. 나는 아무것도 광고하지 않습니다. 나는 의미가 있는 거의 모든 가상화 플랫폼을 경험했고, Windows로 가면 바로 그렇습니다.

답변3

이제신뢰할 수 없는 방법특히 Proxmox에서 SQL Server 백업을 수행하기 위해 귀하가 요청한 내용을 정확하게 준수하도록 이전 답변을 수정하고 있습니다. 나는 이것이 최선의 방법은 아니라는 점을 강조하고 싶지만 VMWare에서도 그런 일이 일어나는 것을 보았습니다(그건 어리석습니다).

당신이 할 수 있는 일은 다음과 같습니다:

  • 이제 Windows에 OpenSSH 서버가 설치되었습니다.

  • 여기에 설명된 대로 proxmox 백업에서 후크를 설정합니다(단, 웹 GUI가 아닌 명령줄에서 백업을 실행해야 함).https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_hook_scripts;이렇게 하면 SSH를 통해 Windows VM 내부에서 무언가를 실행하는 스크립트를 실행할 수 있습니다.

  • 내가 실행할 스크립트는 VSSADMIN이 아니라 다음과 같습니다.

    SqlCmd -E -S LOCALHOST -Q "BACKUP DATABASE <DATABASENAME> TO DISK ='<PATH>'" 또는 증분 백업 등과 같이 더 복잡한 것일 수도 있습니다. SQL 스크립트를 사용하는 경우 백업을 더 잘 처리하기 위해 이 사람이 제공하는 스크립트를 설치할 수도 있습니다.https://ola.hallengren.com/sql-server-backup.html.

  • 이 시점에서는 Proxmox를 사용하여 백업을 백업합니다. 버퍼가 플러시될 때까지 기다리는 경우 일관성이 보장됩니다(이것이 전문적인 관점에서 신뢰할 수 있는 것으로 간주될 수 없는 이유 중 하나입니다.)

그러나 내가 이것을 좋아하지 않는 이유와 VSS 스냅샷을 수행하라는 이전 제안은 다음과 같습니다.

  • 지나치게 복잡해 보이고 여전히 신뢰할 수 없는 작업을 수행하고 있습니다.
  • 실제로 SQL Server VSS 기록기 서비스에 의존해야 하는 경우(필수이며 일관성이 전혀 없음) Windows 백업 + 스토리지 스냅샷을 사용하겠다는 이전 제안으로 되돌릴 것입니다. 이는 단순히 VSS를 호출하는 것보다 관리하기가 더 좋습니다. 스크립트를 사용하여 백업을 백업합니다.

Proxmox, XCP-ng 등의 DB 머신의 경우 머신으로 백업하는 데 신경을 쓴 적이 없습니다. 중요한 애플리케이션인 경우 일반적으로 그래야 하므로 DB 서버만 포함되어 있는지 확인하면 됩니다. 내 생각엔 그 기계를 백업하는 건 시간 낭비야. 도커 컨테이너/VM을 사용하면 몇 분 안에 다시 작동할 수 있기 때문에 항상 외부 저장소(스크립트, 예약된 작업, mysqldump, SQL Server 에이전트, sqlcmd 포함)에 백업합니다. 실제로 재해 복구가 필요한 경우 미리 준비할 수 있습니다. 차지하기도 합니다훨씬 적은 공간.

관련 정보