日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深度解读,In-consistent, Crash-consistent, Application-consistent

發布時間:2024/1/18 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度解读,In-consistent, Crash-consistent, Application-consistent 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通常在對數據進行備份時,存在以下三種數據保護的一致性:

1、不一致備份(In-consistent backup),表示備份的數據是正在改變的數據;

2、崩潰一致備份(Crash-consistent backup),表示備份的數據類似系統異常宕機時的狀態;

3、應用一致備份(Application-consistent backup),表示備份的數據是應用可用的數據;

?

In-consistent backup不一致備份

什么是數據保護的一致性?

平時我們用copy命令或者在資源管理器中進行文件拷貝,如果拷貝的文件是正在變化修改的,那么我們拷貝出來的文件就是不一致的狀態,可以稱之為in-consistent。為什么說是不一致的呢?比如說我們要拷貝一個大的文件,而這個文件在變化,那么我們用copy命令拷貝出來的文件頭和文件尾的數據塊并不是同一個時間點的,這個文件可能是無法打開的。

In-consistent狀態是數據備份時最不愿意出現的,當然目前大部分備份產品都能解決。

Crash-consistent backup崩潰一致性備份

Crash-consistent backup的實現一般是采用磁盤快照的方式來實現,在應用沒有停止對文件進行寫入時,快照時的數據狀態就像系統異常宕機時一樣,這時并不是所有的IO都一致地寫入到磁盤中,但重啟后,文件系統、數據庫都有崩潰修復功能,大多數情況下可以將數據恢復到一致狀態并正常使用。術語“crash-consistent”就是指服務器崩潰、關閉電源或重啟瞬間的恢復點。

那備份軟件如何能在同一時間點對整個數據集進行快照?以Windows為例,可以通過利用微軟的VSS服務(Volume Shadow Copy Service)來實現,當某一個時刻,要對某個卷做一個vss快照,vss會通知該卷上的文件系統,將內存中的數據寫入到磁盤中,這個操作稱為flush,這樣就保證了文件系統數據的一致性。同時,vss還會阻止文件系統的寫入數據操作,即正在做快照的這個時候不允許對改卷進行任何寫操作,以保證卷的一致性,可以稱之為freeze。這整個過程持續的時間很短,通常在幾秒之內。vss在這幾秒之內迅速產生了一個該卷的快照,即原卷的一個鏡像??煺罩谱鹘Y束以后,無論原卷怎么變化,快照的內容不會再發生變化。

當我們從這個快照中再去拷貝文件的時候,這些數據始終是出于一致的狀態,稱之為consistent,今天去拷貝還是明天去拷貝,都是快照時刻的數據。是怎么做到的呢?vss使用了一種寫時復制的機制(cow),來保證數據狀態的一致。

但是這種狀態有多一致呢?

從vss參與的組件可以知道,只有文件系統本身參與了,一些應用比如SQLServer等并沒有參與,所以說假設我們把快照中的數據都備份了,然后再把備份的數據都還原,SQLServer大概率是可以正常啟動的,但在運氣不好的時候可能是無法啟動的。

我們稱這種一致狀態為crash-consistent狀態。

Crash-consistent對于保證被保護數據盡量在同一個時間點上,已經是一種很大的進步了,但是對于最穩妥的數據保護來說這還不夠,還需要支持更高級別的一致性,即應用級別的一致性,這就是application-consistent。


Application-consistent backup應用一致性備份

與crash consistent不同,application-consistent備份是在進行底層快照時,先讓數據庫或應用文件處于不改變的狀態,比如對于數據庫這個應用,在關閉狀態下的數據肯定是應用一致性的。如果業務上允許數據庫長時間關閉,直接拷貝這些數據庫文件就是一種應用一致性備份;如果業務只允許短時間關庫,對這些數據文件快照后立即打開庫,然后拷貝快照數據,也是應用一致性備份。這兩種場景對于數據庫這種應用來說做的都是冷備份。

而現實場景中,數據庫往往需要熱備份,即在不停止數據庫的情況進行備份,那么要保證應用一致性,方式一是通過數據庫或應用提供的接口或工具進行備份,方式二是調用數據庫靜默后進行快照,再備份快照文件。應用一致性的保證,一般都需要應用本身參與,例如備份接口或靜默指令。再拿windows舉例,vss可以實現上述方式二的應用一致性備份,且很簡單,可以通知系統中的那些支持vss writer機制的應用比如sql,exchange等去flush數據并處于類似靜默狀態,使應用本身在快照時保持自己的一致狀態,這樣就確保了備份下來的數據一定是能夠被應用正常使用的。

Crash-consistent vs Application-consistent backup

一張表來說明crash consistent備份和application consistent備份之間的區別:

Operation

Crash-consistent

Application-consistent

備份文件的時間點

是否一致

?

?

利用快照進行卷級

或文件備份

?

?

快照時數據庫或應用

提前靜默

×

?

恢復時數據是否一定

正常使用

×

?

需要重點提到的就是application consistent與crash consistent在進行恢復時的工作量。對于crash consistent,由于應用數據可能不一致,那就必須先將數據恢復到一致,這個過程在不同數據庫產品之間的操作是不同。但application consistent可以保證應用數據一致,因為vss在捕獲快照之前,內存中的任務和掛起的I/O都已交到磁盤。在應用程序數據的災難恢復場景中,與應用程序服務器(尤其是數據庫服務器)的crash consistent備份相比,application consistent 備份具備顯著的優勢。

總結

企業在進行數據備份的時候,如果不深入考慮crash consistent和application consistent備份類型的差異,可能會導致意外的備份結果,甚至是數據損壞。crash consistent backup無法獲取內存中正在發生改變的應用數據,而application consistent backup是知道這些臨時數據,允許待事務一致性后正確地備份,從而有效實現應用程序數據的一致。

縱觀當前備份市場的產品,CDM(Copy Data Management副本數據管理)是具備原生的、天然的application consistent屬性。Gartner給出CDM的定義是:它從生產環境通過快照技術獲取有應用一致性保證的數據,在非生產存儲上生成“黃金副本”(Golden Image),這個“黃金副本”數據格式是原始的磁盤格式,可再虛擬化成多個副本直接掛載給服務器,分別用于備份恢復、容災或開發測試。

在對企業核心系統進行備份的時候,在實現數據保護一致性方面,你會如何選擇?

總結

以上是生活随笔為你收集整理的深度解读,In-consistent, Crash-consistent, Application-consistent的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。