# Backup 3-2-1 and Disaster Recovery (DR)
## by OCF
---
### Speaker Introduction
BlueT - Matthew Lien - 練喆明
韌性架構總顧問
- 行政院 PDIS
- 國家資通安全研究院
(Co-)founder of
- Ubuntu Taiwan
- OSSPlanet
暨大資管講師
- Practical Linux System Administration (LSA)
---
### World Backup Day ( 世界備份日 ) 3/31
- 是一個強調資料安全性與備份的日子
- 目的 : 了解資料在我們生活中日益重要的趨勢,來提高備份和資料保存意識
>訂於 4/1 日以前,除了想引起注意,同時也想降低因愚人節被整而丟失資料的風險
- 紀念日宣言 : 「I solemnly swear to backup my important documents and precious memories on March 31st.」
> 「我鄭重宣示,我會在 3 月 31 號備份我重要的檔案與珍貴的回憶」
----
- 調查顯示 :
- 21% 的人從未備份過
- 每分鐘有 113 隻手機被偷或是遺失
- 29% 的資料遺失案件是意外造成的
- **30% 的電腦已經感染了惡意軟體**
>[官網有更多的詳細資訊](https://www.worldbackupday.com/en)
---
### The Importance of Backup and DR
----
### Real-life Scenario: Google Cloud誤刪澳洲大型用戶雲端基礎架構,導致用戶資料遺失與服務中斷
----
澳洲退休基金 Unisuper 雲端服務訂閱遭到誤刪,透過第三方備份方能恢復服務

----
恭喜你成為~~盜版~~勒索軟體的受害者

---
## Introduction
---
### As a ~~NGP/NPO~~ Service Provider
---
### High Availability
----
HA network topology

----
load balancer & autoscaling

---
## HA is not enough
HA makes you strong, but not immortal.
----
### Comparing High Availability with Backup/DR
| Aspect | High Availability (HA) | Backup/Disaster Recovery (DR) |
|-----------------------------|-----------------------------------------------|------------------------------------------------|
| Purpose | Ensures continuous operation with minimal downtime | Ensures data recovery and system restoration after a failure |
| Focus | Availability and uptime | Data protection and recovery |
| Redundancy | Multiple systems running simultaneously | Periodic data snapshots and copies |
| Recovery Time Objective (RTO) | Very low (near-zero) | Higher, dependent on backup and restore processes |
| Recovery Point Objective (RPO) | Near-zero | Variable, dependent on backup frequency |
| Implementation Complexity | High, requires real-time synchronization and failover mechanisms | Lower, involves regular backup processes and storage |
| Cost | High, due to duplicate systems and real-time synchronization | Lower, involves backup storage costs |
| Typical Use Cases | Critical applications and services requiring constant uptime | Data protection, regulatory compliance, and recovery from data loss |
| Examples | Load balancing, failover clusters | Backup servers, offsite storage, cloud backups |
| Data Consistency | Real-time consistency ensured | Consistency based on the latest backup |
| Risk Management | Minimizes downtime risks | Mitigates data loss risks |
| Maintenance | Requires ongoing monitoring and maintenance of redundant systems | Involves regular backup verification and occasional restoration testing |
| Scalability | Scales with additional hardware and complex configurations | Scales with additional storage and backup frequency |
----
### The Difference Between Backup and DR
| Aspect | Backup | Disaster Recovery (DR) |
|-----------------------------|-----------------------------------------------|------------------------------------------------|
| Purpose | To create copies of data for protection against data loss | To restore full system functionality after a major failure |
| Focus | Data protection | Business continuity |
| Data Recovery | Restores individual files or data sets | Restores entire systems or environments |
| Recovery Time Objective (RTO) | Typically longer, depending on data size and backup method | Shorter, designed for minimal downtime |
| Recovery Point Objective (RPO) | Variable, depends on backup frequency | Minimal data loss, depends on DR plan |
| Implementation Complexity | Lower, involves regular data backups | Higher, involves comprehensive planning and system setup |
| Cost | Lower, based on storage and backup software | Higher, includes backup infrastructure, failover sites, and recovery plans |
| Typical Use Cases | Protecting against accidental deletions, hardware failures, and minor data corruptions | Responding to natural disasters, cyber attacks, or major system failures |
| Examples | Cloud backups, external hard drives, tape backups | DR sites, failover systems, cloud DR solutions |
| Data Consistency | Based on last backup, might not be real-time | Ensures up-to-date data for critical applications |
| Maintenance | Requires regular backup schedules and storage management | Requires regular DR plan testing and updates |
| Scalability | Scales with additional storage | Scales with more comprehensive and robust DR plans |
| Downtime | Downtime depends on the time to restore backups | Designed to minimize downtime |
---
## Fault Tolerance of Disk: RAID
### Protecting Against Hardware Failure
- 問題 :
- 單顆磁碟的空間容量小
- 單顆的磁碟讀寫速度也不夠快
- 若此單顆磁碟壞了就真的完蛋了
----
- 在 80 年代發明了此項虛擬化技術來解決
- 透過將多顆磁碟組合起來變成一個儲存裝置使用
- 而此儲存裝置有幾個特殊名詞叫做 **Virtual disk** ( 虛擬磁碟 )、**Logical disk** ( 邏輯磁碟 )
>原因是因為作業系統 (OS) 只會將此多顆磁碟組合視為一個磁碟而已
>對應到的 **Physical disk**
----
- 透過此技術來 :
- 資料方便存取
>因已經整合成一台高容量的『虛擬儲存空間』使用,不必在各硬碟間來回切換。
- 容量增加
- 提升讀寫性能
- 容錯、可靠性提升
----
#### RAID 0


----
#### RAID 1

----
#### RAID 5

----
#### RAID 6

----
| | RAID 0 | RAID 1 | RAID 2 | RAID 3 | RAID 4 | RAID 5 | RAID 6 |
|:------------------------------------ | ------ | --------------- | -------- | --------- | -------- | -------- | --------- |
| 至少需要硬碟數量 | 2 台 | 2 ( 需偶數 ) 台 | 3 台 | 3 台 | 3 台 | 3 台 | 4 台 |
| 儲存空間 | N 台 | N/2 台 | N-K 台 | N-1 台 | N-1 台 | N-1 台 | N-2 台 |
| 最大容錯數 | 0 台 | N/2 台 | K | 1 台 | 1 台 | 1 台 | 2 台 |
> N: 代表硬碟總數
> K : 需要用來儲存 hamming code 的磁碟數量
----
效能 : 寫入資料量 & 運算複雜度
- 寫入資料量 : 若依據 **所有硬碟的總寫入資料量** 與**原始檔案大小** 的比值來看的話
:point_right:RAID 1 > RAID 2 > RAID 6 > RAID 3 = RAID 4 = RAID 5 > RAID 0
- ex: 所有硬碟的總寫入資料量 / 原始檔案大小
- RAID 0 = 1G/1G = 100%
- RAID 1 = 2G/1G = 200%
>數值越大,代表需占用的儲存空間越大
- 運算複雜度 : 若綜合花費最多的時間成本 & 空間成本來看的話
:point_right: RAID 0 > RAID1 > RAID 5 > RAID 6 > RAID 4 > RAID 3 > RAID 2
---
### Hybrid RAID
為了滿足更高的性能或更好的可靠性等要求,結合以上不同的 RAID 的方式,延伸出以下常見的組合模式
----
#### RAID 10 (RAID 1+0)

> [圖片來源](https://zh.wikipedia.org/wiki/File:RAID_01.svg)
- 至少 4 台硬碟
- 儲存容量 :point_right:( 1TB + 1TB ) + ( 1TB + 1TB ) = 2TB
- 結合 RAID 1 與 RAID 0 :point_right: Mirroring + Striping : 先做鏡像 (Mirroring),再做分割 (Striping) 資料
----
#### RAID 50 (RAID 5+0)

> [圖片來源](https://i.imgur.com/8uXuWkL.png)
- 至少 6 台硬碟
- 儲存容量 :point_right: ( 1TB * 3 ) + ( 1TB * 3 ) = 4 TB
- 結合 RAID 5 與 RAID 0 :point_right: 先做RAID5,再做 RAID 0
----
### Case study
---
## The 3-2-1 Backup Strategy
### Understanding the 3-2-1 Rule
- 至少備份 3 份
- 至少要儲存於 2 種不同的儲存媒體
>例 : 光碟、外接硬碟、USB、雲端儲存空間
- 至少要有 1 份於異地保存
> 例: 常使用雲端儲存空間
----
#### Why the 3-2-1 Strategy Works
- 至少 3 份資料
> 其中一份壞的,倒底是壞的是哪一個不確定
- 2 種不同儲存裝置
- 1 個異地且離線的儲存
> 當然有錢有空間就是越多份越好,所以後來也有人在推廣 4-3-2 規則
----
### Implementing the 3-2-1 Strategy
#### Tailoring the 3-2-1 Rule to Your Organization
### Case study: Implementing the 3-2-1 Backup Strategy
---
## 備份的類型
----
### Full Backup ( 完整備份 )
- 完整複製一份資料
- 比起其他方式,資料備份所花的時間較長
- 復原資料較快
- 記憶體占用空間大
----
### Incremental Backup ( 增量備份 )

> [圖片來源](http://diun69.blogspot.com/2020/12/blog-post.html)
- 一開始會進行完整備份,之後只會備份與 **上一次備份** 的有差異的資料
- 記憶體佔用空間小
- 比起其他方式,資料備份的時間最快
> 因為只要備份與上一次備份有差異的資料即可
- 復原資料最慢
----
### Differential Backups ( 差異備份 )

> [圖片來源](http://diun69.blogspot.com/2020/12/blog-post.html)
- 一開始會進行完整備份,之後只會備份與 **上一次完整備份** 有差異的資料
- 比起完整備份,資料備份所花的時間較快
----

----
| | Full Backup | Differential Backups | Incremental Backup |
| -------------- | ----------- | -------------------- | ------------------ |
| 中文 | 完整 / 全部 / 完全備份 | 差異備份 | 增量備份 |
| 備份速度 | 慢 ☹ | 中 | 快 😊 |
| 復原速度 | 快 😊 | 中 | 慢☹ |
| 占用空間 | 最多 ☹ | 中 | 最少 😊 |
| 花費 | 貴 ☹ | 中 | 便宜🙂 |
----
### 混合式備份
透過上述的三種備份方式來交替組合,以循環的方式來進行不同的備份方式,藉此降低單一個別備份的風險
#### GFS 輪替原則/三代輪替原則 Grandfather-Father-Son Rotation
- 目的 : 透過**階層式混合**了不同種的備份方式,確保過去一段時間內的資料都會被備份
>即使發生有惡意程式潛伏之類的情況也能往前回朔到一定的時間內,同時又不會花太多的空間和成本在保存備份上,算是一個在可用性和安全性上取得的一個平衡。
----
- 三代等級 :
- <span style="background-color: #72B747">**祖父 (Grandfather)**</span> : 每個月做一次完整備份 (Full Backup),每個備份會被保存一年
- <span style="background-color: #FEDDD6">**父親 (father)** </span>: 每個禮拜做一次差異備份 (Differential Backups),每個備份會被保存一個月
- <span style="background-color: #FFF887">**兒子 (son)**</span> : 每天做一次增量備份 (Incremental Backup),每個備份會被保存一週

>[圖片來源](https://www.ubackup.com/articles/grandfather-father-son-backup-5740.html)
----
:::success
GFS 原則中的**備份頻率**以及**保存的時間**都是可以根據不同的情況和需求去做調整,關係到 Cost( 成本 )、RPO 以及 RTO 。
> RPO、RTO 將在接下來會介紹到
:::
----
### Case study
你/妳會怎麼做?

----
### 關鍵指標 RTO & RPO
- 前提
- 公司日常的運作都非常仰賴這些伺服器的ERP相關的系統,而服務斷線即代表公司核心業務無法正常執行,而每分每秒都是成本的耗損😥
----
- 管理者最大的盲點「只要有備份就好」:point_right:容易讓公司的備份沒有實質的意義
>對於多久備份一次、還原時間點目標、資料恢復時間目標等等重要的目標都疏於規劃
- 以**管理層的角度**談到備份規劃時,需要從以下兩個指標看起 : RTO & RPO
- 備份對於公司最大的目標 :point_right: 極小化對公司與使用者功能所帶來的衝擊
----

> [ 圖片來源 ](https://www.creative-n.com/blog/what-is-backup-rto-and-rpo/)
----
#### RTO ( Recovery Time Objective ),復原時間目標
- 代表企業最多能夠承受服務中斷多久的時間
>今天公司的服務斷線的時候,要花多少的時間能夠讓公司的服務重新上線
- 目標是為了要確定災害人禍發生時,系統需要花多少時間復原資料
----
- 而公司該怎麼評估?
- 重點取決於**公司能忍受多久**
>當中除了員工抱怨之外,所帶來的商業損失 ( 因斷線導致客戶與你的交易沒辦法完成)、員工上班的系統沒辦法使用 ( 人事成本平白的消耗 ),這些都是可以量化的成本項目
- 成本量化:point_right: 分析 : 分析多少的損失是公司今天可以忍受的,公司又願意投入多少的成本去把風險控制在可以忍受的範圍,而此就是規劃的重點
- ex:
- 電商服務平台很重要,隨時都要服務客戶,因此 RTO 設定為 1 小時
- 金融系統 5min
- 文章分享平台,沒有立即需要服務的需求,因此 RTO 可以較寬鬆,設定為 1 天
---
#### RPO ( Recovery Point Objective ),復原點目標
- 代表可以接受的損失多久的資料量
>今天當公司的系統資料損壞後,透過還原機制可以還原到多久以前的資料?
- 目標是提前確保資料恢復和備份功能到位,以最大限度地減少事件期間可能丟失的資料量
- 依據不同的產業、型態,需求與目標都不同 :
- ex : 研發密集的產業、線上電商等等 :point_right: 隨時都會有資料的串流,因此每一筆資料都非常重要,對於資料損失的容忍度一定是非常低的
- ex: 每五分鐘做一次增量備份 :point_right: RPO = 5 min
----
:::success
先訂出 RTO、RPO 分析公司能承擔的對應風險,才能評估要花多少資源投資,在成本與效益之間取得平衡,發揮備份的實質意義
:::
----
### Determining Appropriate RTO and RPO for Your Organization

----
Take a break.
---
### Local Backup Solutions
#### The Importance of Local Backups
### Backup Media and Devices
- Overview of common backup media and devices, such as magnetic tapes, HDDs, SSDs, optical discs, and USB drives.
- Comparison of backup media in terms of capacity, durability, portability, and cost.
### Backup Methods for Different Data Types
- Explanation of backup methods suitable for different data types (disk, file system, files, databases, VMs).
- Examples of tools and techniques used for each data type (e.g., dd for disk imaging, rsync for file-level backups, mysqldump for databases).
#### Disk Copy
#### Filesystem Backup
##### ZFS File System
#### File-Level Backup
#### Steps further: Architecture - IaC / Container
### Cloud Backup Solutions
#### The Benefits of Cloud Backups
### Hybrid Backup Approaches
#### Combining Local and Cloud Backups
- The advantages of using a hybrid backup approach that leverages both local and cloud storage.
- Strategies for balancing local and cloud backups based on factors like data criticality, recovery speed, and cost.
---
## 4. Backup Software and Tools
### Overview of Popular Backup Software and Tools
- Comparison of features and capabilities
- Examples of using specific backup tools (e.g., AutoMySQLBackup, Déjà Dup, Vorta, HyperBackup, ActiveBackup)
### Hands-on Workshops: Using Backup Software and Tools
---
## 7. Disaster Recovery (DR)
### Why Disaster Recovery is Essential
- disaster + recovery = 災害 + 復原 ( 服務 )
- 代表在**災害** 發生時,是一個能夠將 data center ( 資料中心 ) 的資料即時恢復,並且復原 IT 設備服務的操作手法與架構

----
分為以下三種 :
- hot site
- 擁有與主站點同樣完整的服務
- 資料庫與主站同步,且服務一直都在
- 當災害發生時,可直接支援主站點的服務
- 該站點配備了所有必要的硬碟、軟體以及網路連接
- 最貴
----
- warm site
- 介於 hot site 與 cold site 之間
- 資料庫與主站同步,但服務是沒有上線的
- 災害復原速度慢於 hot site : 主機需要重新啟動需要時間
----
- cold site
- 平常是關機狀態沒有運作,有問題才啟動。
> 停機時間 : RPO + RTO 的最大值 + 服務啟動的時間
- 定期的資料會備份過去
> ex: 可能一個月備份一次完整備份過去,一個禮拜備份一次差異備份,一天備份一次增量備份
- 災害復原速度最慢 : 當真的發生災害時,才開始進行軟體或硬體設備的安裝,使用備份檔進行復原,因此復原時間需要較長的時間
- 最便宜
----
#### hot DR V.S. warm DR V.S. cold DR
| | hot site | warm site | cold site |
| ------------ | -------- | --------- | ---------- |
| 設備完整度 | 最高👍 | 中間 | 最低 👎 |
| 復原速度 | 快 😊 | 中 | 慢 ☹ |
| 資料完整度 | 高😊 | 高 😊 | 低 ☹ |
| RPO | 小 | 小 | 大 |
| RTO | 小 | 中 | 大 |
| 成本 (Cost) | 高 ☹ | 中 | 低 😊 |
----
### Hands-on Workshop: Creating and Testing a DR Plan
---
- CIA
- confidentiality, integrity and availability
- 加密分持
- VeraCrypt

---
## 9. Conclusion and Q&A
### Key Takeaways and Action Items
### Q&A Session
---
Contact: bluet@bluet.org
Refs:
- https://hackmd.io/@ncnu-opensource/book/https%3A%2F%2Fhackmd.io%2F%40Shaila-Hsiao%2FS1xDRapAs
- https://hackmd.io/@ncnu-opensource/book/https%3A%2F%2Fhackmd.io%2Fq2oW90yQQr-DUTOxbe15Sw%3Fview