秒启万台主机,腾讯云云硬盘数据调度架构演进
導(dǎo)語(yǔ) | CBS云硬盤(pán)為騰訊云客戶(hù)提供了?可靠、?可?和低成本的統(tǒng)?塊存儲(chǔ)服務(wù)。CBS針對(duì)數(shù)據(jù)安全、云服務(wù)器?產(chǎn)、資源均衡、云盤(pán)介質(zhì)升級(jí)等場(chǎng)景下的數(shù)據(jù)調(diào)度能?需求,抽象出統(tǒng)?數(shù)據(jù)調(diào)度平臺(tái)。本文是對(duì)騰訊云存儲(chǔ)專(zhuān)家工程師——楊光超在云+社區(qū)online的分享整理,希望與大家一同交流。
點(diǎn)擊查看完整直播回放
一、CBS數(shù)據(jù)調(diào)度系統(tǒng)的演進(jìn)歷程
? ? ? ? ? ?
CBS存儲(chǔ)系統(tǒng),主要為騰訊云的CVM提供高性能、高可靠、低成本的塊存儲(chǔ)服務(wù)。
CBS數(shù)據(jù)調(diào)度系統(tǒng),是基于存儲(chǔ)系統(tǒng)構(gòu)建的統(tǒng)一的數(shù)據(jù)調(diào)度服務(wù)。為什么要構(gòu)建統(tǒng)一的數(shù)據(jù)調(diào)度呢?
在2015年時(shí)它僅僅作為快照系統(tǒng)存在,僅是保存在云上的數(shù)據(jù),目的是為了提高整個(gè)數(shù)據(jù)的安全性。用戶(hù)會(huì)對(duì)數(shù)據(jù)進(jìn)行備份,如果這個(gè)時(shí)候數(shù)據(jù)丟失,可以利用快照對(duì)其恢復(fù)。
上云業(yè)務(wù)尚未規(guī)模化,快照系統(tǒng)的業(yè)務(wù)量不大,而且快照備份本身是離線(xiàn)業(yè)務(wù),所以針對(duì)IO時(shí)延時(shí)延方面并不敏感。
但隨著業(yè)務(wù)上云越來(lái)越多,云盤(pán)的規(guī)模也越來(lái)越大。利用回滾的能力,來(lái)做鏡像生產(chǎn)云服務(wù)器,數(shù)據(jù)調(diào)度系統(tǒng)拓展了新的應(yīng)用場(chǎng)景,同時(shí),系統(tǒng)回滾能力也要求越來(lái)越高,時(shí)延方面也逐漸敏感。
隨著CBS業(yè)務(wù)不斷快速增長(zhǎng)和架構(gòu)不斷演進(jìn),催生出另一個(gè)全新數(shù)據(jù)調(diào)度場(chǎng)景——云盤(pán)的在線(xiàn)遷移。
云盤(pán)在線(xiàn)遷移是什么意思?某些場(chǎng)景下需要將云盤(pán)從一個(gè)存儲(chǔ)倉(cāng)庫(kù)遷移到另外一個(gè)存儲(chǔ)倉(cāng)庫(kù),而且是在線(xiàn)遷移,對(duì)用戶(hù)的業(yè)務(wù)是無(wú)損的。
它有一個(gè)特點(diǎn)是對(duì)時(shí)延的抖動(dòng)敏感,用戶(hù)的業(yè)務(wù)已經(jīng)運(yùn)行了,對(duì)整個(gè)時(shí)延抖動(dòng)的要求是極低的。
我們把前文所述的數(shù)據(jù)能力抽象出一個(gè)統(tǒng)一數(shù)據(jù)調(diào)度平臺(tái),負(fù)責(zé)我們離線(xiàn)的數(shù)據(jù)和在線(xiàn)的數(shù)據(jù)打通。它當(dāng)前涵蓋主要三個(gè)場(chǎng)景:數(shù)據(jù)保護(hù)、云服務(wù)器批量生產(chǎn)和云盤(pán)在線(xiàn)遷移。下文將圍繞這三個(gè)場(chǎng)景一一展開(kāi)。
首先介紹整個(gè)數(shù)據(jù)調(diào)度系統(tǒng)的三層架構(gòu),第一層是業(yè)務(wù)中控層,中控是高可用服務(wù),負(fù)責(zé)接受前端的業(yè)務(wù)請(qǐng)求,不管是打快照還是做回滾,以及云盤(pán)遷移,都會(huì)到我們的中控層,再轉(zhuǎn)發(fā)任務(wù)給數(shù)據(jù)調(diào)度層。
數(shù)據(jù)調(diào)度層是集群模式,會(huì)把調(diào)度任務(wù)按照邏輯地址劃為大小相同的數(shù)據(jù)塊,并把塊信息給到傳輸層,那么傳輸層看到的就是一個(gè)個(gè)的數(shù)據(jù)塊,數(shù)據(jù)調(diào)度層會(huì)告訴傳輸層節(jié)點(diǎn)這個(gè)數(shù)據(jù)塊源端在哪里,目的在哪里,再由傳輸層節(jié)點(diǎn)完成了數(shù)據(jù)的搬遷功能。
數(shù)據(jù)調(diào)度系統(tǒng),為CBS構(gòu)筑離線(xiàn)存儲(chǔ)系統(tǒng)和在線(xiàn)存儲(chǔ)系統(tǒng)、在線(xiàn)存儲(chǔ)系統(tǒng)之間數(shù)據(jù)流動(dòng)能力。
===
二、典型業(yè)務(wù)場(chǎng)景以及面臨的挑戰(zhàn)
?? ? ? ? ? ?
下文將為大家介紹CBS的三個(gè)典型業(yè)務(wù)場(chǎng)景,以及面臨的挑戰(zhàn)有哪些?
1. 數(shù)據(jù)保護(hù)
(1)數(shù)據(jù)保護(hù)
用在我們的日常備份,也就是重要的業(yè)務(wù)數(shù)據(jù)要做備份,萬(wàn)一哪天有損壞,我們恢復(fù)到前一天或者前一段時(shí)間點(diǎn)的數(shù)據(jù)。這是我們常用的日常備份。目前產(chǎn)品能力有手動(dòng)快照和定期自動(dòng)快照兩種。
(2)業(yè)務(wù)恢復(fù)
業(yè)務(wù)恢復(fù)指的是,假如你業(yè)務(wù)受損了,也可以快速的恢復(fù)。還有一種場(chǎng)景就是系統(tǒng)重裝來(lái)恢復(fù)環(huán)境,假如說(shuō)你的系統(tǒng)做了測(cè)試,想恢復(fù)到原來(lái)的現(xiàn)場(chǎng),我們可以通過(guò)系統(tǒng)重裝來(lái)完成。
2. 鏡像生產(chǎn)云服務(wù)器
(1)鏡像制作
通過(guò)云盤(pán)制作鏡像,就是一次快照的創(chuàng)建。
(2)鏡像生產(chǎn)云服務(wù)器
鏡像制作完成之后,我們用鏡像去批量部署應(yīng)用,這樣就能夠達(dá)到快速的部署業(yè)務(wù)的目的。
(3)鏡像異地復(fù)制
假如我們的業(yè)務(wù)需要容災(zāi),或者說(shuō)同一鏡像需要多地域的部署業(yè)務(wù),就可以通過(guò)把鏡像從一個(gè)地域復(fù)制到另外一個(gè)地域完成,就是鏡像的跨地域復(fù)制能力。
3. 云盤(pán)遷移
(1)資源均衡
為了提升用戶(hù)的體驗(yàn),需要倉(cāng)庫(kù)間資源均衡調(diào)度。
(2)架構(gòu)升級(jí)
CBS新架構(gòu),無(wú)論是產(chǎn)品性能還是用戶(hù)體驗(yàn)方面,都有很大的提升,需要對(duì)云盤(pán)做架構(gòu)升級(jí),需要把云盤(pán)從老系統(tǒng)遷到新的系統(tǒng)里。
(3)硬件批次故障
如果出現(xiàn)了批次的硬件故障,需要把倉(cāng)庫(kù)里的所有的云盤(pán)遷出到正常的倉(cāng)庫(kù)里面,這依賴(lài)云盤(pán)遷移能力。
4. 面臨的挑戰(zhàn)
(1)數(shù)據(jù)保護(hù)
-
無(wú)感備份:數(shù)據(jù)備份要做到無(wú)感備份。
-
數(shù)據(jù)可靠:備份的數(shù)據(jù)要可靠存儲(chǔ),不能說(shuō)備份出去了,當(dāng)需要恢復(fù)的時(shí)候發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤。
(2)鏡像生產(chǎn)云服務(wù)器
-
秒級(jí)開(kāi)機(jī):在鏡像生產(chǎn)云服務(wù)器的場(chǎng)景下,為了提升用戶(hù)體驗(yàn),需要鏡像生產(chǎn)開(kāi)機(jī)之后能夠立馬啟動(dòng),而不是要等鏡像數(shù)據(jù)全部下載完成。
-
高并發(fā)能力:我們通過(guò)鏡像批量發(fā)放云服務(wù)器的時(shí)候,支持用戶(hù)上萬(wàn)的并發(fā)能力。
(3)云盤(pán)遷移
-
業(yè)務(wù)無(wú)感知:不能給用戶(hù)業(yè)務(wù)造成可感知的時(shí)延抖動(dòng)。
-
故障自愈能力:假如遷移的過(guò)程中系統(tǒng)出現(xiàn)故障,或者說(shuō)軟件層出現(xiàn)Bug,或者云盤(pán)遷移受阻的時(shí)候,需要很強(qiáng)的自愈能力,故障對(duì)業(yè)務(wù)無(wú)感知。
三、CBS數(shù)據(jù)調(diào)度系統(tǒng)關(guān)鍵技術(shù)
1. COW與ROW
對(duì)于數(shù)據(jù)保護(hù)技術(shù),傳統(tǒng)行業(yè)常用的就是快照。提到快照,不得不說(shuō)常用的兩種快照技術(shù):
(1)COW技術(shù)
寫(xiě)時(shí)復(fù)制,就是當(dāng)創(chuàng)建完快照,再去寫(xiě)這個(gè)同一個(gè)地址塊的時(shí)候,需要把原來(lái)的地址塊中數(shù)據(jù)先拷貝到新分配的地址塊空間中,再更新源地址塊中數(shù)據(jù)。
(2)ROW技術(shù)
寫(xiě)訪(fǎng)問(wèn)時(shí),需要重新定向到另外一個(gè)地址塊空間上去。
對(duì)于COW和ROW的實(shí)現(xiàn)機(jī)制,首先是寫(xiě)時(shí)復(fù)制。如上圖所示,在T1時(shí)刻對(duì)源卷打下快照,上面藍(lán)色部分是源卷的地址塊指針,中間的橙色是磁盤(pán)上真正的物理空間——數(shù)據(jù)塊,這個(gè)時(shí)候源卷和快照的卷,地址塊指針都指向相同實(shí)際的物理空間。
以訪(fǎng)問(wèn)block4為例,當(dāng)打完快照想更新block4的數(shù)據(jù)的時(shí)候,寫(xiě)時(shí)復(fù)制的做法就是先重分配一個(gè)新block5,把block4的數(shù)據(jù)先拷貝到block5里面去,然后再把快照的數(shù)據(jù)塊邏輯地址指針指向第5個(gè)數(shù)據(jù)塊,用戶(hù)io再更新block4數(shù)據(jù)塊。
經(jīng)過(guò)這次寫(xiě)過(guò)程之后,我們可以看到源卷的還是指原來(lái)的這四個(gè)物理block地址,快照這邊其實(shí)有一個(gè)指針映射的過(guò)程,從原來(lái)的block4轉(zhuǎn)變到block5。
寫(xiě)時(shí)復(fù)制有一個(gè)性能問(wèn)題,就是把block4的數(shù)據(jù)讀出來(lái),寫(xiě)到block5里面去,然后再同時(shí)有一次元數(shù)據(jù)更改,最后是用戶(hù)寫(xiě)入到block4上面去,就是一個(gè)用戶(hù)寫(xiě)會(huì)放大到“一次讀、三次寫(xiě)”的過(guò)程。
COW技術(shù)存在嚴(yán)重的寫(xiě)放大問(wèn)題,影響寫(xiě)的性能,它適用的場(chǎng)景是讀密集型。ROW跟COW不一樣的地方,在于如果用戶(hù)打完快照再寫(xiě)block4空間,會(huì)新分配一個(gè)block5,用戶(hù)數(shù)據(jù)再寫(xiě)入block5,修改源卷邏輯地址指針映射。ROW除用戶(hù)寫(xiě)外,只增加一次元數(shù)據(jù)寫(xiě)操作。這主要是影響讀性能,適用于寫(xiě)密集型場(chǎng)景。
ROW和COW它們各有各的應(yīng)用場(chǎng)景。在分布式存儲(chǔ)領(lǐng)域,卷的數(shù)據(jù)是打散在一個(gè)存儲(chǔ)集群的很多塊硬盤(pán)或者ssd上;由于數(shù)據(jù)打散,讀的性能比單物理盤(pán)好很多。另外,存儲(chǔ)系統(tǒng)多會(huì)采用cache技術(shù)優(yōu)化讀性能,所以現(xiàn)在分布式存儲(chǔ)系統(tǒng)快照多采用ROW模式來(lái)實(shí)現(xiàn)。
2. 多版本ROW機(jī)制
?? ? ? ? ? ?? ? ? ? ? ? ??
數(shù)據(jù)調(diào)度系統(tǒng),采用多版本ROW機(jī)制實(shí)現(xiàn)快照技術(shù)。什么是多版本呢?其實(shí)就是用版本號(hào)去區(qū)分快照點(diǎn)數(shù)據(jù),創(chuàng)建一次快照,整個(gè)卷的版本號(hào)會(huì)加一。
舉個(gè)簡(jiǎn)單例子,一個(gè)卷假如有四個(gè)數(shù)據(jù)塊,剛開(kāi)始創(chuàng)卷并寫(xiě)入數(shù)據(jù)的時(shí)候,T0時(shí)刻打一次快照,這個(gè)時(shí)候我們要把備份的數(shù)據(jù)備份到離線(xiàn)存儲(chǔ)器里,很明顯我們要把A、B、D三個(gè)塊搬遷到離線(xiàn)存儲(chǔ)系統(tǒng)里去。
假如說(shuō)這個(gè)時(shí)候用戶(hù)再來(lái)寫(xiě)A塊,因?yàn)榫淼陌姹臼?,會(huì)為A塊再重新分配新的數(shù)據(jù)塊A',A'塊的版本號(hào)記錄為2。寫(xiě)C塊,因?yàn)槭堑谝淮螌?xiě),之前沒(méi)有分配物理塊,那么這次就分配一個(gè)物理塊C版本號(hào)記錄為2。到T2時(shí)候再打快照能很明確知道,T0時(shí)刻到T2時(shí)刻新修改的數(shù)據(jù)塊,也就是要把A'和C塊搬到離線(xiàn)存儲(chǔ)系統(tǒng)里。
3. 快照概述
? ? ? ? ? ?
CBS快照,是快照創(chuàng)建時(shí)候的數(shù)據(jù)的完整備份,采用全量加增量結(jié)合的方式備份數(shù)據(jù)。
全量是T0時(shí)刻之前沒(méi)有打快照的,這個(gè)時(shí)候的數(shù)據(jù)全部備份到離線(xiàn)系統(tǒng)。那么在T2時(shí)刻創(chuàng)建快照只備份從T0時(shí)刻到T2時(shí)刻的中間修改的那一部分增量數(shù)據(jù),這是全量加增量的備份機(jī)制。
創(chuàng)建快照,對(duì)用戶(hù)而言要達(dá)到秒級(jí)完成。當(dāng)調(diào)度系統(tǒng)收到快照請(qǐng)求,首先到中控層,通知CBS存儲(chǔ)系統(tǒng)卷版本號(hào)加一,存儲(chǔ)系統(tǒng)收到請(qǐng)求后,將更新后的卷版本號(hào)同步給CBS客戶(hù)端。
從CBS客戶(hù)端新寫(xiě)入的數(shù)據(jù)攜帶新版本號(hào)寫(xiě)入到存儲(chǔ)側(cè),存儲(chǔ)側(cè)就為寫(xiě)請(qǐng)求分配新版本物理block,達(dá)到通過(guò)block版本區(qū)分快照數(shù)據(jù)還是卷數(shù)據(jù)。
存儲(chǔ)系統(tǒng)響應(yīng)了之后,就告訴用戶(hù)創(chuàng)建快照成功了。這個(gè)時(shí)候快照數(shù)據(jù)還在我們的CBS存儲(chǔ)系統(tǒng)里,快照數(shù)據(jù)異步搬遷到離線(xiàn)存儲(chǔ)系統(tǒng)中。
數(shù)據(jù)調(diào)度層按照卷邏輯地址大小,切分成數(shù)據(jù)塊大小,再告訴數(shù)據(jù)傳輸層,一個(gè)一個(gè)塊從存儲(chǔ)系統(tǒng)讀出來(lái),上傳到我們的離線(xiàn)存儲(chǔ)系統(tǒng),這樣就完成了數(shù)據(jù)的備份。之所以要異構(gòu)存儲(chǔ)快照數(shù)據(jù),主要是基于快照數(shù)據(jù)可靠性來(lái)考量的
4. 回滾流程
?? ? ? ? ? ?
假如創(chuàng)建快照后,用戶(hù)的云盤(pán)數(shù)據(jù)出現(xiàn)了損壞,用戶(hù)想回退到某個(gè)指定快照點(diǎn)。因?yàn)槭侨考釉隽?#xff0c;那怎么知道指定快照點(diǎn)有哪些數(shù)據(jù)是當(dāng)前有效的?換句話(huà)說(shuō),備份完了后怎么知道這個(gè)快照點(diǎn)有哪些是新增數(shù)據(jù)?哪些是需要依賴(lài)于舊快照點(diǎn)的數(shù)據(jù)?
全量加增量的備份方式,通過(guò)快照鏈來(lái)標(biāo)識(shí),快照鏈會(huì)作為元數(shù)據(jù)持久化;每個(gè)快照點(diǎn)具體備份了卷線(xiàn)性地址空間中的哪些數(shù)據(jù)塊通過(guò)bitmap來(lái)標(biāo)識(shí),bitmap中為1的bit位表示該邏輯block有數(shù)據(jù)備份到離線(xiàn)系統(tǒng)中;數(shù)據(jù)備份完成后,調(diào)度系統(tǒng)會(huì)把bitmap元數(shù)據(jù)一起寫(xiě)入離線(xiàn)存儲(chǔ)系統(tǒng)中。
當(dāng)我們選定一個(gè)快照點(diǎn)(比如快照點(diǎn)3)進(jìn)行回滾的時(shí)候,看到當(dāng)前第一個(gè)塊A3,對(duì)應(yīng)的bitmap的bit位為0,表示沒(méi)有數(shù)據(jù),那就依次向前看依賴(lài)的快照點(diǎn),發(fā)現(xiàn)A2是最新的數(shù)據(jù),就可以不往前找了,以A2數(shù)據(jù)為準(zhǔn)。
看第二個(gè)數(shù)據(jù)塊,本身就有最新數(shù)據(jù),那我就以數(shù)據(jù)塊B3為準(zhǔn)。第三個(gè)數(shù)據(jù)塊沒(méi)有,再往前,發(fā)現(xiàn)到它的依賴(lài)節(jié)點(diǎn)也沒(méi)有的話(huà),再依次往前發(fā)現(xiàn)也沒(méi)有,那就是這個(gè)數(shù)據(jù)塊就是沒(méi)有數(shù)據(jù)的。
第四個(gè)數(shù)據(jù)塊,同樣的方式查找依賴(lài)的快照點(diǎn),直到找到D1;最終將A2、B3、D1數(shù)據(jù)塊搬遷到云盤(pán)里面去,恢復(fù)到了你當(dāng)時(shí)打快照點(diǎn)3時(shí)場(chǎng)景。
調(diào)度系統(tǒng)通過(guò)對(duì)指定快照點(diǎn)以及依賴(lài)的快照點(diǎn)進(jìn)行數(shù)據(jù)合并,然后進(jìn)行數(shù)據(jù)回放來(lái)回到指定快照點(diǎn)創(chuàng)建時(shí)刻的場(chǎng)景,這是一個(gè)回滾的流程。
5. 鏡像生產(chǎn)云服務(wù)器
?? ? ? ? ? ?
對(duì)于鏡像,比如在一臺(tái)云服務(wù)器上,預(yù)裝一些軟件,對(duì)云盤(pán)進(jìn)行快照并制作成鏡像,這個(gè)鏡像是預(yù)裝環(huán)境一個(gè)模板,通過(guò)這個(gè)模板能夠批量復(fù)制相同軟件環(huán)境的云服務(wù)器。
在數(shù)據(jù)調(diào)動(dòng)系統(tǒng)之前,鏡像是宿主機(jī)從鏡像系統(tǒng)下載后寫(xiě)入CBS云盤(pán),整個(gè)鏡像下載完成后,云服務(wù)器才啟動(dòng)起來(lái)。
這種方式有諸多不足之處。首先,如果鏡像文件很大的話(huà),下載時(shí)間很長(zhǎng),影響開(kāi)機(jī)時(shí)間;其次,因?yàn)樗拗鳈C(jī)上面還有其他云服務(wù)器,下載鏡像占用宿主機(jī)帶寬,其它云服務(wù)器會(huì)受影響;再次,我們要維護(hù)這樣一個(gè)鏡像系統(tǒng),需要很大的資源開(kāi)銷(xiāo)。
經(jīng)過(guò)場(chǎng)景分析,可以用數(shù)據(jù)調(diào)度系統(tǒng)的回滾能力支撐鏡像批量生產(chǎn)云服務(wù)器功能。
首先鏡像制作用快照創(chuàng)建能力就能夠完成,然后把鏡像放到我們的離線(xiàn)系統(tǒng)里面。如果需要批量發(fā)放云服務(wù)器,再通過(guò)調(diào)度系統(tǒng)從離線(xiàn)的存儲(chǔ)系統(tǒng),將鏡像文件導(dǎo)入到云盤(pán)上面就可以訪(fǎng)問(wèn)。
對(duì)這兩種方式做一個(gè)對(duì)比,從創(chuàng)建時(shí)間和資源的占用,速度的資源占用和成本方面,通過(guò)回滾創(chuàng)建云服務(wù)器具備如下幾大優(yōu)勢(shì):
第一,就是秒級(jí)創(chuàng)建,不需要全部下載完成,云服務(wù)器就可以開(kāi)機(jī),下文也會(huì)介紹其技術(shù)細(xì)節(jié)。
第二,鏡像下載是沒(méi)有經(jīng)過(guò)宿主機(jī)的,這樣的話(huà)對(duì)母機(jī)的資源沒(méi)有額外開(kāi)銷(xiāo),不會(huì)影響宿主機(jī)上其他云服務(wù)器。
第三,數(shù)據(jù)調(diào)度系統(tǒng)是個(gè)現(xiàn)成的系統(tǒng),沒(méi)有增加額外資源、成本的問(wèn)題。
綜上所述,通過(guò)回滾能力生產(chǎn)云服務(wù)器,天然就解決了之前鏡像生產(chǎn)子機(jī)存在的痛點(diǎn)。
6. 秒級(jí)回滾
? ? ?
怎樣做到開(kāi)機(jī)后立馬能夠啟動(dòng)呢?其實(shí)開(kāi)機(jī)后能不能啟動(dòng),取決于云服務(wù)器是否正常進(jìn)行io訪(fǎng)問(wèn)。
調(diào)度系統(tǒng)提供了一個(gè)秒級(jí)回滾的能力,通過(guò)回滾能讓我們的云服務(wù)器很短時(shí)間開(kāi)機(jī)啟動(dòng)。
云服務(wù)器啟動(dòng)要訪(fǎng)問(wèn)CBS云盤(pán)上的鏡像數(shù)據(jù),但鏡像從離線(xiàn)存儲(chǔ)系統(tǒng)搬遷到云盤(pán)上是逐步完成的,要訪(fǎng)問(wèn)的數(shù)據(jù)不一定已經(jīng)搬遷到云盤(pán)上。
創(chuàng)建云服務(wù)器的時(shí)候數(shù)據(jù)調(diào)度系統(tǒng)會(huì)啟動(dòng)從離線(xiàn)系統(tǒng)到云盤(pán)按卷邏輯地址的線(xiàn)性順序搬遷,將卷的邏輯分成數(shù)據(jù)塊,一塊一塊地往CBS云盤(pán)上數(shù)據(jù)搬遷。
比如有一塊云盤(pán)共有7個(gè)block,當(dāng)已經(jīng)完成了前兩個(gè)block的搬遷,但用戶(hù)想訪(fǎng)問(wèn)的是第5個(gè)block,此時(shí)CBS客戶(hù)端會(huì)判斷當(dāng)前還沒(méi)有完成第5個(gè)block的搬遷,就主動(dòng)通知數(shù)據(jù)調(diào)度系統(tǒng),把第5個(gè)搬遷到CBS盤(pán)上去;調(diào)度系統(tǒng)收到這樣的請(qǐng)求,會(huì)把第5個(gè)block優(yōu)先搬遷到CBS盤(pán)上。
搬遷完了之后,通知客戶(hù)端,block5已經(jīng)搬遷完成,客戶(hù)端就可以把訪(fǎng)問(wèn)block5的io下發(fā)給存儲(chǔ)側(cè)。
也即是,在正常的用戶(hù)io路徑上,增加了一次數(shù)據(jù)塊從離線(xiàn)存儲(chǔ)系統(tǒng)到在線(xiàn)存儲(chǔ)系統(tǒng)的搬遷過(guò)程,只是會(huì)增加極短延時(shí),但不會(huì)導(dǎo)致啟動(dòng)慢。
7. 熱點(diǎn)數(shù)據(jù)訪(fǎng)問(wèn)策略
? ??
通過(guò)前文的介紹我們知道,優(yōu)先搬遷其實(shí)是當(dāng)用戶(hù)io訪(fǎng)問(wèn)的數(shù)據(jù)塊還沒(méi)搬遷到CBS云盤(pán)場(chǎng)景下,先將io在客戶(hù)端掛住,同時(shí)優(yōu)先將該數(shù)據(jù)庫(kù)從離線(xiàn)系統(tǒng)到在線(xiàn)系統(tǒng)搬遷,然后將用戶(hù)io下發(fā)的過(guò)程。
這里有一個(gè)io在客戶(hù)端掛住的動(dòng)作,而掛住時(shí)間長(zhǎng)短取決于優(yōu)先搬遷的整個(gè)時(shí)延,我們通過(guò)優(yōu)化優(yōu)先搬遷時(shí)延來(lái)減少io抖動(dòng)。
通過(guò)鏡像生產(chǎn)子機(jī)這個(gè)典型的應(yīng)用場(chǎng)景來(lái)說(shuō),鏡像一般會(huì)批量發(fā)放云服務(wù)器,鏡像數(shù)據(jù)本身就是一個(gè)典型的熱數(shù)據(jù)訪(fǎng)問(wèn)問(wèn)題。
為了起到提高用戶(hù)體驗(yàn)的作用,也即是為了優(yōu)化用戶(hù)io在優(yōu)先中的時(shí)延問(wèn)題,調(diào)度系統(tǒng)將鏡像數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù)緩存在傳輸層,做了一層鏡像數(shù)據(jù)cache,來(lái)縮短訪(fǎng)問(wèn)時(shí)延。
第一次去傳輸層加載數(shù)據(jù)的時(shí)候,cache未命中,就從離線(xiàn)存儲(chǔ)系統(tǒng)中加載上來(lái),寫(xiě)到我們的CBS系統(tǒng),同時(shí)數(shù)據(jù)塊緩存到我們的cache里面。
第二次加載就能命中,減少訪(fǎng)問(wèn)離線(xiàn)存儲(chǔ)系統(tǒng)的時(shí)延。無(wú)論優(yōu)先搬遷還是數(shù)據(jù)搬遷,這層cache對(duì)優(yōu)化用戶(hù)時(shí)延和減輕底層離線(xiàn)系統(tǒng)的負(fù)載是有很大作用的。
8. 系統(tǒng)水平擴(kuò)展能力
?? ? ? ? ? ?
為了支持整個(gè)云服務(wù)器的并發(fā)生產(chǎn)能力,調(diào)度系統(tǒng)針對(duì)系統(tǒng)水平擴(kuò)展能力做了一些優(yōu)化。如上圖所示,左邊是優(yōu)化前地域部署的一個(gè)中心系統(tǒng),一個(gè)數(shù)據(jù)調(diào)度層,另一個(gè)數(shù)據(jù)傳輸層。
這里會(huì)有兩個(gè)問(wèn)題:第一,中控層覆蓋整個(gè)地域,一旦故障,就會(huì)影響整個(gè)地域的云服務(wù)器的生產(chǎn)。
第二,單個(gè)大地域里分很多的可用區(qū),其實(shí)跨可用區(qū)的訪(fǎng)問(wèn)存在時(shí)延,而且還挺大的。基于這種考慮,把大的部署模型拆分成小的部署系統(tǒng),同時(shí)增強(qiáng)系統(tǒng)內(nèi)部可彈性擴(kuò)展,系統(tǒng)間提升平行復(fù)制的能力。
把大地域部署拆分成小可用區(qū)部署數(shù)據(jù)調(diào)度系統(tǒng),一方面縮小故障率,另一方面縮小了跨可用區(qū)訪(fǎng)問(wèn)的一個(gè)時(shí)延的問(wèn)題,這對(duì)調(diào)度系統(tǒng)的彈性能力有很大提升,有利于應(yīng)對(duì)CBS業(yè)務(wù)的快速增長(zhǎng)。
系統(tǒng)支持水平擴(kuò)展能力之后,怎么保證在一個(gè)小系統(tǒng)內(nèi)負(fù)載均衡?
這里總結(jié)了幾個(gè)方面分享給大家。我們是通過(guò)靜態(tài)和動(dòng)態(tài)相結(jié)合的方式保證整個(gè)系統(tǒng)負(fù)載均衡。靜態(tài)通過(guò)心跳上報(bào)負(fù)載信息,我們?cè)趧?chuàng)建的時(shí)候通過(guò)卷式做快照,都是基于云盤(pán)而言的,這樣我們根據(jù)云盤(pán)的ID做一次哈希,保證調(diào)度層各個(gè)節(jié)點(diǎn)上卷規(guī)模基本一致。
同時(shí),因?yàn)槊恳粋€(gè)云盤(pán)的訪(fǎng)問(wèn)的量包括數(shù)據(jù)量,負(fù)載情況都不一樣,調(diào)度系統(tǒng)根據(jù)負(fù)載情況再進(jìn)行動(dòng)態(tài)均衡,如果調(diào)度層單節(jié)點(diǎn)之間負(fù)載差超過(guò)了設(shè)定的預(yù)值,調(diào)度系統(tǒng)就會(huì)啟動(dòng)動(dòng)態(tài)的再均衡,將高負(fù)載節(jié)點(diǎn)上的任務(wù)調(diào)度到低負(fù)載節(jié)點(diǎn)上,達(dá)到各個(gè)調(diào)度節(jié)點(diǎn)之間的負(fù)載盡量保持均衡。
再就是傳輸層,用了哈希的策略,保證各個(gè)傳輸節(jié)點(diǎn)均衡。因?yàn)閭鬏敼?jié)點(diǎn)就是看到數(shù)據(jù)塊的搬遷,它只要保證數(shù)據(jù)塊的搬遷是均勻的,那就可以了。
但其實(shí)哈希也有少量的不均衡情況,同一個(gè)鏡像數(shù)據(jù)塊訪(fǎng)問(wèn)會(huì)落到同一個(gè)傳輸結(jié)點(diǎn)上,批量發(fā)放云服務(wù)器時(shí),會(huì)出現(xiàn)同一時(shí)刻訪(fǎng)問(wèn)同一個(gè)數(shù)據(jù)塊造成傳輸層局部熱點(diǎn)問(wèn)題,調(diào)度系統(tǒng)通過(guò)冗余幾個(gè)副本來(lái)解決局部熱點(diǎn)訪(fǎng)問(wèn)問(wèn)題。
9. 任務(wù)平滑切換
?? ? ? ? ? ?
假如說(shuō)調(diào)度節(jié)點(diǎn)出現(xiàn)了故障,任務(wù)在調(diào)度層節(jié)點(diǎn)間怎么做平滑切換呢?
首先對(duì)于節(jié)點(diǎn)故障的探測(cè),這里采用的是心跳探測(cè)、業(yè)務(wù)失敗率統(tǒng)計(jì)以及外圍監(jiān)控探測(cè)相結(jié)合完成調(diào)度層節(jié)點(diǎn)的故障探測(cè)。
一旦發(fā)現(xiàn)調(diào)度層節(jié)點(diǎn)故障,上報(bào)給中控層,中控節(jié)點(diǎn)就啟動(dòng)任務(wù)從故障節(jié)點(diǎn)切換到另一個(gè)正常節(jié)點(diǎn)。
如果是備份任務(wù),用戶(hù)對(duì)時(shí)延不感知,切換速度要求不高;但回滾時(shí),數(shù)據(jù)訪(fǎng)問(wèn)的優(yōu)先搬遷需要調(diào)度層節(jié)點(diǎn)介入,如果不能及時(shí)將任務(wù)切換到正常的調(diào)度節(jié)點(diǎn)上,將會(huì)導(dǎo)致io卡住,體驗(yàn)很差。
為了解決這個(gè)問(wèn)題,CBS客戶(hù)端訪(fǎng)問(wèn)故障節(jié)點(diǎn)失敗后,輪詢(xún)下一個(gè)調(diào)度節(jié)點(diǎn),從下一個(gè)調(diào)度節(jié)點(diǎn)獲取當(dāng)前任務(wù)服務(wù)的調(diào)度節(jié)點(diǎn)地址信息,并快速切換,達(dá)到快速恢復(fù)io的目的。
任務(wù)的元數(shù)據(jù)是共享的,調(diào)度節(jié)點(diǎn)都可以訪(fǎng)問(wèn)到;目的調(diào)度節(jié)點(diǎn)會(huì)根據(jù)唯一的任務(wù)key再把原數(shù)據(jù)加載出來(lái)。以上是任務(wù)平滑切換的基本機(jī)制。
10. 鏡像跨地域復(fù)制技術(shù)
除了鏡像生產(chǎn),還有鏡像的跨地域復(fù)制。首先,需要兩套數(shù)據(jù)調(diào)度系統(tǒng)支持,通過(guò)兩個(gè)地域的調(diào)度系統(tǒng)中控層,完成鏡像元數(shù)據(jù)的傳輸。
A地域調(diào)度層和傳輸層負(fù)責(zé)從A地域把數(shù)據(jù)塊讀出來(lái)寫(xiě)到B地域來(lái),完成搬遷后,A地域的中控層通知B地域中控層已經(jīng)完成了數(shù)據(jù)的搬遷,B地域中控層通知調(diào)度層去完成源和目的數(shù)據(jù)一致性校驗(yàn),保證數(shù)據(jù)可靠傳出。
那為什么A地域的系統(tǒng)不能既負(fù)責(zé)傳輸又負(fù)責(zé)校驗(yàn)?zāi)?#xff1f;這相當(dāng)于一個(gè)人既是裁判又是運(yùn)動(dòng)員,容易出問(wèn)題發(fā)現(xiàn)不了。基于數(shù)據(jù)安全考慮,傳輸和校驗(yàn)分開(kāi)進(jìn)行。
11. 云盤(pán)無(wú)感遷移
? ? ? ? ? ?? ? ?
云盤(pán)遷移,是將云盤(pán)從一個(gè)存儲(chǔ)倉(cāng)庫(kù)遷移到另一個(gè)存儲(chǔ)倉(cāng)庫(kù),業(yè)務(wù)無(wú)感知。遷移最核心的兩個(gè)點(diǎn):數(shù)據(jù)可靠性和業(yè)務(wù)無(wú)感知。
數(shù)據(jù)可靠性將在下文展開(kāi)論述,這里重點(diǎn)介紹如何做到業(yè)務(wù)無(wú)感知遷移。
要做到業(yè)務(wù)無(wú)感知,關(guān)鍵在于遷移過(guò)程中用戶(hù)io時(shí)延不會(huì)有明顯增加,為了達(dá)到這個(gè)目的,數(shù)據(jù)調(diào)度系統(tǒng)引入一個(gè)IO接入層,把用戶(hù)的IO和調(diào)度系統(tǒng)底層的順序搬遷IO隔離開(kāi),做到用戶(hù)IO與順序搬遷IO隔離,減少I(mǎi)O抖動(dòng)。
云盤(pán)遷移過(guò)程中,用戶(hù)IO如何訪(fǎng)問(wèn)云盤(pán)數(shù)據(jù)呢?
接入層做按搬遷數(shù)據(jù)塊大小將卷劃分成block列表,同時(shí)維護(hù)每一個(gè)block狀態(tài)。block有三個(gè)核心狀態(tài),狀態(tài)之間會(huì)流轉(zhuǎn)。如果是讀請(qǐng)求,就統(tǒng)一讀源倉(cāng)庫(kù);如果是寫(xiě)請(qǐng)求,則根據(jù)訪(fǎng)問(wèn)block當(dāng)前狀態(tài),按下面規(guī)則來(lái)處理。
-
第一個(gè)是未搬遷狀態(tài),用戶(hù)IO訪(fǎng)問(wèn)的話(huà),IO寫(xiě)到源倉(cāng)庫(kù)。
-
第二個(gè)狀態(tài)是正在搬遷中,接入層會(huì)暫時(shí)把IO掛住,等調(diào)度層把數(shù)據(jù)搬遷完,掛住的IO再放下去,寫(xiě)到原倉(cāng)庫(kù)和目的倉(cāng)庫(kù)。IO掛住的概率極低,運(yùn)營(yíng)統(tǒng)計(jì)不到十萬(wàn)分之一。
-
第三個(gè)狀態(tài)是已搬遷,同時(shí)寫(xiě)源端和目的端。
為什么訪(fǎng)問(wèn)已搬遷狀態(tài)的block,IO要同時(shí)寫(xiě)源端和目的端呢?這里是為了提升系統(tǒng)可用性,假如說(shuō)底層出現(xiàn)了任何故障,CBS客戶(hù)端只需要將IO鏈路上斷開(kāi),基于iscsi斷鏈重連會(huì)自動(dòng)切回原倉(cāng)庫(kù)中去,因?yàn)樵磦}(cāng)庫(kù)數(shù)據(jù)是完整的,IO的自愈能力就比較高了。
遷移完了之后,把客戶(hù)端的IO路徑切到目的倉(cāng)庫(kù)。這個(gè)時(shí)候的IO路徑,也是基于iscsi的I端到T端的斷鏈重連的過(guò)程。通過(guò)引入接入層,整個(gè)IO路徑,時(shí)延上只是增加了一段網(wǎng)絡(luò)開(kāi)銷(xiāo),時(shí)延抖動(dòng)非常低,目前云盤(pán)在線(xiàn)遷移,業(yè)務(wù)感知不到。
云盤(pán)遷移里的功能點(diǎn)非常豐富,還有一套輔助的系統(tǒng)——云盤(pán)遷移決策系統(tǒng),它能根據(jù)當(dāng)前倉(cāng)庫(kù)的負(fù)載情況,各個(gè)盤(pán)的歷史訪(fǎng)問(wèn)情況,做一系列的預(yù)測(cè),然后來(lái)發(fā)掘倉(cāng)庫(kù)是否有容量、流量風(fēng)險(xiǎn),提前決策,選擇一批合適的云盤(pán),選擇最優(yōu)的目的倉(cāng)庫(kù),發(fā)起遷移,提前解除資源風(fēng)險(xiǎn),這也是為CBS業(yè)務(wù)增長(zhǎng)在運(yùn)營(yíng)上做的一些建設(shè)。
12. 數(shù)據(jù)可靠性
? ? ? ? ? ?
以上三個(gè)場(chǎng)景,面臨一個(gè)共同的挑戰(zhàn)就是數(shù)據(jù)可靠性。
在快照制作鏡像場(chǎng)景,從在線(xiàn)存儲(chǔ)里面把數(shù)據(jù)讀出來(lái),寫(xiě)入到我們離線(xiàn)存儲(chǔ)里面,調(diào)度系統(tǒng)的數(shù)據(jù)塊會(huì)增加MD5校驗(yàn)頭部一起寫(xiě)入離線(xiàn)存儲(chǔ)系統(tǒng)中;回滾的時(shí)候,調(diào)度系統(tǒng)從離線(xiàn)系統(tǒng)讀出來(lái)再計(jì)算一次MD5,檢查數(shù)據(jù)是否有損壞。
元數(shù)據(jù)除了MD5校驗(yàn)外,還會(huì)跨地域備份,增強(qiáng)數(shù)據(jù)可靠性,同時(shí)加強(qiáng)跨地域巡檢。?
我們?cè)贗O路徑上常遇到懸空IO的一些問(wèn)題,比如說(shuō)鏈路切換的時(shí)候有一些IO還沒(méi)落盤(pán),卡到路上,殘留的IO會(huì)把新寫(xiě)的數(shù)據(jù)覆蓋的問(wèn)題。
這種問(wèn)題在云盤(pán)遷移過(guò)程中表現(xiàn)尤為明顯,因?yàn)樵票P(pán)遷移涉及兩次io鏈路切換:從原倉(cāng)庫(kù)切到接入層、從接入層切到目的倉(cāng)庫(kù),其實(shí)這些鏈路切換過(guò)程都會(huì)有IO的殘留問(wèn)題。那么調(diào)度系統(tǒng)如何解決這個(gè)問(wèn)題呢?
關(guān)鍵是引入版本號(hào)機(jī)制,低版本數(shù)據(jù)不能覆蓋高版本數(shù)據(jù)。每一條鏈路上版本號(hào)不一樣,我們?cè)诘讓哟鎯?chǔ)上做了一些保證,設(shè)定了高版本數(shù)據(jù)可以覆蓋低版本數(shù)據(jù),但低版本數(shù)據(jù)不能覆蓋高版本數(shù)據(jù)。
調(diào)度系統(tǒng)為每一條鏈路指定一個(gè)新版本,版本號(hào)隨切換順序遞增,這樣低版本數(shù)據(jù)即使有殘留,也不會(huì)覆蓋新鏈路上的數(shù)據(jù),因?yàn)樾骆溌飞系臄?shù)據(jù)版本號(hào)高。
===
四、未來(lái)演進(jìn)方向
當(dāng)前主要是服務(wù)于塊存儲(chǔ)的場(chǎng)景,接下來(lái)會(huì)在支持塊、文件、DB三個(gè)場(chǎng)景下數(shù)據(jù)調(diào)度的一些需求上發(fā)力,讓調(diào)度系統(tǒng)能適配更多業(yè)務(wù)場(chǎng)景。
第二是性能上面,需要支持超低時(shí)延云盤(pán)的在線(xiàn)遷移。
第三是數(shù)據(jù)安全,數(shù)據(jù)安全是我們的核心能力,我們的快照能力現(xiàn)在支持的RPO窗口是比較大的,后續(xù)我們還要支持秒級(jí)RPO能力,滿(mǎn)足客戶(hù)更細(xì)粒度的數(shù)據(jù)保護(hù)需求。
最后就是運(yùn)營(yíng)方面的一些建設(shè),也就是前文提到的智能調(diào)度,整個(gè)云盤(pán)的遷移需要智能化,通過(guò)AI訓(xùn)練動(dòng)態(tài)實(shí)時(shí)發(fā)現(xiàn)潛在資源風(fēng)險(xiǎn),這樣就能夠做到整個(gè)存儲(chǔ)層池化資源的均衡。
六、Q&A
Q:首次全量打快照時(shí),空塊也要搬遷么?
A:空塊在打快照的時(shí)候是不需要搬遷的。
Q:現(xiàn)在還是按地域部署?
A:我們的部署模型,這塊是不斷優(yōu)化演進(jìn)的過(guò)程,之前是按大地域來(lái)部署,運(yùn)營(yíng)出現(xiàn)過(guò)一些問(wèn)題,現(xiàn)在按小地域部署。后續(xù)會(huì)更加強(qiáng)化小地域和一個(gè)邏輯管理單元,一個(gè)邏輯調(diào)度的能力的復(fù)制。當(dāng)超過(guò)最大能力時(shí)候,我們?cè)偃U(kuò)展調(diào)度能力。
Q:遷移的速度是如何保證的?
A:速度這塊是個(gè)動(dòng)態(tài)控制的過(guò)程,最早是靜態(tài),現(xiàn)在慢慢演變成動(dòng)態(tài),因?yàn)榇鎯?chǔ)倉(cāng)庫(kù)負(fù)載是一個(gè)動(dòng)態(tài)的過(guò)程,動(dòng)態(tài)探測(cè)當(dāng)前的空余帶寬,去充分利用倉(cāng)庫(kù)空余帶寬,提升數(shù)據(jù)搬遷的速度。
Q:大數(shù)據(jù)寫(xiě)入的時(shí)候云盤(pán)的在線(xiàn)遷移有限制嗎?
A:這塊是有限制的。當(dāng)前有帶寬瓶頸,因?yàn)榻尤雽与p寫(xiě)源和目的;但我們現(xiàn)在正在開(kāi)發(fā)一個(gè)新能力,就把云盤(pán)上的帶寬打散到接入集群上去,突破單點(diǎn)的瓶頸,支持更高帶寬云盤(pán)遷移。
Q:云硬盤(pán)如何選型?
A:我們提供了多種的云硬盤(pán)的選型,這塊可以參照我們的在線(xiàn)產(chǎn)品介紹,根據(jù)不同的產(chǎn)品能力規(guī)格,來(lái)選擇你的云盤(pán)。
Q:系統(tǒng)可不可以跟ZK交互?
A:ZK系統(tǒng)就是提供中控層選主服務(wù),并不參與到調(diào)動(dòng)的過(guò)程。
Q:如果寫(xiě)入太快,打快照速度可能追不上寫(xiě)入速度嗎?
A:這塊是兩個(gè)概念,一旦創(chuàng)建完快照,快照數(shù)據(jù)是靜態(tài)的數(shù)據(jù),用戶(hù)先寫(xiě)的數(shù)據(jù),是新的數(shù)據(jù)塊,二者沒(méi)什么關(guān)系,調(diào)度系統(tǒng)完成快照數(shù)據(jù)順序搬遷,不影響用戶(hù)寫(xiě)入。
Q:快照刪除后,老的版本數(shù)據(jù)如何回收?
A:備份完數(shù)據(jù)后,有一個(gè)數(shù)據(jù)的回收過(guò)程。因?yàn)橐呀?jīng)完成備份的數(shù)據(jù)保留在在線(xiàn)系統(tǒng)里面,在線(xiàn)存儲(chǔ)系統(tǒng)的block使用率,隨著打快照會(huì)慢慢的增長(zhǎng),存在資源風(fēng)險(xiǎn)。這些舊版本的也就是快照版本的數(shù)據(jù)會(huì)回收掉。如果高版本的數(shù)據(jù)對(duì)低版本數(shù)據(jù)有依賴(lài),比如說(shuō)新版本的數(shù)據(jù)塊只寫(xiě)了前4KB,低版本的數(shù)據(jù)寫(xiě)了尾巴4KB,這個(gè)時(shí)候舊版本的數(shù)據(jù)回收的時(shí)候,是要把舊版本尾巴上的這4K合并到新版本里去,才能把舊的版本數(shù)據(jù)塊回收掉,這是回收的基本原理。
Q:數(shù)據(jù)塊 劃分大小 是多大?
A:此處講到數(shù)據(jù)塊的大小,只是說(shuō)了設(shè)計(jì)的原理,沒(méi)有具體說(shuō)數(shù)據(jù)塊大小,這個(gè)數(shù)據(jù)塊大小可能根據(jù)我們是按1MB來(lái)切分的,關(guān)于數(shù)據(jù)塊大小劃分各個(gè)廠(chǎng)商可能不一樣。
Q:如果快照取消了會(huì)有殘留數(shù)據(jù)么在COS里?
A:如果你正在打快照過(guò)程中,然后你取消了,我們會(huì)把前面的在離線(xiàn)系統(tǒng)里刪除掉,所以它不會(huì)殘留的。
Q:跨區(qū)域的鏡像搬遷,對(duì)網(wǎng)絡(luò)有額外要求么?
A:網(wǎng)絡(luò)其實(shí)我們目前是沒(méi)有什么要求,在訪(fǎng)問(wèn)網(wǎng)絡(luò)帶寬的時(shí)候會(huì)做留空,會(huì)做資源限制,因?yàn)槲覀兊臄?shù)據(jù)啟動(dòng)系統(tǒng)和離線(xiàn),都是在公司內(nèi)網(wǎng)。
Q:我們現(xiàn)在整個(gè)數(shù)據(jù)調(diào)度系統(tǒng)是不是沒(méi)有主備的概念?
A:我們?cè)谥锌毓?jié)點(diǎn)是有主備的概念。然后我們的調(diào)度集群和傳輸集群都是無(wú)狀態(tài)的,也就是沒(méi)有主備的概念。
講師簡(jiǎn)介
楊光超
騰訊云存儲(chǔ)專(zhuān)家工程師
騰訊云硬盤(pán)CBS數(shù)據(jù)調(diào)度技術(shù)負(fù)責(zé)人,2015年加入騰訊,持續(xù)專(zhuān)注于塊存儲(chǔ)領(lǐng)域相關(guān)技術(shù),在騰訊云硬盤(pán)團(tuán)隊(duì)先后參與了CBS三代存儲(chǔ)系統(tǒng)的研發(fā)工作,致力于打造一個(gè)為用戶(hù)提供穩(wěn)定可靠、低延遲、可擴(kuò)展的海量存儲(chǔ)服務(wù)系統(tǒng)。
沙龍預(yù)告
今晚20:00,騰訊看點(diǎn)獨(dú)立端推薦研發(fā)中心總監(jiān)——彭默將出席云加社區(qū)沙龍直播間,分享騰訊看點(diǎn)信息流推薦系統(tǒng)的架構(gòu)演進(jìn),掃描海報(bào)二維碼或者點(diǎn)擊文末「閱讀原文」,即可預(yù)約觀(guān)看今晚直播~
總結(jié)
以上是生活随笔為你收集整理的秒启万台主机,腾讯云云硬盘数据调度架构演进的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python打九九乘法表上三角下三角_p
- 下一篇: WKWebview使用记录