Freenas 新功能 VMware-Snapshot

VMWare-snapshot setup

 

FreeNas 在 9.3 版時新增加了一個功能,除了原先ZFS檔案系統有的 snapshot 功能外,也跟 VMWare ESXi 設備整合可以做 snapshot,這次增加的功能其實在手冊上沒有說得很清楚,是上網找資料才看到有人實作出來並測試成功,覺得可以來玩玩看,請參考: https://b3n.org/freenas-9-3-on-vmware-esxi-6-0-guide/

 

原先 ZFS 做 snapshot 時會把目前檔案的狀態記錄起來,但是如果把虛擬機放在 FreeNas 的 NFS/iSCSI 的分享上就會產生 VM Guest 上面記憶體的資料有遺失的風險,比如說資料應該於此時由記憶體存檔但存到一半或不存檔,這樣會導致資料不完整性,更嚴重有可能會導致虛擬主機損毀。

為解決這個問題 FreeNas 做了一隻程式會於做 snapshot 的時候主動去通知 VMWare 的 DataStore,要求這個 DataStore 上面的 VM guest 做一次暫存資料寫入 (dirty memory to disk),來確保此時的備份資料狀態已經更新到最新狀態 (快速地建立一個 snapshot,完成處理後就立即刪除),這邊的設定是需要連結到 ESXi Host 或 vCenter 上,選擇 FreeNas 端的 Volume,然後選擇相對應的 DataStore 即可。(以上是我的理解有誤請糾正)

 

在安裝上請參考以上文章,因為我是利用現有的環境來做,所以沒有完全依照其步驟,同時這篇文章引起很多共響,有空也可以去拜讀看看,所以設定的步驟請參照,我只說明我的設定及測試的結果。

 

首先我的環境是 vCenter 6 但是 ESXi 都是 5.5 的版本,雖我們買了新的授權但是都還沒有更新,FreeNas 是安裝最新的 9.10 Stable 版本,實測前並執行了一次 Update,檔案分享是在原有的 volume 在切割一段出來,選擇 NFS 的分享模式,直接在vCenter 把這個分享加到 cluster 上面去.

 

接下來找兩台 windows 7 的測試主機,把資料搬到以上的 NFS 分享區上面,複製的同時順便設定 VMWare-snapshot 及 Periodic Snapshot Tasks 的排程,因為備份不太需要太過於密集執行,所以選擇每4小時做一次 snapshot;Freenas 軟體是安裝在舊的 Dell 1U的主機上,4G RAM,兩顆硬碟做 mirror,兩個網卡也做 LoadBalance.

Periodic Snapshot task setup
Periodic Snapshot task setup

 

由於這台主機實在很舊,前一陣子因為 HDD 故障的關係被打下來,現在換了一個新的 HDD 後重新服務,但速度實在粉慢,平均速度不到 10M Byte/Sec,複製過程中花了很多時間。

HDD Performance of old Dell
HDD Performance of old Dell

 

 

要留意的是在設定 VMWare-snapshot 的時候除了連線資訊外,要記得選對 ZFS Filesystem 要選擇 Freenas 的 volume,Datastore 選擇在 VMWare 環境的相對應 Datastore 喔,選錯了就變得沒有作用了.

VMWare-snapshot setup
VMWare-snapshot setup

 

接下來是測試,正常的環境下 freenas 會依照所訂的時間自動作 snapshot,依照先前的設定這些 snapshot 會被保留 14 天 (2周),要回復可以做整個 volume 的 Rollback,意思是所有的 VMWare Guest 狀態會完全恢復,這種方式套用在正式環境可能不太適用,但是在測試環境倒還不錯,如果有需要重複性去測試,或者是一些特定的教育訓練環境。

image004

 

 

 

全部回復模式只能回復最近的一次 snapshot,回復前要把 VMware Guest 關機,因為是複寫到原來的位置,開機中還原可能會導致一些無法預期的問題;還原時大概需要不到2秒的時間系統回報還原成功,此時就可以到 vCenter / Client 端去把關機的 VM Guest 啟動,此時就會恢復到 snapshot 的狀態,當然首次啟動 windows 7 會抱怨上次不是正常關機。

 

除了就少用到的整個 volume 回復,有另一種是把 snapshot clone 出來使用,只要點選後 Freenas 會自動在 volume Manager 多一個新的 volume 產生,如果名稱沒有改變,就會依照 snapshot 的名字來命名

clone vol from snapshot, freenas
clone vol from snapshot, freenas

 

此時就可以把 VM Guest 獨立複製出來使用。

 

如果再加上 Freenas 的 replication 的機制,甚至於可以把以上的備份 snapshot 傳輸到另一台在異地端的 Freenas,要做到異地備份是很輕鬆的事情,做到異地備援也可以把 Data lost 的時間再大幅縮短。

 

以上的方式還不建議放在正式環境或很重要性的服務,因為此機制雖驗證過是可以使用,但完整度及相容性還不一定,建議拿來做可有可無的服務,但其備份所花的空間及時間真的減少很多,各位要多多考慮未來的備份方式喔.

發表迴響