概述
FusionInsight Manager提供對集群內的用戶數據及系統數據的備份恢復能力,備份功能按組件提供。系統支持備份Manager的數據、組件元數據及業務數據。
備份功能支持將數據備份至本地磁盤(LocalDir)、本端HDFS(LocalHDFS)、遠端HDFS(RemoteHDFS)、NAS(NFS/CIFS)、SFTP服務器(SFTP)、OBS,具體操作請參考備份數據。
對于支持多服務的組件,支持同服務多個實例的備份恢復功能且備份恢復操作與自身服務實例一致。

說明MRS 3.1.0及之后版本才支持備份數據到OBS。
備份恢復任務的使用場景如下:
- 用于日常備份,確保系統及組件的數據安全。
- 當系統故障導致無法工作時,使用已備份的數據完成恢復操作。
- 當主集群完全故障,需要創建一個與主集群完全相同的鏡像集群,可以使用已備份的數據完成恢復操作。
根據業務需要備份Manager配置數據
備份類型 備份內容 備份目錄類型 OMS
默認備份集群管理系統中的數據庫數據(不包含告警數據)以及配置數據。 l? ? LocalDir
l? ? LocalHDFS
l? ? RemoteHDFS
l? ? NFS
l? ? CIFS
l? ? SFTP
l? ? OBS
根據業務需要備份組件元數據或其他數據
備份類型 備份內容 備份目錄類型 DBService 備份DBService管理的組件(Loader、Hive、Spark、Oozie、Hue)的元數據。對于安裝了多服務的集群,包含多個Hive和Spark服務實例的元數據。
l? ? LocalDir
l? ? LocalHDFS
l? ? RemoteHDFS
l? ? NFS
l? ? CIFS
l? ? SFTP
l? ? OBS
Kafka
Kafka的元數據。
l? ? LocalDir
l? ? LocalHDFS
l? ? RemoteHDFS
l? ? NFS
l? ? CIFS
l? ? OBS
NameNode
備份HDFS元數據。添加多個NameService后,支持不同NameService的備份恢復功能且備份恢復操作與默認實例“hacluster”一致。
l? ? LocalDir
l? ? RemoteHDFS
l? ? NFS
l? ? CIFS
l? ? SFTP
l? ? OBS
Yarn
備份Yarn服務資源池相關信息。
HBase
HBase系統表的tableinfo文件和數據文件。
根據業務需要備份特定組件業務數據
備份類型 備份內容 備份目錄類型 HBase
備份表級別的用戶數據。對于安裝了多服務的集群,支持多個HBase服務實例的備份恢復功能且備份恢復操作與HBase服務實例一致。
l? ? RemoteHDFS
l? ? NFS
l? ? CIFS
l? ? SFTP
HDFS
備份用戶業務對應的目錄或文件。
說明
加密目錄不支持備份恢復。
Hive
備份表級別的用戶數據。對于安裝了多服務的集群,支持多個Hive服務實例的備份恢復功能且備份恢復操作與Hive服務實例一致。
需要特別說明的是,部分組件不提供單獨的數據備份與恢復功能:
- Kafka支持副本特性,在創建主題時可指定多個副本來備份數據。
- Mapreduce和Yarn的數據存放在HDFS上,故其依賴HDFS提供備份與恢復即可。
- ZooKeeper中存儲的業務數據,其備份恢復能力由各上層組件按需獨立實現。
原理
任務
在進行備份恢復之前,需要先創建備份恢復任務,并指定任務的參數,例如任務名稱、備份數據源和備份文件保存的目錄類型等等。通過執行備份恢復任務,用戶可完成數據的備份恢復需求。在使用Manager執行恢復HDFS、HBase、Hive和NameNode數據時,無法訪問集群。
每個備份任務可同時備份不同的數據源,每個數據源將生成獨立的備份文件,每次備份的所有備份文件組成一個備份文件集,可用于恢復任務。備份任務支持將備份文件保存在Linux本地磁盤、本集群HDFS與備集群HDFS中。
備份任務提供全量備份或增量備份的策略,云數據備份任務不支持增量備份策略。如果備份的路徑類型是NFS或CIFS,不建議使用增量備份功能。因為在NFS或CIFS備份時使用增量備份時,每次增量備份都會刷新最近一次全量備份的備份數據,所以不會產生新的恢復點。
說明任務運行規則:
某個任務已經處于執行狀態,則當前任務無法重復執行,其他任務也無法啟動。
周期任務自動執行時,距離該任務上次執行的時間間隔需要在120秒以上,否則任務推遲到下個周期啟動。手動啟動任務無時間間隔限制。
周期任務自動執行時,當前時間不得晚于任務開始時間120秒以上,否則任務推遲到下個周期啟動。
周期任務鎖定時無法自動執行,需要手動解鎖。
OMS、DBService、Kafka和NameNode備份任務開始執行前,若主管理節點“LocalBackup”分區可用空間小于20GB,則無法開始執行。
管理員在規劃備份恢復任務時,請嚴格根據業務邏輯、數據存儲結構、數據庫或表關聯關系,選擇需要備份或者恢復的數據。系統默認創建間隔為1小時的周期備份任務“default-oms”、“default- 集群ID ”,支持全量備份OMS及集群的DBService、NameNode等元數據到本地磁盤。
快照
系統通過快照技術,快速備份數據。快照包含HBase快照、HDFS快照快照。
- HBase快照
HBase快照是HBase表在特定時間的一個備份,該備份文件不復制業務數據,不影響RegionServer。HBase快照主要復制表的元數據,包含table descriptor,region info和HFile的引用信息。通過這些元數據信息可以恢復快照時間點之前的數據。
- HDFS快照
HDFS快照是HDFS文件系統在特定時間點的只讀備份副本,主要用于數據備份、用戶誤操作保護和災難恢復的場景。
任意HDFS目錄均可以配置啟用快照功能并創建對應的快照文件,為目錄創建快照前系統會自動啟用此目錄的快照功能。創建快照不會對正常的HDFS操作有任何影響。每個HDFS目錄最多可創建65536個快照。
如果一個HDFS目錄已創建快照,那么在快照完全刪除以前,此目錄無法刪除或修改名稱。該目錄的上級目錄或子目錄也無法再創建快照。
DistCp
DistCp(distributed copy)是一個用于在本集群HDFS中或不同集群HDFS間進行大量數據復制的工具。在HBase、HDFS或Hive元數據的備份恢復任務中,如果選擇將數據備份在備集群HDFS中,系統將調用DistCp完成操作。主備集群請選擇安裝相同版本的MRS軟件版本并安裝集群系統。
DistCp使用Mapreduce來影響數據的分布、異常處理及恢復和報告,此工具會把指定列表中包含的多個源文件和目錄輸入不同的Map任務,每個Map任務將復制列表中指定文件對應分區的數據。
使用DistCp在兩個集群的HDFS間進行數據復制,集群雙方需要分別配置互信(同一個FusionInsight Manager管理下的集群不需要配置互信)和啟用集群間拷貝功能。集群數據備份到另一個集群的HDFS時,需要安裝Yarn組件,否則備份失敗。
本地快速恢復
使用DistCp將本集群HBase、HDFS和Hive數據備份在備集群HDFS中以后,本集群HDFS保留了備份數據的快照。用戶可以通過創建本地快速恢復任務,直接從本集群HDFS的快照文件中恢復數據。
NAS
NAS(Network Attached Storage)是一種特殊的專用數據存儲服務器,包括存儲器件和內嵌系統軟件,可提供跨平臺文件共享功能。利用NFS(支持NFSv3、NFSv4)和CIFS(支持SMBv2、SMBv3)協議,用戶可以連通MRS的業務平面與NAS服務器,將數據備份至NAS或從NAS恢復數據。
說明
數據備份至NAS前,系統會自動將NAS共享地址掛載為本地分區。在備份結束后,系統會卸載NAS共享分區。
為防止備份恢復失敗,數據備份及恢復期間,請勿訪問NAS服務器掛載至本地的共享地址,如:“/srv/BigData/LocalBackup/nas”。
業務數據備份至NAS時,會使用DistCp。
規格
備份恢復特性規格
| 項目 | 參數 |
|---|---|
| 備份或恢復任務最大數量(個) | 100 |
| 同一集群同時運行的任務數量(個) | 1 |
| 等待運行的任務最大數量(個) | 199 |
| Linux本地磁盤最大備份文件大小(GB) | 600 |
說明若業務數據存儲在ZooKeeper中的上層組件,在備份恢復這類數據時,需確保單個備份或恢復任務的znode數量不會過大,否則會造成任務失敗,并影響Zookeeper的服務性能。可通過如下方法確認單個備份或恢復任務的znode數量:
l? 單個備份或恢復任務的znode數量要少于操作系統的文件句柄限制。查看句柄限制的方式如下:
l? 使用shell命令輸入:cat /proc/sys/fs/file-max,用于查看系統級的最大限制。
1.??? 使用shell命令輸入:ulimit -n,用于查看用戶級的限制。
l? 對于父目錄的znode數量超過上述限制的情形,可以通過其子目錄進行批量備份與恢復。使用Zookeeper提供的客戶端腳本查看znode數量的方式:
l? 在FusionInsight Manager首頁,選擇“集群 > 待操作集群的名稱 > 服務 > Zookeeper > 實例”,查看Zookeeper各角色的管理IP。
1.??? 登錄客戶端所在節點,執行如下命令:
zkCli.sh -server ip:port,其中ip可以為任意管理IP,port默認值是2181。
2.??? 當看到如下輸出信息時,表示已經成功連接上Zookeeper服務器。
WatchedEvent state:SyncConnected type:None path:null
[zk: ip:port(CONNECIED) 0]3.??? 使用getusage命令查看待備份目錄的znode數量,例如:
getusage /hbase/region,輸出結果中"Node count=xxxxxx"即表示region目錄下存儲的znode數量。
“default”任務規格
| 項目 | OMS | HBase | Kafka | DBService | NameNode |
|---|---|---|---|---|---|
| 備份周期 | 1小時 | 1小時 | 1小時 | 1小時 | 1小時 |
| 最大備份數 | 168個(7天歷史數據) | 168個(7天歷史數據) | 168個(7天歷史數據) | 168個(7天歷史數據) | 24個(1天歷史數據) |
| 單個備份文件最大大小 | 10MB | 10 MB | 512MB | 100MB | 20GB |
| 最大占用磁盤大小 | 1.64GB | 1.64 GB | 84GB | 16.41GB | 480GB |
| 備份數據保存位置 | 主備管理節點“數據存放路徑/LocalBackup/” | 主備管理節點“數據存放路徑/LocalBackup/” | 主備管理節點“數據存放路徑/LocalBackup/” | 主備管理節點“數據存放路徑/LocalBackup/” | 主備管理節點“數據存放路徑/LocalBackup/” |
說明
默認任務保存的備份數據,請管理員根據企業運維要求,定期轉移并保存到集群外部。
管理員可直接創建DistCp備份任務將OMS、DBService和NameNode等的數據保存到外部集群。
集群數據的備份任務運行時長可根據要備份的數據量除以集群與備份設備之間的網絡帶寬來計算得出,在實際場景中,建議將計算得出的時常乘以1.5作為任務執行時長參考值。
執行數據備份任務會對集群的最大IO性能產生影響,建議備份任務運行時間與集群業務高峰錯開。