快照技術對比學習

来源:https://www.cnblogs.com/developer-tianyiyun/p/18311474
-Advertisement-
Play Games

本文分享自天翼雲開發者社區《快照技術對比學習》,作者:z****n 1.快照的分類 根據 SNIA 的定義, 快照有全量快照 (full snapshot) 和增量快照 (incremental snapshot) 兩種類型。 2.全量快照 克隆(Clone): 與備份操作類似,克隆技術是一種數據復 ...


本文分享自天翼雲開發者社區《快照技術對比學習》,作者:z****n

1.快照的分類

根據 SNIA 的定義, 快照有全量快照 (full snapshot) 和增量快照 (incremental snapshot) 兩種類型。

2.全量快照

克隆(Clone):

與備份操作類似,克隆技術是一種數據複製和恢復的方法,用於創建源數據的完全副本。將源數據的所有信息和狀態以二進位形式進行備份,併在需要時將其恢復到相同或另一個系統中。克隆對象可以是存儲捲、文件系統或者LUN,優勢在於它提供了完全一致和獨立的複製,不受源系統的影響。缺點就是在創建時要完整的複製一份數據,需要占用和源數據空間一樣大的存儲空間,資源成本高,消耗時間長。

鏡像分離(Split Mirror):

鏡像分離也屬於全量快照,先創建源捲的一個鏡像捲,每次磁碟寫入數據的時候,都會向源捲和快照捲同時寫入內容。當啟動快照時,鏡像捲能快速脫離,直接生成一個快照捲。因此鏡像分離在讀操作時沒有任何影響,在寫操作時會有兩次寫入操作,分別寫入源捲與鏡像捲。

3.增量快照

3.1寫時拷貝(Copy-On-Write,CoW):在源捲之外創建一個快照捲,用於存放快照數據。

寫數據

1、寫入請求:當需要對原始數據進行寫入操作時,系統首先創建一個新的空白數據塊(或稱為寫時複製快照),並將寫入請求發送到該新數據塊。

2、數據複製:系統將需要被修改的數據塊從原始數據中複製到新的寫時複製快照中,這樣可以確保原始數據不會被修改。

3、修改寫時複製快照:在寫時複製快照中進行實際的數據修改操作,即將寫入請求應用於寫時複製快照。

4、更新快照指針:完成寫入操作後,系統更新增量快照指針,使其指向新的寫時複製快照,以反映最新的數據狀態。

 

讀數據

1、初始狀態:增量快照指向原始數據。

2、讀取請求:當有讀取請求時,系統檢查增量快照指針。

3、檢查增量快照:如果讀取請求的數據在增量快照中存在,系統直接從增量快照中讀取相應的數據,並返回給請求方。

4、查找原始數據:如果讀取請求的數據不在增量快照中,系統將查找原始數據。

5、讀取原始數據:系統根據讀取請求定位到原始數據,並返回相應的數據給請求方。

優點:CoW在寫入操作時,不直接修改原始數據,而是創建副本併在副本上進行修改。這樣可以減少對原始數據的複製操作,因此CoW快照創建非常快。其次,CoW確保了數據的完整性和一致性,原始數據始終保持不變,只有在寫入操作完成後,新的數據副本才會出現。同時CoW可以節省存儲空間。由於只有在數據塊被修改時才複製數據,多個副本可以共用未修改的數據塊,減少了存儲空間的占用。

缺點:降低源數據捲的寫性能,因為每次改寫新數據,實際上都進行了兩次寫操作。

應用場景:CoW技術提供了空間效率、寫入性能和數據完整性的優勢,適用於需要高效存儲、備份和恢複數據的場景。因此在虛擬化、容器化、數據備份、文件系統和資料庫管理等領域得到廣泛應用。

3.2寫時重定向(Redirect-On-Write,RoW)

寫數據:

1、初始狀態:RoW技術在初始狀態下指向原始數據。

2、寫入請求:當有寫入請求時,系統首先檢查RoW指針。

3、創建副本:如果RoW指針指向原始數據,系統會創建原始數據的副本。

4、修改副本:系統在副本上進行修改操作,而不會對原始數據進行任何更改。

5、更新RoW指針:當修改操作完成後,系統會更新RoW指針,使其指向新創建的副本。

6、更新元數據:系統會更新相關的元數據,如指針或索引,以反映新的數據位置。 

讀數據

1、初始狀態:RoW技術在初始狀態下指向原始數據。

2、讀取請求:當有讀取請求時,系統會根據讀取操作所需的數據確定讀取路徑。

3、檢查RoW指針:系統首先檢查RoW指針。

4、判斷讀取路徑:根據RoW指針的狀態,有兩種可能的讀取路徑:

1)如果RoW指針指向原始數據,則系統直接讀取原始數據。

2)如果RoW指針指向副本數據,則系統需要跟蹤回溯到原始數據,並讀取經過修改的副本數據。

5、讀取數據:根據所確定的讀取路徑,系統從相應的位置讀取數據。

