卷級實時備份的底層資料處理原理
一、任意時間點回退
實時備份資料,意味著備份資料和生產資料是時刻保持一致的狀態,在這種情況下,要做到任意時間點回退恢復,需要藉助特出的儲存空間結構。
雲祺在對目標捲進行實時備份時,在備份系統本地存放實時備份過來的資料的時候,會將備份資料分成兩個空間:映象空間和日誌空間。其中映象空間主要存放與目標卷最新狀態完全一致的映象資料;日誌空間則用於任意時間回退,透過COW(寫時複製,一種常用於快照的資料處理技術)機制,採用逆向增量的方式儲存I/O的變化記錄。
當要進行任意時間點回退恢復的時候,備份系統會先將日誌空間理的逆向增量記錄恢復到目標主機的目標捲上,再從映象空間種拉取出未恢復的資料塊,恢復到目標卷對應的位置上。如下圖:
二、監控快取
在實際的生產環境中進行實時備份的時候,有可能會出現兩種情況:1、生產資料產生的頻率大於資料備份處理的效率;2、備份網路出現異常或者波動。這兩種情況都將導致實時備份無法正常執行。
針對這兩種情況,雲祺引入了監控快取。當生產主機出現以上兩種特殊情況的時候,實時備份代理可以將要實時備份的資料,先放入快取中,等待主機恢復正常後,在進行資料傳輸。
在快取中,又分為記憶體快取和檔案快取,記憶體快取佔用的儲存空間是主機的記憶體空間,檔案快取佔用的儲存空間是主機上的硬碟空間。它們的區別在於記憶體快取讀寫效能好,但是相對空間就小,而檔案快取效能比較差,但是快取空間可以非常的大。
系統 支援這兩種快取的二選一配置,或者同時配置,並且在同時配置的情況下,支援根據快取使用情況自適應切換,以達到最優的實時資料監控效率。
如下圖:
三、I/O複製模式
因為雲祺實時備份功能是基於卷級的,並且代理時刻監控主機目標卷的I/O情況,一旦監測到資料變化就會將此I/O同步複製一份放入快取,等待傳輸給備份系統。
那麼在這種情況下,I/O的複製模式有兩種,一種是同步模式,另外一種就是非同步模式了。同步模式意為實時備份代理會確保實時變化的資料先達到快取空間,再繼續下放到生產卷中。非同步模式就和同步模式是相反的了,代理不會確保複製的資料到達快取空間,即可將上層提交的資料直接下放到生產卷中。
在同步模式下:生產I/O的提交響應時間會變長,但是記憶體開銷不會增加。在非同步模式下:記憶體開銷將會增加,生產I/O的提交響應時間不會發生變化。
基於兩種模式的特點,雲祺在配置I/O複製模式的時候,也提供自適應的模式,代理模組可以根據生產主機的資源情況,在同步模式和非同步模式之間動態切換,以保障最優的處理效率。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70025855/viewspace-3008100/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Elasticsearch 近實時搜尋的底層原理Elasticsearch
- Mybatis底層原理學習(三):查詢結果集的處理原理MyBatis
- 資料型別與底層原理資料型別
- ArrayList底層的實現原理
- LSTM的備胎,用卷積處理時間序列——TCN與因果卷積(理論+Python實踐)卷積Python
- 實現MySQL資料庫的實時備份MySql資料庫
- 初探MySQL資料備份及備份原理MySql
- 關於批處理(bat)資料庫備份BAT資料庫
- HashMap底層實現原理HashMap
- NSDictionary底層實現原理
- AutoreleasePool底層實現原理
- 批處理(bat)實現SQLServer資料庫備份與還原BATSQLServer資料庫
- 揭秘|每秒千萬級的實時資料處理是怎麼實現的?
- 處理百萬級以上的資料處理
- MySQL Join的底層實現原理MySql
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- Oracle冷備份和熱備份的處理Oracle
- RMAN備份時候檔案壞塊的處理
- MySQL索引底層實現原理MySql索引
- HashMap的底層原理HashMap
- KVO的使用和底層實現原理
- 面試必備之MYSQL索引底層原理分析面試MySql索引
- windows下通過批處理備份oracle資料庫WindowsOracle資料庫
- Redis資料結構SortedSet底層原理詳解Redis資料結構
- docker mysql8.0 啟動,掛資料卷,定時備份,恢復~DockerMySql
- 實時處理 Kafka 資料來源Kafka
- 使用NineData實現企業級資料庫備份, 資料備份告別“拆盲盒” ?資料庫
- 禪道備份處理
- OC底層探索(十六) KVO底層原理
- 在資料庫上實現TAC需要具備哪些底層能力?資料庫
- synchronized底層原理synchronized
- 熱備份與RMAN備份中split block的處理BloC
- 資料庫差異備份與增量備份的不同之處資料庫
- Netty的底層原理Netty
- Vue中的底層原理Vue
- HashMap的底層原理分析HashMap
- Volatile的底層原理
- MG--探究KVO的底層實現原理