數據保護的那點兒事兒(1)

本文首發於http://oliveryang.net,轉載時請包含原文或者作者網站鏈接。

數據保護的那點兒事兒

數據保護就是保護數據使其免於數據損壞(Data Corruption)和數據丟失(Data Loss)的過程。常見的數據保護方式主要有以下兩大類,

  • 備份(Backup)

    備份是指爲了應對數據丟失(data loss)而將計算機數據進行拷貝和歸檔的過程。根據數據保存時間和目的,廣義上的備份又可以細分爲備份(Backup)和歸檔(Archive)。歸檔存儲系統,因爲其數據訪問熱度,有時又被稱爲冷存儲(Cold Storage)。

  • 災難恢復(Disaster Recovery)

    災難恢復爲重要的IT基礎設施和系統提供了在自然或人爲災害之後能夠恢復業務連續性的技術策略和手段。災難恢復是IT基礎設施業務連續性(Business Continuity)方案中重要的一環。

本篇文章主要關注數據保護技術中備份的基本概念。

1. 備份需求

下面介紹的概念直接決定了用戶如何選擇潛在的數據保護方案,

  • RPO(Recovery Point Objective)
    即目標恢復點。RPO關係到最大可容忍的數據丟失量。

  • RTO(Recovery Time Objective)
    即目標恢復時間。RTO關係到最大可容忍的業務中斷時間。此外,RTO也直接決定了恢復的性能要求。

  • Backup window
    備份窗口指備份軟件執行備份所需的時間窗口。由於備份或多或少的會對被保護的應用造成一定程度的干擾,備份窗口的大小直接反映了備份對業務的干擾程度。備份窗口的限制也直接決定了對備份的性能要求。

備份恢復方案的選擇,不但和用戶的RPO/RTO/Backup window有關,還可能和以下因素有關,

  • Data Retention Period, 即備份數據的存放時間。
  • 數據中心基礎架構
  • 用於災備的預算

2. 備份方法

爲滿足用戶業務不同的備份需求,一個備份方案可能會同時採用下面一種或者幾種備份方法,

  • Full Backup
    完全備份。即把源端所有的數據拷貝到備份存儲上。

  • Incremental Backup
    增量備份。即只備份上次完全備份或增量備份之後變更的數據。

  • Differential Backup
    差異備份。即只備份上次完全備份後變更過的數據。和增量備份的差別是,增量備份可以基於上次的增量備份做。但差異備份必須基於上次的完全備份做。

  • Synthetic Backup
    合成備份。即一次完全備份之後,一直做增量備份。一旦增量備份做完,就會利用原來的增量備份和完全備份去合成出一個完全備份。一般合成是由備份軟件或者支持合成備份的備份存儲來完成的。因此,這種備份方式時刻都會有一個最新的合成後的完全備份可以用於數據恢復。同時,由於備份歷史和回滾數據的存在,可以計算出反向的增量,用戶也可以恢復到任何一個備份的歷史版本。這種方式也被叫做reverse delta備份。蘋果電腦的時間機器(Time Machine),就是此方法應用上的一個例子。

  • CDP(Continuous Data Protection)
    連續數據保護。這種備份發生在Block層。通常會利用在block層的IO分路器(IO Spliter),把主機端下發的每一個IO都複製下來。並且因爲有回滾日誌,數據也可以恢復到某個歷史版本。CDP的RPO是零,因此相當於備份爲每IO粒度,IO複製是實時同步的。

  • Near CDP or CRR(Continuous Remote Replication)
    近似CDP或者連續遠程複製。很多備份軟件或存儲產品也實現了基於Block層的實時異步複製。RPO此時並不爲零,但是也維持在一個較小的時間粒度。

根據備份的實現原理,備份方法還可以分爲以下幾種,

  • Image Level Backup
    鏡像級別的備份可以發生在物理機,也可以是虛擬機。近些年新出現的虛擬機備份產品完全是基於虛擬機鏡像級別的備份方案。

  • File Level Backup
    文件級別的備份。傳統備份大都基於文件系統之上來做文件級別的備份。通常這些備份產品都需要在主機裏安裝一個代理軟件(Backup Agent)來負責拷貝文件。新的虛擬機備份產品已經完全拋棄了這種備份方式,完全基於鏡像備份。

  • Snapshot
    快照可以被廣泛的用於存儲和虛擬機鏡像的備份。新的虛擬機備份產品大量的利用了虛擬機鏡像,實現了Near CDP的分鐘級別的RPO。

不同的RPO和RTO的需求可能導致不同的數據保護方案的選擇。下面的表格是一個簡單的總結,

RPO RTO Possible Data Protection Solutions
Zero Minutes 業務的雙活方案。如Stretched clusters
Zero Minutes 業務的主備方案。如CDP + VMware SRM
Minutes Minutes Near CDP 方案或者VM備份方案。
Hours Minutes 一般備份和恢復方案
Hours Hours 一般備份和恢復方案。

