對(duì)應(yīng)7.17官方文檔路徑: Snapshot and restore
官方地址如下:
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/snapshot-restore.html
快照和恢復(fù)
快照是正在運(yùn)行的 ES 集群的備份笛园,你可以使用快照做以下事情:
- 定期備份集群像鸡,無(wú)需停機(jī)
- 在刪除數(shù)據(jù)或者硬件故障后恢復(fù)數(shù)據(jù)
- 在集群之間傳輸數(shù)據(jù)
- 在 cold 和 frozen 數(shù)據(jù)層通過(guò)可搜索快照降低存儲(chǔ)成本
快照工作流程
ES 將快照存儲(chǔ)在集群存儲(chǔ)外的存儲(chǔ)空間內(nèi)悉盆,稱為快照倉(cāng)庫(kù)(snapshot repository)堰乔。在你制作或者恢復(fù)快照之前章鲤,你必須在集群上注冊(cè)一個(gè)快照倉(cāng)庫(kù)莉给,ES 支持多種具備云存儲(chǔ)屬性的存儲(chǔ)庫(kù)楷怒,包括:
- AWS S3
- Google Cloud Storage(GCS)
- Microsoft Azure
在注冊(cè)快照倉(cāng)庫(kù)后拍冠,你可以使用快照生命周期管理(SLM)自動(dòng)創(chuàng)建并管理快照掀虎,你可以通過(guò)恢復(fù)快照(restore)恢復(fù)或者傳輸數(shù)據(jù)。
快照內(nèi)容
默認(rèn)集群快照包含集群狀態(tài)怯屉,全部 data streams易阳,全部 open 狀態(tài)的索引附较,包括系統(tǒng)索引。集群狀態(tài)包含如下內(nèi)容:
- Persistent 級(jí)別集群配置
- 索引模板
- 舊版本索引模板
- 攝取管道
- ILM策略
- 7.12.0 版本后的 feature states
你還可以僅對(duì)集群中的特定數(shù)據(jù)流或索引進(jìn)行快照潦俺。包含數(shù)據(jù)流或索引的快照會(huì)自動(dòng)包含其別名拒课。還原快照時(shí),你可以選擇是否還原這些別名事示。
快照不包含以下內(nèi)容:
- Transient 級(jí)別集群配置
- 注冊(cè)過(guò)的快照倉(cāng)庫(kù)
- 節(jié)點(diǎn)配置文件
Feature states
功能狀態(tài)包含用來(lái)存儲(chǔ)配置早像、歷史記錄和 ES 的其他功能的索引和數(shù)據(jù)流,例如 security 和 kibana 相關(guān)索引肖爵。
功能狀態(tài)通常包含一個(gè)或者多個(gè)系統(tǒng)索引或者數(shù)據(jù)流卢鹦,還可能包含該功能使用的常規(guī)索引和數(shù)據(jù)流。例如遏匆,功能狀態(tài)可能包含該功能執(zhí)行歷史的常規(guī)索引法挨,將此歷史記錄存儲(chǔ)在常規(guī)索引中可以讓您更輕松地搜索它。
快照如何工作
快照會(huì)自動(dòng)刪除重復(fù)數(shù)據(jù)來(lái)節(jié)約存儲(chǔ)空間并減少網(wǎng)絡(luò)傳輸開銷幅聘。備份索引時(shí)凡纳,快照會(huì)復(fù)制一個(gè)索引 segments 的副本并將它們存儲(chǔ)在快照倉(cāng)庫(kù)。由于段是不可變的帝蒿,快照只需要復(fù)制自存儲(chǔ)庫(kù)的最后一個(gè)快照以來(lái)新創(chuàng)建的全部段荐糜。
每個(gè)快照在邏輯上也是獨(dú)立的。當(dāng)你刪除快照時(shí)葛超,ES 只會(huì)刪除該快照專門使用的段暴氏,不會(huì)刪除倉(cāng)庫(kù)中其他快照使用的段。
快照和分片分配
快照從索引的主分片復(fù)制段绣张。當(dāng)你開始制作一個(gè)快照答渔,ES 立刻開始復(fù)制任何可用的主分片的段。如果一個(gè)分片正在啟動(dòng)或者在重新定位中侥涵,ES 將等待這些過(guò)程完成后再進(jìn)行復(fù)制沼撕。如果一個(gè)或多個(gè)主分片不可用宋雏,快照制作將失敗。
一旦快照開始復(fù)制分片的段务豺,ES 將不會(huì)依據(jù)重新平衡和分片分配設(shè)置規(guī)則移動(dòng)分片到其他節(jié)點(diǎn)磨总,在快照完成復(fù)制數(shù)據(jù)后才會(huì)進(jìn)行分片移動(dòng)。
快照開始和結(jié)束時(shí)間
快照不代表某一個(gè)精確時(shí)間點(diǎn)集群的數(shù)據(jù)狀態(tài)笼沥。每個(gè)快照都包含起止時(shí)間蚪燕,快照代表起止時(shí)間范圍內(nèi)的某一個(gè)時(shí)間點(diǎn)每個(gè)分片的數(shù)據(jù)視圖。
快照兼容性
要將快照恢復(fù)到其他集群集群奔浅,快照馆纳、集群和任何恢復(fù)的索引的版本必須兼容。
快照版本兼容
你無(wú)法將快照還原到早期版本的 ES汹桦。例如你無(wú)法將在 7.6.0 中拍攝的快照恢復(fù)到 7.5.0 版本集群厕诡。
索引兼容
你從快照恢復(fù)的任何索引也必須與當(dāng)前集群的版本兼容。如果你嘗試恢復(fù)在不兼容版本集群中創(chuàng)建的索引营勤,則恢復(fù)將失敗。
你無(wú)法將索引恢復(fù)到早期版本的 ES壹罚。例如你無(wú)法將在 7.6.0 中創(chuàng)建的索引恢復(fù)到 7.5.0 版本集群葛作。
兼容的快照中可包含不兼容版本的索引,例如 6.8 版本集群的快照可以包含 5.6 版本集群創(chuàng)建的索引猖凛。如果你嘗試將 5.6 版本的索引恢復(fù)到 7.17 版本集群中赂蠢,則恢復(fù)將失敗。如果你在升級(jí)集群之前拍攝快照辨泳,請(qǐng)記住這一點(diǎn)虱岂。
為了解決上述問(wèn)題,你可以將索引恢復(fù)到另一個(gè)與索引和當(dāng)前集群都兼容的最新版本的 ES 中菠红,然后你可以使用 remote reindex 方式將數(shù)據(jù)導(dǎo)入當(dāng)前集群第岖,注意只有索引 _source 設(shè)置為 enabled 才可以使用 reindex from remote API。
Reindex from remote 可能比恢復(fù)快照耗費(fèi)更長(zhǎng)的時(shí)間试溯。在正式開始之前蔑滓,使用部分少量數(shù)據(jù)測(cè)試其性能,以估計(jì)你將花費(fèi)的時(shí)間遇绞。
注意事項(xiàng)
其他備份方式
制作快照是備份集群唯一可靠且受支持的方式键袱。你不能通過(guò)復(fù)制節(jié)點(diǎn)的數(shù)據(jù)目錄來(lái)備份 ES 集群,官方?jīng)]有方式支持從文件系統(tǒng)級(jí)別的備份恢復(fù)數(shù)摹闽。如果你嘗試從此類備份中恢復(fù)集群蹄咖,它可能會(huì)因損壞或丟失文件或其他數(shù)據(jù)不一致而報(bào)告失敗,或者它可能已經(jīng)成功地默默地丟失了一些數(shù)據(jù)付鹿。
集群節(jié)點(diǎn)的數(shù)據(jù)目錄副本不能用作備份澜汤,因?yàn)樗皇瞧鋬?nèi)容在單個(gè)時(shí)間點(diǎn)的一致表示蚜迅。您無(wú)法通過(guò)在制作副本時(shí)關(guān)閉節(jié)點(diǎn)來(lái)解決此問(wèn)題,也無(wú)法通過(guò)獲取原子文件系統(tǒng)級(jí)快照來(lái)解決此問(wèn)題银亲,因?yàn)?ES 具有跨越整個(gè)集群的一致性要求慢叨,您必須使用內(nèi)置快照功能進(jìn)行集群備份。
備份創(chuàng)庫(kù)中的內(nèi)容
不要修改備份倉(cāng)庫(kù)中的任何內(nèi)容或運(yùn)行可能會(huì)干擾其內(nèi)容的進(jìn)程务蝠。如果 ES 以外的東西修改了倉(cāng)庫(kù)內(nèi)容拍谐,那么未來(lái)制作快照或者恢復(fù)操作可能會(huì)失敗,報(bào)告損壞或者其他數(shù)據(jù)不一致問(wèn)題馏段,或者默默地丟失了一些數(shù)據(jù)并報(bào)告成功轩拨。
但是,你可以安全的從快照倉(cāng)庫(kù)的備份中恢復(fù)其內(nèi)容院喜,只要:
- 在您恢復(fù)其內(nèi)容時(shí)亡蓉,該存儲(chǔ)庫(kù)未向 Elasticsearch 注冊(cè)。
- 當(dāng)您完成恢復(fù)存儲(chǔ)庫(kù)時(shí)喷舀,其內(nèi)容與您進(jìn)行備份時(shí)的內(nèi)容完全相同砍濒。