天天看點

資料保護的那點兒事兒(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服務。

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

轉載于:https://www.cnblogs.com/ainima/p/6330778.html