3 備份數據的可用性

備份時,除了要滿足用戶的不同業務備份需求外,更要保證備份的數據是可靠的,可用的。一個數據保護方案,要達到備份數據的可用性,需要做很多工作。

3.1 數據一致性

備份時的數據一致性問題,是備份方案必須要解決的問題,因爲恢復的最終目的是要恢復中斷的業務。
主機備份時,數據的一致性狀態可以是以下三種,

  1. Crash Consistency
    崩潰一致性。備份時系統沒有任何靜默(Quiesce)。想象一下運行的系統突然掉電或者崩潰時的狀態。系統被恢復到這樣的狀態下可能因爲數據丟失而無法再次啓動。

  2. File System Consistency
    文件系統一致性。備份時操作系統被執行靜默操作。操作系統的pending data被寫入到硬盤。此時文件系統的狀態是一致的。數據恢復到這個狀態,文件系統不會有數據丟失,操作系統可以被正常啓動。但應用程序狀態是不可預測的,很有可能無法啓動。

  3. Application Consistency
    應用一致性。備份時操作系統和應用都執行了靜默操作。應用和操作系統都保證在備份前把dirty data寫入到硬盤,並且處於短暫暫停狀態保證備份數據的一致性。數據恢復到這個狀態,操作系統和應用都能保證正常啓動運行。

由上述描述可見,實現數據一致性必須操作系統和應用程序支持靜默(Quiesce)操作。爲此,Windows操作系統提供了VSS(Volume Shadow Copy)機制。該機制可以允許OS和應用程序在熱拷貝發生時,實現自己的靜默操作。VSS在Windows操作系統是被很多關鍵應用全面支持的。而Linux操作系統目前還缺乏一個從內核到應用程序統一的框架來實現類似功能。Linux的某些文件系統快照功能可以實現文件系統一致性,做快照時靜默IO。但是還是缺乏一個通知應用程序執行靜默的機制。

3.2 數據完整性

數據存儲到介質上可能遇到數據損壞(Data Corruption)的風險。企業級的備份或數據保護存儲都需要針對數據完整性(Data Integration)做一些工作。

  • 數據校驗
    數據存儲時使用校驗碼算法(CRC32 or CRC64),保證任何數據損壞都能被校驗算法檢測出來。
  • 數據糾錯
    當數據損壞發生時,可以藉助RAID 5/6,或者EC(Erasure Code)的機制去恢復受損數據。

一些企業級數據保護存儲還實現了端到端的數據完整性,在存儲棧的各個層次上做了不同的工作。

3.3 備份測試和驗證

備份的數據可能因爲各種原因導致無法使用。例如存在一致性問題或者數據完整性問題。因此,備份測試和驗證是保證備份數據真正在恢復時可以使用的唯一可靠手段。這篇講Facebook mysql備份的文章也涉及了facebook的自動備份驗證的內容。借用裏面的一句話,

沒有進行驗證的備份是無效的。

備份測試和驗證沒有冗餘的測試環境,沒有自動化的手段是不行的,因此實施難度也很大。隨着虛擬機備份產品的流行,備份測試驗證變得非常容易起來。

4. 備份軟件

數據備份操作通常有不同的操作方式,

  • 手工或者定製腳本和備份工具
  • 專業備份軟件

當需要備份的業務較多,而且備份計劃很複雜時,簡單的備份腳本和工具就很難滿足業務需要了。這時通常需要藉助專業的備份軟件來管理備份。

一個典型的傳統專業備份軟件可以包含以下幾部分,

  • Backup Agent

    即備份代理或備份客戶端。備份代理必須按照在需要備份的主機的操作系統之上。因此備份客戶端會有很多個。

    一個有良好設計的備份代理,必然要有平臺無關的通用代碼層和平臺相關的插件。通用代碼層處理各個平臺上和備份相關的通用邏輯。而平臺相關的模塊則爲不同操作系統的文件系統和應用程序提供了模塊化的插件。正是因爲有了這些模塊化的插件,才讓文件系統和應用的數據一致性可以得倒保證。

  • Backup Server

    即備份服務器。備份服務器通過網絡服務於備份代理,可以是一個,也可以是多個,來做到性能上的負載均衡和擴展。

    備份服務器通常可以有以下功能,

    • 備份和恢復任務的管理,調度和監控
    • 備份協議加速,Deduplication(去重),Compress(壓縮),加密等
    • 備份元數據和數據存儲,索引,查詢。
    • 備份服務器的管理控制
    • 外部備份存儲設備的管理。

有些備份服務器軟件被集成到一個存儲裏,可以直接存儲數據。即使是這樣,也需要支持外置的專業備份存儲設備。例如,EMC的Avamar備份服務器就可以存儲數據在自己的存儲節點上。但同時,Avamar也支持備份數據到外置的EMC DataDomain存儲。此時,Avamar的備份代理直接把數據備份到Datadomain存儲上,但備份的元數據還是會寫到Avamar服務器上,便於備份服務器統一管理備份數據。

