2014-09-22

Hyper-V VM Backup 方式, Replica 的替代方案 (自行撰寫 PowerShell 程式)

環境:
 1. 唯一一台 Hyper-V, 無法做複寫或叢集
 2. 只有一座 Hyper-V 叢集, 沒有其他 Hyper-V 主機

描述:
 上述狀況都無法進行 Hyper-V 複寫來作為備份策略
 如果用 Export-VM 的話, 若 VM 的 vhd 很大則會佔用大量 Disk I/O

解決方式:
 自行撰寫 PowerShell 程式, 利用 CheckPoint 功能土砲差異化備份 (與 Replica 雷同)

預設條件:
 VM 本身除了備份 Powershell 所建立的 CheckPoint 外不可以有其他 CheckPoint
 註: Production 環境的 VM 本來就不該有 CheckPoint, 會影響運作效率

程式運作邏輯:
 1. 建立 CheckPoint 使 VM 原始 vhd 停止寫入, 新的變更都會寫在 CheckPoint 所建立的差異磁碟 avhd
  且該 CheckPoint 會將當時的記憶體寫入成檔案, 等於 VM Pause
 2. 將上述 CheckPoint 資料複製出來作為備份, 未來就還原該 CheckPoint, 達到備份還原目的

可達到的目標:
 1. 可進行 VM 線上差異化備份, 不用每次備份都 Export, 佔用大量 I/O
 2. 可以在允許 Down Time 較久的前提下手動做不停機 Migration
  與 Export 後再 Import 是一樣的道理, 只是使用的是差異化磁碟

歷史:
 2014.09.24 加入備份檔案檢查機制
 2014.10.25 1. 程式開始時先檢查備份路徑如果不能存取就結束
         (先嘗試建立, 不能建立就是失敗, 目標如果是網路磁碟機, 可能連線失敗)
        2. 程式開始時先檢查指定的 VM 如果不存在就結束