針對 Linux 虛擬機,利用 Azure Backup 持續備份應用程式

原文章作者:Anurag Mehrotra

今天想告訴大家的是,利用 Azure Backup,針對 Azure 上 Linux VM 的應用程式一致性備份現在已經正式推出了!去年就有這個功能的公開預覽版,很多客戶已經利用這個架構備份 Oracle、MySQL、Mongo DB、SAP HANA、PostGreSQL 等。

什麼是應用程式一致性備份?

應用程式一致性備份可以確保資料備份在事務上都一致,且應用程式在 VM 還原後,會隨著 VM 開機而啟動。為了確保備份的一致性,應用程式會被暫停,且在擷取 VM 快照時,不能有未完成的事務在運行。

Windows 有 Volume Snapshot Service (VSS) 框架來確保應用程式一致的 VM 備份,但是沒有針對 Linux 的通用框架。隨著越來越多人採用 Azure Linux VM,在 Azure VM 內運行關鍵企業應用程式備份的需求也不斷增加。我們引入了類似 VSS 的通用框架,來確保在任何 Linux 發行版上運行的 Linux 應用程式,都能有一致的 VM 應用程式備份。作為 VM 備份過程的一部分,該框架讓您可以彈性的的執行自訂前置指令碼和後置指令碼。這些指令碼可以在 VM 快照時,終止應用程式 IOs,以確保應用程式一致性。

事實上,該框架功能更強大,因為您可以透過調用本機的備份 API,作為 VM 快照的一部分,來實現應用程式本機備份。然後,Azure Backup 會將此資料移至離線復原服務保存庫,以避免 VM 損毀、VM 被刪除,或受災難恢復情況影響。所有這些都不需要關閉 VM。

主要功能

  • 輕鬆測試並復原應用程式資料: 現在您可以利用 iSCSI 直接從復原點安裝應用程式。這可以幫助您在不需複寫任何備份資料的情形下,快速驗證恢復點。然後,您可以在不需復原整個 VM 的狀況下,復原特定的應用程式檔案。例如,當運行 MySQL 的 Azure Linux VM 的備份時,您可以從雲端復原點安裝 .sql data dump,直接將 MySQL 資料庫附加到此檔案,并快速驗證備份或檢索單個項目(如:表格),無需下載整個 data dump。
  • 改善監控: 在此版本中,任何與框架相關的錯誤都會出現在備份作業中,來幫助您識別並輕鬆解決問題。例如,如果您為程式腳本設定了"失敗依然繼續”,那麼即使檔案系統崩潰,備份作業依然會持續。但是,備份作業會顯示“已完成但內含警告”,並提供詳細的錯誤訊息和建議的步驟來修復腳本錯誤。
  • 應用程式和發行版未知: 該框架不受 Linux 發行版和版本限制,只要訪客的應用程式有 API 可以暫停和復原應用程式 IO,就可以無縫支持所有受支援的 Linux 發行版
  • GitHub 上的範例腳本: 我們正在與合作夥伴及 ISV 合作,在 GitHub 上為受歡迎的 Linux 應用程式提供開源腳本。在此版本中,我們為 MySQL、Oracle 和 Caché 制定了這些腳本。
  • 利用 Azure CL 進行大規模自動化: 您現在可以用 Azure CLI 按比例設定、管理和自動執行 Azure 備份作業。利用 CLI 功能,例如:針對多數常見操作、分頁完成 (tab completion)、pipe-able 輸出功能,配有智能默認設定,讓您可以簡單的管理 VM 備份和復原操作。除了配置備份和還原之外,您還可以查詢命令輸出以自動執行其他管理任務。例如,可以用程式碼檢索備份狀態,並且可以根據狀態啟動後續操作。

現在開始入門

以下影片會詳細介紹如何設定執行前置與後置腳本的框架。更多訊息請參閱:Linux VM 應用程式一致性備份的配置步驟

您現在可以直接從 VM 備份安裝應用程式來驗證您的資料,且無需複寫和備份資料。您可以看下面的影片來了解更多資訊。


客戶成功案例

The Open University (OU) 利用 Azure Linux 一致性備份解決方案為一套建在 Azure 上的虛擬學習環境提供一致的、基於映像的 Linux 資料庫伺服器備份。

OU 運行多個虛擬學習環境,例如位於英國 Milton Keynes 的地端資料中心,現在開始在 Azure 部署新的虛擬學習環境。透過使用 Azure Backup 和 Azure Linux 一致性備份解決方案,他們可以採用一致的 Linux 資料庫備份方法,讓他們能夠簡化 Azure 託管的新學習環境之部署、備份和復原。

"pre-freeze 和 post-freeze 過程幾乎和我們在 Linux 資料中心伺服器地端虛擬機映像級的備份解決方案一樣,這讓我們可以在不修改的情形下,使用現有封裝好的 pre-freeze 和 post-freeze 腳本。這讓我們能更簡單的部署 Azure 虛擬學習環境,並允許我們在使用 Azure 機器備份的同時,確保資料庫備份的一致性。"

- Gareth Robins,系統工程師,IT 服務與支援,The Open University

微軟合作夥伴 Intercept,針對在 Azure Linux VM 中運行的 Oracle 資料庫做了應用程式一致性備份。以下是 Intercept 對該功能的回饋。

“我們為我們的其中一個客戶實施了針對 Linux 功能的應用程式一致性備份,以確保 Azure VM 中的 Oracle 資料庫有持續備份。我們的客戶希望他們的備份工具能盡量簡單,並且他們更喜歡 Azure 本機解決方案,以便於管理並為所有 Azure 資源提供一致的備份體驗,而針對 Linux 的 Azure 應用程式一致性備份實現了這件事。“

- Remco Vrielink,Intercept

Impacting SA 針對 MySQL 和 MongoDB 嘗試了這種解決方案,並且他們的復原時間顯著的提高(高達70%),因為他們只需要復原特定的應用程式文件而不是整個虛擬機。以下是 Impacting SA 的回饋。

“啟動這個功能很容易,因為我們只需要遵循官方文件和指南。他們簡單明了,易於理解。這項功能的一個好處是,它減少了備份時間,從啟動的那一刻起,直到我們復原它為止整個時間都縮短了。與之前的流程相比,備份復原的速度提高了 70% 左右,從 4 小時降至 20 分鐘左右。“

針對 Oracle DB 的範例腳本

我們看到許多客戶使用我們的 MySQL 和 Oracle 解決方案,而 MySQL 開源腳本已經上傳到我們的 GitHub 上,現在我們添加了 Oracle 腳本範例。您建立自己的腳本時可以參考它,並利用此框架的強大功能。

尋找開源社區貢獻

為了讓這個框架具有通用性,並支援各種應用程式,如 Windows VSS,我們號召開發人員、ISV、技術愛好者,和合作廠商到 GitHub 貢獻開源腳本。腳本可以提供給所有人直接使用,或根據其需求定制。若您有興趣參與,請發送電子郵件至 linuxazurebackupteam@service.microsoft.com,我們會與您一起在 GitHub 上發布它們、解釋使用指南,並確保您的貢獻被認證。

相關的連結與額外的資訊