災難恢複概述、策略和評估
2022年4月25日 在產品
當決定災難恢複(DR)策略,對於大多數應用程序和係統,符合整個公司評估優先級、功能,限製,和成本是必要的。
雖然忍不住想這次談話的範圍擴大到各種技術、供應商、雲提供商,和本地係統,我們將隻關注涉及博士磚工作區。博士信息特定於雲基礎設施AWS,Azure,GCP現成的其他來源。
此外,博士如何適應業務連續性(BC),它的關係高可用性(HA)是超出了本係列的範圍。足以說,僅僅利用HA服務是不夠的博士一個全麵的解決方案。
這個係列的初始部分博士將專注於確定一個適當的戰略和實現關鍵用例和/或磚上運行的工作負載。我們將討論一些基本概念博士,但我們鼓勵讀者去磚文檔(AWS|Azure|GCP博士)的初始概述術語,工作流和高級步驟來實現解決方案。
災難恢複規劃一個磚的工作區
定義損失限製
確定一個可接受的恢複點目標(RPO),最大的有針對性的數據可能會丟失,並且恢複時間目標(RTO),有針對性的持續時間和服務水平在一個業務流程必須恢複,是一項基本一步實現戰略博士用例或磚上運行的工作負載。RTO和RPO應該決定在特定的上下文,例如用例或工作負載水平,和彼此獨立的。這些定義的損失限製在災難事件中,博士會通知相應的策略,並確定實現博士應該以多快的速度從災難事件中恢複過來。
RPO磚對象
磚對象應該與管理CI / CD和基礎設施代碼(IaC)工具,如起程拓殖(TF)博士,複製到一個網站。磚回購(AWS|Azure|GCP)提供git集成,促進了把源代碼從配置一個或多個工作區git提供者,例如,GitHub。
磚REST api (AWS|Azure|GCP)可以用於發布版本對象DR站點的CI / CD管道,然而,這種方法有兩個缺陷。首先,REST api將不會追蹤目標工作區的狀態,需要額外的努力,以確保所有操作是安全的和有效的。第二,一個額外的框架需要安排和執行所需的所有API調用。
起程拓殖消除了需要跟蹤狀態手動版本,然後應用需要改變目標工作區,代表用戶進行任何必要的更改聲明式的方式。進一步利用TF是磚起程拓殖的提供者允許與幾乎所有Dataricks博士和雲資源所需的解決方案。最後,磚是一種官方合作夥伴Hashicorp,起程拓殖可以支持多重雲部署。磚起程拓殖的提供者將被用來演示實現博士作為本係列的一部分。DB-Sync是一個命令行工具,磚起程拓殖的提供者可能更容易為non-TF用戶使用用於管理複製。
磚的RPO對象將最近的快照的時差的事件對象的狀態和災難。係統RPO應該確定最大RPO的所有對象。
RPO數據庫和表
多個存儲係統可以要求任何給定的工作負載。數據源Apache火花通過訪問JDBC,如OLAP和OLTP係統,將有選擇博士通過雲提供商提供。博士這些係統應該被認為是作用的解決方案,但不會深入討論每一個雲提供商以來不同的備份和複製。相反,重點將邏輯數據庫和表上創建的文件對象存儲。
每個磚工作空間的使用磚文件係統(DBFS),一個抽象對象存儲。DBFS存儲重要的使用,生產不recommnded源代碼和數據資產。所有用戶必須讀和寫訪問對象存儲安裝DBFS,除了DBFS根。此外,DBFS根不支持原生雲複製服務,僅僅依賴的組合三角洲深克隆,將引發工作,DBFS CLI出口數據。由於這些限製,任何必須複製到DR站點不應該存儲在DBFS。
對象存儲可以安裝DBFS (AWS|Azure|GCP),這將創建一個指向外部存儲的指針。山可以防止數據被上本地同步DBFS但需要更新的一部分山博士因為掛載點的路徑將需要直接向不同的對象存儲在DR站點。坐騎很難管理和可能指向錯誤的存儲,這就需要額外的自動化博士和驗證的解決方案。直接訪問對象存儲在外部表可以減少複雜性和點故障。
用戶可以創建使用Apache火花管理和非托管表(AWS|Azure|GCP)。metastore將管理數據管理表和管理表的默認存儲位置DBFS“蜂巢/ user / /倉庫”。如果管理表是用於工作負載需要博士,應該從DBFS遷移數據,並使用新的數據庫與指定的位置參數,以避免默認位置。
一個非托管表時創建的位置參數中指定的創建表的聲明。這將保存在指定位置表的數據,也不會被刪除,如果從metastore表被刪除。metastore仍然可以是一個必需的組件在非托管表博士如果源代碼訪問表中定義的metastore利用SparkSQL或“表”的方法(Python|ScalaSparkSession)。
直接使用一個對象存儲,例如,Amazon S3,允許使用Geo-Redundant存儲如果需要和避免與DBFS相關聯的問題。
數據複製
對於博士來說,推薦的存儲格式三角洲湖。拚花很容易轉換為三角洲格式與“轉換為三角洲”命令。酸的保證三角洲湖幾乎消除數據腐敗風險在故障轉移和退回從博士的網站。此外,深克隆應該被用來複製所有三角洲表。它提供了一個增量更新能力,避免不必要的數據傳輸成本和額外的內置保證數據一致性,沒有與阿茲,提出Geo-Redundant複製(嗯……)服務。進一步的缺點是單向的,嗯……是複製的創建需要額外的流程當退回到主網站DR站點,而深克隆可以在兩個方向上工作,主站點的DR站點,反之亦然。
下圖演示了使用嗯……和三角洲的初始缺陷表:
使用嗯……和δ表,需要創建額外的過程將證明一個完整的表版本(δAWS|Azure|GCPDR站點)。
比較上麵的圖形使用三角洲深克隆來簡化複製博士,深克隆確保最新版本的三角洲表全部複製,保證文件順序,和複製時提供了額外的控製:
深複製克隆將用於展示δ表從初級到中級站點作為這個博客係列的一部分。
文件不能被轉換為δ應該依靠嗯……。在這種情況下,這些文件應該比δ文件存儲在不同的位置,以避免衝突從運行嗯……和三角洲深克隆。DR站點中的一個進程需要落實到位以保證完整的數據集使用嗯……時可用性與業務;然而,這將不需要使用時深克隆。
的數據在一個對象存儲,RPO取決於最後的時候複製使用三角洲深克隆或提供的sla的雲提供商使用Geo-Redundant存儲。
Metastore複製
幾個metastore磚的部署選項可用,我們將簡要地考慮每一個。
開始使用默認metastore,磚部署有一個內部統一目錄(AWS|Azure|GCP)或蜂巢(AWS|Azure|GCP)metastore所有集群和SQL訪問端點堅持表元數據。自定義腳本需要出口表和表從內部蜂巢metastore acl。這夫妻RPO磚工作區,這意味著RPO管理所需的元數據表將在小時時差當這些內部metastore表和表之間的acl是去年出口和災難事件。
集群可以連接到一個現有的,外部Apache蜂巢metastore (AWS|Azure|GCP)。外部metastore允許額外的複製選項通過利用雲提供商服務底層數據庫實例。例如,利用multi-az生於雲端數據庫實例或數據庫,如亞馬遜極光,metastore複製。這個選項用於磚在AWS, Azure磚,磚豐富。RPO取決於sla雲提供商提供的服務如果沒有手動或自動導出過程。
的能力使用膠水目錄作為一個metastore是獨特的在AWS磚部署。RPO膠水的目錄將取決於複製工具和/或提供sla AWS。
恢複時間目標(RTO)磚
RTO將測量從主站點的磚工作空間的不可用時間,DR站點的工作區達到預定的作業水平以支持關鍵活動。
一般來說,假設數據已經複製,這將需要源代碼和依賴項工作量/用例可用,居住集群或SQL端點,metastore如果訪問數據通過數據庫和表(而不是直接訪問文件)RTO之前實現。
RTO博士將取決於選擇的策略和實現工作負載或用例。
災難恢複策略
災難恢複策略可以大致分為兩類:主動/被動和主動/主動。在主動/被動實現中,主站點用於正常操作和保持活躍。然而,博士(或中學)網站需要預先計劃好的步驟,根據一個特定的實現,是要晉升為初級。而在主動/主動戰略,兩個站點保持全麵運作。
主動/被動策略
指示燈和備份與恢複的主要區別是立即可用的數據,包括metastore如果讀寫不基於路徑。一些基礎設施,通常沒有或小成本、供應。磚的工作空間,這將意味著一個工作區,配置所需的雲基礎設施部署與要求磚對象(源代碼、配置實例簡介,服務主體,等等),但集群和SQL端點將不會創建。
- 備份和恢複很大程度上被認為是最有效的RTO。備份主站點上創建和複製到DR站點。區域故障轉移、基礎設施必須恢複以及執行康複數據備份。對於一個對象存儲,數據仍將需要複製從主站點。
在這個場景中,所有必要的基礎設施和配置數據磚對象將在DR站點上可用但不供應。基於文件的表可能需要回填和其他數據源需要從最近的備份恢複。由於大數據的本質,RTO可以天。
- 在一個指示燈實現,數據存儲和數據庫是最新的基於定義的RPO,和他們準備服務工作負載。其他基礎設施元素定義,通常通過一個基礎設施代碼(IaC)工具,而不是部署。
- 熱備用保持實時數據存儲和數據庫,除了最低生活部署。DR站點必須擴大處理所有生產工作負載。
建築的指示燈,Warm備用部署額外的對象。例如,特定的集群或SQL端點可能被創建,但不啟動,減少下遊RTO為數據服務應用程序。這也可以促進連續測試可以增加信心解決博士和博士的健康網站。集群和SQL端點可能定期打開,以防止刪除,用於測試,甚至不停地打開在極端情況下,有一個非常嚴格的RTO。
主動/主動策略(多站點)
多站點實現博士,博士主要和網站應該完全部署和操作。在發生災難事件,隻需要將新請求路由到DR站點而不是主要的。多站點提供了最有效的RTO但也是最昂貴的和複雜的。
(即複雜性起源於同步數據。表和視圖),用戶配置文件,定義集群,工作定義,源代碼,圖書館,init腳本和其他構件之間的主和工作區博士。進一步複雜化的是硬編碼連接字符串、個人訪問令牌(PAT令牌),和uri的API調用各種腳本和代碼。
博士確定正確的戰略
分析係統成為更重要的是,失敗將導致一個更大的對企業的影響和變得更加昂貴,和潛在的故障點是不斷增長的環境變得更加複雜和相互關聯的。上執行影響分析結果,用例和/或工作負載來確定博士是必要的,並確保團隊準備的實現已經成為一個重要的活動。
每個上市策略之間存在權衡。最終,RPO, RTO將通知應該選擇哪一個工作負載和用例。損失,金融和非金融,災難事件應該權衡成本實現和維護任何給定博士的策略。基於估計的數字,一個博士的策略應該選擇和實施,以確保服務的延續災難後及時破壞。
開始
博士確定一個解決方案是使用磚Lakehouse平台所需的應用程序可以防止潛在的損失和維護與消費者信任的平台。Beplay体育安卓版本博士正確的戰略和實施確保成本不得超過潛在損失(金融或非金融),同時提供服務恢複至關重要的應用程序和功能在發生災難。下麵的評估和指導執行的影響提供了一個起點博士和防範分析來確定一個適當的戰略和實施。