1)如果RoW指針指向原始數據,系統直接從原始數據位置讀取數據。

2)如果RoW指針指向副本數據,系統通過回溯到原始數據並按照修改路徑讀取副本數據。

優點:RoW技術避免了對原始數據的複製,只在修改發生時創建副本,因此具有較高的空間效率。其次解決了CoW快照寫兩次的問題,就寫性能而言RoW是優於CoW 的。RoW技術通過在副本上進行修改而不直接修改原始數據來保持數據的完整性和一致性。RoW技術可以通過跟蹤回溯到原始數據來實現快速恢復和數據保護。

缺點:RoW技術在讀取操作時可能需要進行回溯操作以獲取經過修改的副本數據,這可能略微降低讀取性能。RoW沒有一個完整的快照捲,其快照之間的關係是鏈式的,如果快照層級越多,進行快照恢復時的系統開銷會比較大。

應用場景:RoW技術適用於需要高效存儲、備份和恢複數據的場景。它提供了空間效率、寫入性能和數據完整性的優勢,因此在虛擬化、容器化、文件系統和資料庫管理等領域得到廣泛應用。

在傳統存儲場景下,RoW技術存在一個重要問題,即對讀取性能的影響較大。隨著多次讀寫操作的進行,源數據捲中的數據會變得非常離散,這導致RoW在連續讀取和寫入性能方面不如CoW。因此,RoW更適用於寫入密集型的存儲系統。然而,在分散式存儲的情況下,RoW的連續讀寫性能卻會超過CoW。在傳統存儲場景中,讀寫性能的瓶頸通常出現在磁碟上,但這種瓶頸在分散式存儲場景中不存在。在業務層面上,用戶看到的是連續存儲,實際上數據分佈在不同伺服器的不同硬碟上,數據越分散,系統性能越高。RoW技術將源數據捲中的原始數據打散後,反而對性能有益。因此,目前階段下,RoW結合分散式存儲的快照方式是業界主要發展方向。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 光貓在家裡只能擔當撥號上網的角色嗎?不,稍加改造就是一臺NAS! 在這裡,使用natmap映射IPV4,使用nginx+njs+vList5打造線上文件預覽+管理,使用nginx+davext實現遠程文件管理 甚至還可以使用aria2下載磁力做下載器,使用clash讓光貓變成真的貓!只要你敢想,光貓... ...
  • Ventoy和UltraISO都是常用於製作啟動盤的工具,但它們在功能和使用方式上有一些顯著的區別。 Ventoy Ventoy是一個開源的啟動盤製作工具,其主要特點包括: 多鏡像支持:用戶可以將多個ISO/WIM/IMG/VHD(x)/EFI等類型的文件直接拷貝到U盤,Ventoy會在啟動時顯示一 ...
  • 適用版本: 適用於TOS 5.0.xxx、TOS5.1.xxx版本。 適用機型: TNAS型號(除F2-210、F4-210) 故障現象: 當TNAS宕機導致網頁不可訪問且PC無法搜索到該設備時,重啟後TOS網頁的系統報告缺失相關日誌,不利於異常原因的分析。 故障原因: 當TNAS設備出現宕機重啟T ...
  • Oracle資料庫中如果標準大頁設置不合理,可能導致物理記憶體被浪費掉。下麵介紹一個案例: 查看標準大頁的信息,如下所示: $ grep HugePages /proc/meminfoAnonHugePages: 0 kBShmemHugePages: 0 kBFileHugePages: 0 kBH ...
  • 上一篇文章《使用 Categraf 快速建設 MySQL 監控,同時介紹夜鶯模板中心》我們已經瞭解瞭如何使用夜鶯配合 Categraf 監控 MySQL,本節我們重點看看 Redis 監控的實操方案。 Redis 監控資料 首先還是去模板中心找到 Redis 插件相關的說明和各類模板,菜單位置在:集 ...
  • 問題 MGR 中,新節點在加入時,為了與組內其它節點的數據保持一致,它會首先經歷一個分散式恢復階段。在這個階段,新節點會隨機選擇組內一個節點(Donor)來同步差異數據。 在 MySQL 8.0.17 之前,同步的方式只有一種,即基於 Binlog 的非同步複製,這種方式適用於差異數據較少或需要的 B ...
  • MDB (Lightning Memory-Mapped Database) 是一個高性能的嵌入式鍵值存儲資料庫,由Symas Corporation開發,並作為OpenLDAP項目的一部分發佈。LMDB被設計為輕量級、快速且可靠,適合在各種應用環境中使用,從伺服器端應用到移動設備和嵌入式系統。 L ...
  • 引言 隨著雲計算技術的發展,Amazon Web Services (AWS) 作為一個開放的平臺,一直在幫助開發者更好的在雲上構建和使用開源軟體,同時也與開源社區緊密合作,推動開源項目的發展。 本文主要探討2024年值得關註的一些開源軟體及其在AWS上的應用情況,希望能夠給大家參考使用! 2024 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...