1. 區分備份與檔案
1.1. 兩個完全不同的操作
-
1.1.1. 要實現的是兩個完全不同的目標
-
1.1.2. 備份(backup)
-
1.1.3. 檔案(archive)
1.2. 有些產品既能製作備份,又能製作檔案
1.3. 某些產品或服務明明是專門用來製作備份的,但有人卻偏偏想順便用它來製作檔案
- 1.3.1. 明明是在做其中的一項操作,卻偏偏把它叫成另一個名字,那就不太對了
1.4. 把製作備份的軟體當成製作檔案的軟體來使用,不僅會增加成本,還會讓組織面臨更大的風險
1.5. 不要總以為把備份資料儲存許多年是一個很了不起的設計思路,除非你能保證這個備份系統可以順利地將多年以前的備份獲取到,並且能夠很好地從中恢復資料
1.6. 不要把那種帶有檔案製作功能的SaaS式產品誤認為備份產品,因為那些產品製作出來的是檔案,而不是真正的備份
1.7. 檔案是為了便於你從中搜尋並獲取資訊,而不是讓你用它們來恢復資料的
1.8. 備份與檔案是資料保護工作的最後防線
2. 什麼是備份
2.1. backup實際上就是該檔案的一份copy(副本),這份copy一般就放在原檔案的旁邊
-
2.1.1. 只是一個copy,而不是真正的備份
-
2.1.2. 做法違背了3-2-1原則
2.2. virtual snapshot(虛擬快照)
-
2.2.1. 一種虛擬的copy,必須依賴原檔案才能體現出它的意義
-
2.2.2. 不是真正的備份
-
2.2.3. convenience copy(便捷複製或方便複製),
-
2.2.4. 對檔案系統或儲存系統所做的virtual snapshot(虛擬快照)不是copy,因為它們並不包含原資料裡的內容
-
2.2.4.1. 只是在許多地方引用了原資料而已
-
2.2.5. NAS的快照、XFS的快照、Windows的VSS(Volume Shadow Copy Service,卷影複製服務)快照,以及VMware或Hyper-V這樣的虛擬機器管理程式所做的快照,都屬於virtual snapshot,它們本身並不能算作copy
2.3. 備份是對資料所做的一份copy,它與原資料分開存放,並且能夠把這份資料恢復到早前的狀態,之所以恢復,通常是因為原資料受某種原因影響而遭到刪除或破壞
2.4. 備份必須是一份copy
-
2.4.1. copy是對原資料所做的逐位元組重製,它的內容與原資料相同
-
2.4.2. 對檔案所做的copy,還應該包含所有的metadata(後設資料/後設資料),尤其是與安全及許可權有關的配置資料
-
2.4.3. 必須依賴原資料而存在的“copy”,都不是真正的copy,它們只能算作虛擬的copy(virtual copy)
-
2.4.4. 透過把快照重製到另一個系統上而形成的copy,要比普通的copy更好
-
2.4.4.1. 這樣的copy裡面,每個磁碟中的資料都是從同一個時刻抓取的,就算重製這份copy所花的時間很長,也能保證這一點,而不像普通的copy,難以保證這些磁碟中的資料會不會在製作copy的過程中有所變化
-
2.4.5. 透過快照來製作備份是相當棒的
-
2.4.5.1. 依賴原資料而存在的快照,不是一份合格的copy,你必須把它重製(也就是複製)到其他地方,才能讓它成為一份真正的copy
-
2.4.6. 在IT領域,有一些snapshot(快照)確實是copy
-
2.4.6.1. AWS Elastic Block
Store(EBS)的snapshot
- 2.4.6.2. image copy(映象複製)
> 2.4.6.2.1. 它們是在逐位元組地複製原資料,相當於對原資料做了一個映象
2.5. 備份必須與原資料分開存放
-
2.5.1. 如果你把copy儲存在了跟原資料相同的檔案系統、計算機或資料庫裡面,那麼你做的僅是便捷複製,而不是真正的備份
-
2.5.1.1. 起不到對原資料做備份的作用,它只是出現在原資料旁邊,方便你隨時取用而已
-
2.5.2. 做備份時一定要把資料儲存在遠離原資料的地方
2.6. 備份必須能夠用來恢復資料
-
2.6.1. archive(檔案)也是一種copy,而且也是跟原資料分開存放的,但archive並不能算作備份
-
2.6.1.1. archive不是用來恢復資料的,它們是用來獲取資料的,這跟恢復資料不是一回事
-
2.6.2. 只有那種能夠在原資料受損時用來恢復原資料的copy,才是備份
2.7. 什麼是恢復restore
-
2.7.1. 一種透過備份讓資料回到早前狀態的操作
-
2.7.2. 獲取(retrieve)操作針對的是檔案
-
2.7.2.1. 從檔案中執行獲取操作,所得到的是某個比較大的時間段內的許多資料
-
2.7.3. 恢復通常是為了讓伺服器或檔案系統的狀態回到距離當前較近的某個點
-
2.7.4. 恢復資料時,我們通常總是會使用最近製作的那個備份
-
2.7.5. 最為重要的一點,在於你必須知道自己想把這個有問題的東西恢復到它在哪一時刻的樣子
-
2.7.6. 找到你在資料受損之前的某個時刻所製作的備份,並透過該備份來恢復某一伺服器、VM或應用程式裡某一區域(例如某個資料庫、某個檔案系統、某個目錄、某個bucket)中的一條或多條資料
2.8. 3-2-1原則
-
2.8.1. 至少對資料做3個版本的備份
-
2.8.1.1. 除原資料之外還有3個版本
-
2.8.1.2. 3是下限,而不是上限
-
2.8.2. 把備份放在2個不同的介質中
-
2.8.2.1. 不要把所有的備份都儲存到同一介質中
-
2.8.2.2. 原資料與你給該資料所做的備份肯定不能儲存到同一介質上
-
2.8.2.3. 必須把備份放在跟原資料不同的磁碟上,或者存放到與你要保護的這臺計算機不同的另一臺計算機上
-
2.8.2.4. 不要把備份存放在距離受保護的計算機很近的地方
-
2.8.3. 將其中1份放在遠處
-
2.8.3.1. 讓其中一份資料離場
-
2.8.3.2. on-site(在場/線上/上線)與off-side(離場/離線/下線)這樣的二分法
-
2.8.3.3. 把其中一份副本放到距離受保護資料相當遠的某個安全地點
-
2.8.3.4. 可以讓備份遠離原資料,以便在資料遭遇災難時,拿這些備份磁帶來恢復
-
2.8.3.5. 用來做災難恢復的這份副本,一定要放在遠離各種災難的地方
-
2.8.3.6. 要把這些備份放在一個跟你要保護的應用程式不同的地方
-
2.8.3.7. 最好能在另一個區裡單獨建立一個賬號,讓這個賬號專門用來儲存備份資料,並把其他區裡的那些賬號所製作的備份全都匯給這個賬號
3. 什麼是檔案
3.1. 把備份從某種比較昂貴的介質移動到費用較低的介質上,以便長期儲存,這不能稱為archiving a backup(“給備份做檔案”或“給備份歸檔”)
- 3.1.1. 只不過是把備份移動到了一種便於長期儲存的介質上
3.2. 舊的備份不會自動變成檔案
3.3. 如果要檔案,那必須去製作檔案
3.4. 檔案是存放在另一個地方的資料副本,是一種用來做參考的副本,其中儲存著必要的metadata,讓我們不用指出來源,就能找到所需的資料
3.5. 檔案也必須是一份完整的副本,無須依賴原資料即可獨立存在
3.6. 為了不同的目標而儲存檔案與備份的,我們獲取檔案與備份的理由不同,檔案與備份的儲存方式及獲取方式也不同
3.7. 檔案是為了參考而製作的
-
3.7.1. 檔案並不是用來把伺服器或檔案恢復到原來的模樣
-
3.7.2. 通常是用來查詢資料的,至於為什麼要從檔案裡找資料,其原因可能跟當初建立資料的原因不同
-
3.7.3. 電子郵件檔案(email archive)通常用來做電子取證(e-discovery,也稱電子搜尋)
-
3.7.3.1. 這種檔案的儲存方式也不便於你透過它來恢復整個電子郵件資料庫
-
3.7.4. 針對電子郵件與其他資料製作檔案,而不是在製作備份
-
3.7.5. 如果有一種機制能夠對這些資料製作真正的備份,那麼你對備份的查詢方式,應該跟你對這些檔案的查詢方式不同
3.8. 檔案裡有附加的metadata
-
3.8.1. 附加的metadata本身就包含在了你所歸檔的東西里面
-
3.8.2. 檔案並不要求你在查詢時提供原伺服器或原資料庫的名字,否則它就不是真正的檔案了
-
3.8.3. 在製作檔案之後主動新增metadata
-
3.8.4. metadata是為了便於你從檔案中獲取資料而設的,並不是為了讓你用這份檔案來恢復資料
-
3.8.5. 為恢復資料而製作的東西叫作備份,其中無須包含這些metadata,因為它的主要目標是便於恢復,而不是便於查詢
3.9. 獲取跟恢復有很大區別
-
3.9.1. 獲取資料(或者說,調取檔案)時,系統會根據檔案的內容以及該檔案所附加的metadata,把彼此有關的一組資訊匯聚起來,返回給使用者
-
3.9.2. 獲取資料的時候,你尋找的通常是資訊,而並不是伺服器或檔案
-
3.9.3. 感興趣的是檔案裡面的內容,而不是檔案本身
4. 保護備份資料與檔案資料
4.1. 備份與檔案都很重要
- 4.1.1. 無論你是建立備份、建立檔案,還是既做備份又做檔案,你都希望它能夠保持原樣,而不要遭到摧毀、破壞或篡改
4.2. 加密
-
4.2.1. 想要防止有人惡意訪問你的備份資料,最好的措施就是加密
-
4.2.2. 加密並不能防止壞人刪除或偷竊你的備份資料,但就算他們拿到了備份,也讀不懂其中的內容
-
4.2.3. 防止有人透過竊取備份來敲詐
4.3. 設定屏障
-
4.3.1. “air gap”指的是位於受保護系統與保護它的那個系統之間的一道屏障
-
4.3.2. 屏障便能夠防止這次災難或攻擊把你的資料保護機制破壞掉,讓你可以透過該機制來恢復受損的系統
-
4.3.3. 最好的辦法就是讓受保護系統與保護它的系統,在地理位置上離得遠一些,並且對它們之間的通訊渠道施加控制
-
4.3.3.1. 兩個系統之間的通訊渠道,控制得越嚴格越好
-
4.3.4. 攻擊不單影響主系統,而且會把備份系統也一併感染,導致我們沒辦法透過備份系統來恢復主系統
-
4.3.4.1. 如果備份資料放在裝有Windows系統的備份伺服器上,而且能夠透過該系統中的某個目錄直接得到訪問,那麼勒索病毒在感染主系統之後,就有可能經由這個目錄破壞你的備份資料
-
4.3.5. 物理屏障
-
4.3.5.1. 以前我們用的都是物理屏障
-
4.3.5.2. 不僅能讓主系統與備份資料之間相隔很遠,而且能讓我們施加多層防護,以記錄這些磁帶的交接情況,從而確保它們不會由不該接觸磁帶的人拿到
-
4.3.5.3. 在磁帶沒有受損的前提下,只有一種常見的場合需要使用離場磁帶,那就是我們對DR(災難恢復)計劃執行全面測試的時候
-
4.3.5.4. 對保管方的保管服務做滲透測試(penetration test)
-
4.3.6. 虛擬屏障
-
4.3.6.1. 虛擬屏障(virtual
air gap)
- 4.3.6.2. 現在,我們備份資料時可能根本就不會使用磁帶
> 4.3.6.2.1. 攻擊面要比原來大得多,而且攻擊者從一個系統跳到另一個系統的機率,也比原來高得多
- 4.3.6.3. 禁用或限制使用RDP(遠端桌面協議)
> 4.3.6.3.1. RDP是透過勒索病毒發動攻擊的人很喜歡使用的一種渠道
> 4.3.6.3.2. 應該禁用RDP,或對其加以限制,在備份系統上尤其要這樣做
> 4.3.6.3.3. 日常工作中應該不會頻繁地用到RDP,因此,在連線備份伺服器的遠端桌面時多一些步驟,並不會造成太大的不便
- 4.3.6.4. 使用不同的作業系統
> 4.3.6.4.1. 儘量給備份伺服器安裝一個跟主伺服器不同的作業系統
- 4.3.6.5. 把存放備份資料的地方跟其他東西隔開
> 4.3.6.5.1. 不要讓目標去重裝置的磁碟成為備份伺服器所使用的作業系統裡的一個盤或一個掛載點,以免有人透過這個盤或這個掛載點隨意訪問裝置中的備份資料
- 4.3.6.6. 使用物件儲存系統
> 4.3.6.6.1. 如果備份系統能夠把資料寫入物件式的儲存系統,而不是常規的檔案系統,那就應該開啟這項功能
> 4.3.6.6.2. 採用物件儲存協議來儲存備份資料,可以分散這些資料,以避開常見的網路攻擊
> 4.3.6.6.3. 採用基於物件的儲存系統來儲存備份資料,也要比透過NFS或SMB更加安全
- 4.3.6.7. 使用不可變的儲存機制
> 4.3.6.7.1. 不可變儲存(immutable
storage),也就是說,你可以規定,凡是寫入該系統的資料,都會存留一定時間,在這段時間內,即便你本人也無法刪除該資料
> 4.3.6.7.2. 備份系統要是能把資料寫入這種儲存系統,那就應該這樣做
> 4.3.6.7.3. 在物件儲存系統裡建立一個資料桶(bucket),並把不可變功能開啟
- 4.3.6.8. 使用磁帶儲存備份資料
> 4.3.6.8.1. 把資料放在磁帶裡面,並讓它遠離你的資料中心,要比其他遮蔽方式都更為穩妥
- 4.3.6.9. 使用(特製的)備份服務
> 4.3.6.9.1. 要找的備份服務,應該是那種讓備份資料幾乎無法透過網路訪問到的備份服務
4.4. 不可變性
-
4.4.1. 必須確保備份與檔案資料不會遭到無意或惡意的擦除與破壞
-
4.4.2. immutability,也叫不變性
-
4.4.3. 某物具有不可變性(或者說,某物不可變),指的就是任何人(包括有特權的人)或任何東西都無法修改該物
-
4.4.4. 保留期(retention period)當然可以修改,然而新的保留期針對的只是修改之後存入的資料,它不會影響修改之前所存入的備份與檔案資料
-
4.4.5. 沒有什麼東西能做到絕對不可變
-
4.4.5.1. 寫入任何一種儲存介質的資料,都有可能遭到摧毀。單次寫入多次讀取(Write-Once-Read-Many,WORM;單寫多讀)式的磁帶與光碟,仍然抵不住火燒
-
4.4.6. 必須施加多種管控措施以確保不可變性
-
4.4.6.1. 以前似乎只有一種不可變的儲存介質,就是光碟,但現在基本上沒人用了
-
4.4.6.2. 雲端儲存解決了很多與如何防止有人親身接觸儲存系統相關的問題,同時它又支援傳統的儲存方式所具備的各種特性
-
4.4.7. 不可變並不意味著不會遭到破壞
-
4.4.7.1. 不可變的系統讓我們能夠確信某個物件從來都沒有發生變化
-
4.4.7.2. 系統依然無法防止有人親身接觸該系統,而且也無法避開其他損害
> 4.4.7.2.1. 磁帶可能讓火燒掉,即便這是一盤單讀多寫式的磁帶,也防不住火,它還是會讓火燒掉
-
4.4.8. 許多號稱不可變的機制其實並非真正的不可變
-
4.4.8.1. 如果備份管理員能夠在建立完備份資料之後,縮減該備份的保留時間,那麼這實際上就不是真正的不可變
-
4.4.8.2. 備份管理員能否刪除已經做好的備份(或者能否讓還沒有到期的備份提前過期)
> 4.4.8.2.1. 如果可以,那麼這樣製作出來的備份,其實並非真正的不可變