云盤三副本技術(shù)
阿里云云盤三副本技術(shù)通過分布式文件系統(tǒng)為云服務(wù)器ECS提供穩(wěn)定、高效、可靠的數(shù)據(jù)隨機(jī)訪問能力,為ECS實(shí)例實(shí)現(xiàn)99.9999999%的數(shù)據(jù)可靠性保證。本文介紹三副本的概念及原理。
三副本介紹
您對云盤的讀寫最終都會(huì)被映射為對阿里云數(shù)據(jù)存儲(chǔ)平臺(tái)上的文件的讀寫。阿里云提供了一個(gè)扁平的線性存儲(chǔ)空間,在內(nèi)部會(huì)對線性地址進(jìn)行切片,一個(gè)分片稱為一個(gè)Chunk(中文含義為塊)。每一個(gè)Chunk,阿里云都會(huì)復(fù)制成三個(gè)副本,并將這些副本按照一定的策略存放在存儲(chǔ)集群中的不同數(shù)據(jù)節(jié)點(diǎn)上,保證數(shù)據(jù)的可靠性。
對云盤上的數(shù)據(jù)而言,無論是新增、修改還是刪除數(shù)據(jù),所有用戶層的讀寫操作都會(huì)同步到底層的三份副本上。這種三副本模式,能夠保障您數(shù)據(jù)的可靠性和一致性。
三副本原理
在阿里云數(shù)據(jù)存儲(chǔ)平臺(tái)中,有三類角色,分別為Master、Chunk Server和Client。您的一個(gè)寫操作最終由Client執(zhí)行,執(zhí)行過程簡要說明如下:
Client收到寫操作請求,并計(jì)算出寫操作對應(yīng)的Chunk。
Client向Master查詢該Chunk的三份副本存放的數(shù)據(jù)節(jié)點(diǎn)(即Chunk Server)。
Client根據(jù)Master返回的結(jié)果,向這三個(gè)Chunk Server發(fā)出寫請求。
如果三份都寫成功,Client返回成功,反之則Client返回失敗。
為防止由于一個(gè)Chunk Server或一個(gè)機(jī)架的故障導(dǎo)致數(shù)據(jù)不可用,Master會(huì)保證三份副本分布在不同機(jī)架下的不同Chunk Server上。因此,Master的分布策略中會(huì)綜合考慮數(shù)據(jù)存儲(chǔ)平臺(tái)中所有Chunk Server的硬盤使用情況、交換機(jī)的分布情況、電源供電情況和節(jié)點(diǎn)負(fù)載情況等。
數(shù)據(jù)保護(hù)機(jī)制
當(dāng)有數(shù)據(jù)節(jié)點(diǎn)損壞,或者某個(gè)數(shù)據(jù)節(jié)點(diǎn)上的部分硬盤發(fā)生故障時(shí),集群中部分Chunk的有效副本數(shù)就會(huì)小于三。此時(shí),Master就會(huì)發(fā)起自動(dòng)同步任務(wù),在Chunk Server之間復(fù)制數(shù)據(jù),使集群中所有Chunk的有效副本數(shù)達(dá)到三份。
如果ECS實(shí)例由于病毒感染、人為誤刪除或黑客入侵等軟故障原因造成數(shù)據(jù)丟失,需要您采用備份或者快照等技術(shù)手段來解決。任何技術(shù)都不可能解決全部問題,因地制宜地選擇合適的數(shù)據(jù)保護(hù)措施,才能為您的業(yè)務(wù)數(shù)據(jù)筑起一道堅(jiān)實(shí)的防線。更多有關(guān)快照的詳情,請參見快照概述。