5. 備份存儲

不論是哪種方式備份,都需要決定數據最終存放的介質,即備份存儲。

通常備份存儲都被歸類爲數據保護存儲(Data Protection Storage),本文並不做區分。備份存儲設備通常可以根據存儲介質或者備份數據的管理方式去分類。

5.1 按照存儲介質分類

按照備份數據的目標存儲介質,備份存儲可以分爲,

  • 磁帶(Tape)存儲

    歷史悠久,使用最廣泛的備份存儲。優點是可靠,廉價。缺點是性能差,不適合隨機讀寫,而且存儲密度低。磁帶庫的機械故障和佔用空間都使得磁帶存儲的總體擁有成本 (TCO)變得很高。

  • 磁盤(Hard Disk)存儲

    磁盤的優點是性能和高存儲密度。缺點是壽命和價格都不如磁帶。然而,磁盤備份存儲廠商通過利用技術手段 (RAID,CRC校驗,Data Scrubing,Deduplication,Compress)一定程度上克服了磁盤備份系統的不足。因此,磁盤備份系統在需要性能保證的備份和恢復的業務場景有很大的競爭力。但是在長期數據歸檔方面,還很難完全取代磁帶。例如,磁帶做歸檔可以做到離線,但磁盤不能,因爲需要定期加電做數據校驗。

  • 光(Optical)存儲

    從早期的CD和DVD,到目前的藍光,光存儲因爲介質的穩定和廉價被廣泛的應用在歸檔系統,即冷存儲領域。據說,Facebook就是利用藍光系統實現其冷存儲系統的。

  • 閃存(SSD)存儲

    閃存的性能優勢很明顯。而且,由於閃存不包含磁盤那樣的機械部件,在壽命和抗震性上都要優於磁盤。目前閃存做備份存儲最大的障礙是兩個,價格和數據可靠性。根據工業界的預測,未來幾年閃存價格馬上要追上磁盤價格。此外,閃存長時間不加電存放數據會丟失的情況可以利用一定的數據糾錯算法來彌補,也就是說可以通過犧牲一定的空間來換取存儲數據的可靠性。因此,未來磁盤備份系統全面被全閃存備份系統取代也並非癡人說夢。

  • 雲(Cloud)存儲

    嚴格說來,雲存儲只是一種產品形態而非新的存儲介質。目前備份和歸檔在雲存儲使用場景裏是排第一位的。備份和歸檔所需的存儲首要的需求是良好的數據耐久性(Data Durability)和低廉的價格。因此,一般來說,雲計算廠商提供的塊設備雲存儲(如AWS EBS),並不適合存儲備份數據。所以,雲廠商一般使用以下兩類雲存儲產品用於備份和歸檔,

    1. 基於對象存儲的備份

      很多對象存儲(Object Storage)的設計目標之一就是備份。例如, AWS S3,通過分佈式存儲的設計,使得存儲數據的耐久性(Data Durability)達到10個9(99.999999999%)。

    2. 基於冷存儲的歸檔

      雲計算廠商也在嘗試開發用於存放數據訪問熱度非常低的冷存儲產品。亞馬遜,阿里雲,百度都開發了自己的冷存儲。例如,AWS的Glacier的價格只有每GB 0.7美分,數據耐久性可以達到11個9(99.999999999%)。

5.2 按照數據管理方式分類

按照數據管理的生命週期,備份存儲可以分爲,

  • 在線(On-line)備份存儲

    在線備份存儲可以選用主存儲(Primary Storage)或者次級存儲(Secondary Storage)。主存儲雖然能提供很高性能的數據備份方式(如快照),但時因爲成本和數據隔離的需求,擁有一份以上的多個數據拷貝是備份的基本需求。因此,專業的次級備份存儲在在線備份存儲裏纔是主流。

  • 離線(Off-line)備份存儲

    離線備份因爲可以提供更可靠的隔離性和更低的維護成本而成爲不可取代的備份選擇。備份存儲在線就意味着誤操作或者其它安全事件隨時可以威脅到備份數據的安全。而數據備份後離線存放可以徹底保證數據的安全隔離要求。

  • 異地(Off-site)備份存儲

    爲了抵禦不同級別的天災或者人禍。更高級別的災備方案可能會有不同距離的異地備份要求。異地備份也可以通過同步或者異步地在線複製(Replication)或者離線運輸備份介質的不同方式來實現。很多備份存儲和備份軟件都支持不同RPO的遠程複製功能。而離線的備份介質運輸雖然很古老,但是還是出現了一些新的創新,例如亞馬遜最近推出的 Snowball服務

正因爲備份存儲的多樣性,有了數據的多個拷貝,多個歷史版本,還有多個物理分佈,才使得不同的災備計劃可以抵禦不同級別的自然災害,人爲災害,軟硬件故障和誤操作。備份計劃,方法,還有基礎設施的選擇也和業務的連續性要求以及災備預算密切相關。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章