Categories
程式開發

百微秒時延,騰訊云云硬盤CBS架構深度解密


http://mpvideo.qpic.cn/0b784uaaeaaakmanh6tagrpvbzodalsqaaqa.f10002.mp4?dis_k=2718a7bfae234086f9c481a41a339754&dis_t=1601210533&vid=wxv_1519821012815691777

點擊查看完整直播回放~

一、CBS架構演進

1. CBS雲硬盤

百微秒時延,騰訊云云硬盤CBS架構深度解密 27

什麼是雲硬盤呢?騰訊雲的雲硬盤叫CBS,CBS 就是Cloud Block Storage,基於雲的分佈式塊存儲服務。

雲的概念聽起來很玄乎,其實我理解的雲的核心技術就是分佈式,雲是分佈式的一個商業包裝,通過雲這個接口把它推出去,給大家提供就像水、電一樣的基礎服務,這是我給雲的定義。

雲裡邊最核心的是分佈式技術,雲硬盤也是基於分佈式去實現的一個硬盤,跟電腦裡面的硬盤功能相同,但是又比個人電腦裡的硬盤有更豐富的能力。

比如基於分佈式實現,性能上就使得橫向拓展的能力非常好。個人電腦硬盤只能提供幾百兆的吞吐能力,CBS 基於雲的硬盤可以提供更大的存儲性能,我們現在可以做到5GB,這是本地傳統物理硬盤很難做到的。

在可靠性方面,CBS 是基於多副本的存儲策略,也就是說原則上會將用戶數據存多份,一般是三份,這樣的策略讓數據的可靠性更強。

另外是可用性方面。傳統的物理硬盤壞了,上面的數據就丟了,也就影響到了用戶的服務。但是雲硬盤不一樣,它是基於分佈式實現的,當這一塊硬盤故障的時候可以快速進行隔離,因為是多副本存儲數據的,另外的副本就可以及時的提供服務,不影響用戶的可用性。

當前云硬盤服務主要的對像是大家在騰訊雲上買的雲主機,是給雲主機提供持久化的塊存儲服務的。

以上這些就是我給CBS 雲硬盤下的定義,首先它是基於分佈式技術實現的,就像個人電腦硬盤一樣,硬盤可以提供的所有能力它都可以提供,並且在高性能、可靠性和可用性進行了增強,提供持久化的塊存儲服務。

2. CBS架構演進

百微秒時延,騰訊云云硬盤CBS架構深度解密 28

CBS 的演進經過了三代架構—— CBS apllo、CBS atlas 和HiSTOR。塊存儲最早是從2011 年開始做的,當時不叫CBS,而是叫TBS。最早的一代架構是基於以前騰訊雲架構平台部已有的存儲平台打造了塊存儲的服務。但這個已有的存儲平台一開始並不是為塊這個場景專門設計的,所以存在很多問題。

2013 年、2014 年是雲發展比較快的階段,當2014 年規模到了幾個PB 的時候,發現當時的架構不能承載用戶的需求,所以在2014 年時用CBS apllo 及時替代了更老的一代架構,適應了雲快速發展的需求,快速的把塊存儲的規模從幾PB 增加到了上百PB,個人認為這是非常優秀的一代架構。

但是到2016 年,雖然以前的架構很優秀,但是成本方面會略高一些、性能上也不盡如意,所以在2016年希望能夠在成本和性能方面有所改進,性能這也是本期我要講的主題。

在2016 年我們設計了新一代CBS 架構Atlas,2017 年Atlas 正式上線接用戶業務。

目前在騰訊雲上跑的主流的架構是CBS atlas,承載著數EB 的數據規模。現在很多用戶把數據放在雲上,騰訊雲上也已經衍生了幾十億、上百億、甚至上千億美金的獨角獸公司出來,他們就是依賴於雲去支撐他們的服務。

在現在這個階段,就要全場景的看用戶的需求,最主要的一塊就是對性能的要求慢慢成為了矛盾的焦點。原先預計雲盤很快便會取代本地盤,但在去年的時候發現取代的節奏在變緩,分析之後發現用戶仍用本地盤是因為雲盤某些場景沒有服務好,典型的是關於DB 的需求。

雲盤是基於分佈式的,中間通過網絡互聯,天生比本地盤的延時略高,但是到底高多少呢?如果高的程度能夠在提供的優勢可以覆蓋住的情況下,用戶就會願意用CBS 盤,但如果影響大於優勢,那麼用戶就不接受了。

這時候這個矛盾就凸顯出來了,要解決用戶在性能上的需求,這時候“極速存儲”就應運而生,它在性能上有了很大的提升。到今年上半年的時候平台側就達到了我們認為能夠滿足用戶需求的能力,今年8 月產品層面推出相關產品。

以上就是我參與的三代架構以及前面沒有參與那代架構演進的歷程。我列了三個時間點,其中2014年是非常重要的時間點,雲快速發展推出applo 架構,2017 年推出atlas 架構,到去年為了解決用戶全面上雲對性能的要求,我們投入精力搞了HiSTOR的架構。

3. CBS存儲系統

百微秒時延,騰訊云云硬盤CBS架構深度解密 29

CBS 存儲系統架構到底是怎麼樣的呢?最新的架構可以分成三塊:

  • 客戶端
  • 存儲集群
  • 控制集群

先介紹一下存儲集群,存儲系統很重要的一塊就是存儲集群,這是後端的存儲給用戶提供存儲服務;另外給用戶提供服務肯定要有個接入點,也就是前面的客戶端;分佈式系統要有對集群做控制的模塊,也就是控制集群,當然控制模塊本身也是多機的分佈式系統;CBS存儲系統可以分為這三塊。

今天要講的是塊存儲,其實現在CBS 存儲系統已經被打造成了統一的存儲平台,現在騰訊雲上購買的雲文件也是這一套存儲系統提供的服務,另外雲原生的數據庫,後端的存儲系統也是它。

CBS 的存儲系統HiSTOR 的特點首先是極簡的架構。多年前我也對外分享過一個“大道至簡”的設計理念,用極簡的架構滿足用戶的需求是最好的。

整個集群分為三部分,客戶端直接訪問存儲,中間沒有傳統的存儲系統的接入模塊,所以是一種極簡的架構。

另一個特點是統一存儲。我們提供的不僅是塊存儲服務,而是多種存儲類型服務共享的一個平台。 CBS 存儲系統為什麼一直向前演進呢?因為要解決問題。

Atlas 取代Applo 核心的目的是什麼?首先是成本,因為架構層面足夠的簡單,只有兩層,沒有中間的接入集群、接入設備和其他的管理設備是沒有的,所以在成本上是大大的降低了。

這套架構比之前的架構在成本上有優勢,物理成本上節約了50% 左右,但產品怎麼能夠讓用戶去買單呢?要讓用戶有買單的意願就要做到成本足夠低,成本問題是幾年前解決用戶上雲的需求的主要矛盾。

慢慢的在用戶上云了以後,包括核心的業務開始往雲上切,騰訊雲上已經孕育出了很多十億、上百億、上千億美金的獨角獸公司,這個時候如何讓用戶放心把業務放到雲上呢?一定要讓其用得放心,質量一定要過關,解決成本問題後我們投入大量的精力在質量上。

質量要過關,可靠性、可用性和數據安全方面一定要過關。

二、CBS新的挑戰

現在很多公司已經把它的全部業務都放到雲上,這時候就需要把他服務好,讓他用得爽。雲盤相對本地盤主要的劣勢就是延時相對本地盤比較高,所以今天要講的主題是怎麼在這一點上有所突破。

百微秒時延,騰訊云云硬盤CBS架構深度解密 30

性能方面有三個維度,除了一再強調的延時維度,還有吞吐維度和IOPS 的維度。

1. 吞吐維度

吞吐維度指的是帶寬。現在很多大數據場景、AI 訓練的場景對帶寬的需求非常大,SSD 雲盤提供的260 兆的帶寬,跟用戶需求是有落差的,所以除了在延時上需要做到極致以外,帶寬方面也要滿足用戶的需求。

2. IOPS

以前都是本地盤間的比較,大家覺得IOPS 不是個矛盾點,本地物理硬盤隨機訪問的IOPS 也就是在200、300 的級別。而云盤產生之後,最老的一代產品能夠提供的是幾千的IOPS。

當時是可以滿足需求,但慢慢的上雲的場景越來越多後,雲主機的母機上單個服務對IOPS 的需求不高,但是加在一起需求就變得很大。

3. 延時維度

延時維度最典型的是DB 的業務。可能多年前放在雲硬盤上的數據價值並不高,但是DB 數據價值密度非常高,如何把DB 應用場景服務好也是需要花很大的精力思考的問題。

三、CBS低延時結構優化

1. CBS延時優化

百微秒時延,騰訊云云硬盤CBS架構深度解密 31

那麼CBS 延時如何優化呢?很多人提出過很多具體手段,但是總結起來就是兩個方面,一是怎麼把並發做上去,二是怎麼把延時做下來。

把並發做上去,這是分佈式存儲天然有的優勢,只是技術實現上的難度大小而已,但跟延時比起來並不是這麼困難。

低延時無非是兩種手段,首先用更快的硬件去解決,另外是怎麼把軟件IO 棧做到盡量的扁平化,本期的主要是基於軟件的維度考慮延時優化,具體是從CBS的四個維度入手:分佈式層面優化、接入端、存儲側和中間交互的網絡的優化方面。

2. 分佈式架構

百微秒時延,騰訊云云硬盤CBS架構深度解密 32

CBS 存儲系統是極簡的架構,客戶端訪問存儲中間就是網絡,涉及優化的也就是三個層面加一個架構,我們按這幾點來進行分解。

首先從架構層面,CBS altas 直接從客戶端訪問存儲,是兩層分佈式架構,沒有傳統的接入點也就沒有了接入瓶頸。另外是客戶端直接訪問存儲中間訪問路徑可以做到最短,這就是當前架構的優勢。

說起來很簡單,但做成兩層架構實現起來技術難度很大。首先是路由管理上如何做? CBS 的存儲系統用的路由方式是一致性哈希,這就涉及到哈希路由如何推送到客戶端。

本身路由的變更是由控制集群維護的,路由更新後如果直接推送客戶端的話看起來很簡單,但面對雲上的集群規模就會發現問題。騰訊目前是上百萬台的規模,如果把一個信息推送到上百萬個節點根本是不可行的事情。

所以在實現上我們想個了方式叫“惰性路由同步”,集群管理節點變更後不是直接推送客戶端而是推送到存儲節點,再由節點中轉到客戶端。

為什麼這樣可行呢?接入節點上百萬台,但是存儲節點比客戶端節點是數量少得多,推送到存儲節點對中心控制節點的負載是可以容忍的,所以先推送到存儲節點,之後對中控系統來說工作就完成了,推送也就完成了。

惰性路由同步的惰性體現在哪裡?起名字的時候我們藉鑑了內核內存分配的方式,內核去申請內存的時候只是一個虛擬的,並沒有把真實物理內存分配給你。

分佈式架構里路由同步的策略也是類似的,先推送之後並不急於推送到客戶端節點,如果有需求訪問存儲的時候,再同步把路由推送到客戶端節點。這時候拿到最新的路由就可以訪問到需要的數據了,使用的時候再去推送的策略便是“惰性路由同步”。

架構層面,原先的架構雖然說是兩層,但因為是多副本存儲,數據到了存儲節點後還有一次復制的過程,需要再复製成多份數據存到節點上去,這時候雖然架構上是極簡的,但寫的時候有兩次的路由,就相當於數據走了兩跳。

為了做到延時上的極簡,我們是根據IO 大小做了不同的策略,如果是小IO 的話,走的是以前的模式,直接客戶端出三份,這樣對小IO 便只需要一跳。

但為什麼大IO 不這麼做呢?客戶端出流量的話,出三份其實是佔用計算的網絡流量的,所以這樣是需要跟前端計算的同事協商的。但小的IO 這麼做,不需要增加前端的計算帶寬,這就是為什麼大小IO 需要做不同策略的原因。

3. CBS接入端

百微秒時延,騰訊云云硬盤CBS架構深度解密 33

上圖所示的客戶端架構是一個主流的架構,接入方式是基於iSCSI 的通用塊設備接入,虛擬機通過訪問存儲的時候是QEMU 訪問一個主機上的塊設備,往下走SCSI 設備。

SCSI 的底層就是iSCSI initiator,通過網絡訪問CBS 的客戶端,然後再訪問後端存儲。路徑非常的長,首先要復制數據、切換訪問內核,之後通過iSCSI ,再通過網絡訪問CBS 的客戶端,客戶端再通過網絡把數據發出來,中間經過了多少次的上下文切換和數據拷貝,所以延時上非常不友好。

有沒有其他的接入方式呢?第一次想這個問題的時候是在2016 年,我們在設計架構時,當時想直接用共享內存的方式把數據旁路出來,就不用經過這麼多次的來來回回的切換了。

後來老闆們說你為什麼這麼做呢,英特爾搞了一個更好的東西,就是可以直接在虛擬機上把數據旁路出來,也就是SPDK。 IO 設備是虛擬機的話,SPDK 可以做IO 的後端,直接把數據同步出來,再把客戶端做到SPDK 裡面,這個數據路徑是要短非常多。

虛擬機裡面直接用數據共享的方式跟SPDK 交互數據,SPDK 在後端訪問存儲,再經過網絡處理,比起剛才說的來來回回好幾次要簡單得多了。

但是不是這樣就做到極致了呢?最初做的方式是SPDK 跟客戶端的訪問沒有在一個線程裡面,而是兩個線程,之間通過共享內存。

但這樣對延時並不友好,因為經過了線程的一次切換,哪怕只是幾個微秒的區別,但在一個超高性能場景中幾微秒也是比較多的。所以我們又做了優化,把客戶端跟SPDK 放在同一個線程裡做,這樣就沒有線程上下文的切換了。

總結下來,是用SPDK 的接入方式取代了iSCSI 的接入方式,用零拷貝的輪詢方式取代了原來兩線程數據共享的方式。最後是有一個水平擴展的能力,這跟延時無關。

剛才提到老闆們站的高度更高,在2016 年便提出了用SPDK,那SPDK 到底是什麼呢?

這是一個英特爾用來做高性能存儲的開發套件,提供一些lib 庫之類的工具,通過它做高性能存儲的應用開發。具體技術實現首先是在用戶態實現的,可以減少對內核的切換,用戶態、內核間的上下文切換對CPU 消耗也比較高,另外就是輪詢,說白了就是CPU 的死轉。 SPDK 主要就是這些方面的技術。

4. CBS存儲引擎

百微秒時延,騰訊云云硬盤CBS架構深度解密 34

2016 年在做架構的時候,首先開發了一個高性能的開發框架叫CEDA。這是基於封裝的事件驅動的框架,核心理念是基於微服務模型,是事件驅動的、事件觸發的高性能的開發框架,存儲引擎是基於CEDA 框架實現的。

膠片裡面有個DATA POOl,也就是數據池,IO 過來之後從數據池中分配數據存儲的內存,整個生命週期數據不做拷貝,所以可以做到數據零拷貝。

核心路徑上跟其他的SPDK 理念一樣,不是用事件驅動的方式,而是用輪訓方式,雖然對CPU 消耗高了,但沒有線程的喚醒和休眠,可以做到相對比較好的水平。

存儲引擎訪問硬盤,現在用的也是SPDK 方式,可以盡量的減少訪問硬盤時在用戶端內核進行切換的時間消耗。

但這個過程仍然有一次切換,說白了還是沒有達到極致,用戶態的任務調度可以讓一個IO 的處理從進存儲引擎到最後落地訪問存儲硬件整個在一個上下文裡面做,沒有切換的開銷,這樣就可以把延時做到極致。

5. CBS (極速型雲盤) 網絡

百微秒時延,騰訊云云硬盤CBS架構深度解密 35

架構、客戶端、存儲引擎、中間是網絡,我們之所以把網絡放到最後,並不是說它不重要。軟件做到這樣是相當不錯的,但它的延時和網絡比起來還是小巫見大巫,一次跳轉的話大幾十個us。

那麼如何在網絡上做優化呢?騰訊有兩款產品,CBS 極速型雲盤和增強型雲盤,極速雲盤是網絡層面用的RDMA,遠程直接內存訪問,說得簡單一些就是一個硬件卸載的理念,把網絡的協議的處理盡量放在硬件裡面做,這樣可以旁路掉操作系統內核的工作。

在硬件和用戶態的應用之間直接共享數據,也就是全棧都沒有了內存的拷貝,也不需要內核和用戶態做協議的解析處理,這些硬件就幫你做了。通過這種操作這樣可以把延時降到極至,用的是旁路內核減少切換的理念。

那我們做得跟別人做的有什麼不同呢?總結起來,我們做的比較好的幾點,雖然是RDMA 網絡,但我們並不單純是RDMA,而是RDMA 和TCP 並存,在故障的時候可以快速自動切換。

另一方面擁塞控制,騰訊雲的量級是百萬級別的服務器規模,放眼全球RDMA 的使用超過一萬台機器規模的都很少,RDMA 集群應用規模一般並不大,RDMA 的擁塞控制是比較大的隱患,或者說是現在存在的主要問題之一。

CBS 的RDMA 擁塞控制層面如何做的呢?除了硬件提供的擁塞控制能力,應用層也做了控制,比如存儲和客戶端的交互用的RDMA_read 方式。

RDMA 有幾種交互方式,一種是send/recv 方式,一種是read/write 的交互方式,簡單而言,前一種模式交互流程是短的、少的,但是切入應用之後會有一次數據的拷貝,因為要有交互協議處理的buff 和應用之間的buff 拷貝,對大IO 來說並不友好。

另一種方式RDMA_read,最主要的好處是沒有了剛才說的拷貝過程,所以對大IO 比較友好,但是交互流程比前面說的方式要多幾跳,這樣對小IO 並不友好。

所以從交互協議層面來說,用了這兩種相結合的方式。當需要帶寬的時候用的是read 方式,當需要短的延時時候用的是send/recv 方式。

用read 方式做擁塞控制,存儲側來看,比如需要去寫個數據到存儲的時候,先跟存儲握手一次,告訴他我要寫了,這時候存儲向客戶端發一個read 指令,控制權完全在存儲。

因為整個集群模型是非常多的客戶端訪問少量的存儲,存儲本身是容易發生擁塞的點,存儲端主動的發起數據的讀寫請求的話,可以根據自己的負載去做擁塞控制,這是基於應用的擁塞控制的可行性,以上是CBS 在RDMA 網絡方面做得相對比較有特色的幾個方面。

6. CBS(增強型雲盤)網絡

百微秒時延,騰訊云云硬盤CBS架構深度解密 36

極速雲盤用的是RDMA 網絡,增強型雲盤用的是TCP 網絡,TCP 網絡是延時消耗的大頭,內核協議處理佔了整個網絡延時的百分之八九十,如果還是用TCP 網絡的話就看如何解決掉內核佔消耗比較高的問題就可以了。

內核TCP 方式是內核消耗高,因為上下文切換很頻繁,解決這個矛盾放到用戶態來看,就是協議處理放到用戶態,沒有上下文切換。騰訊做的ZTCP 用戶態協議棧同時也可以零拷貝,用戶協議也做了用戶態零拷貝以求性能的極至,這是增強型雲盤的網絡協議的優化。

7. CBS網絡模型對比

百微秒時延,騰訊云云硬盤CBS架構深度解密 37

CBS 網絡模型的交互方式有三種:

  • 傳統的內核TCP 協議棧交互;
  • 極速雲盤用的RDMA 網絡交互;
  • 增強型雲盤用的用戶態TCP 協議棧交互。

我們對三者進行一個對比。內核態TCP 把TCP 解析放到內核,主要問題是頻繁的上下文的切換、太多的數據拷貝,這是它的問題。

用戶態協議棧是減少數據拷貝和上下文的切換,騰訊做ZTCP 的特點是同時支持零拷貝,RDMA 是不需要軟件做而是硬件來幫助做,協議棧卸載到硬件裡面以求做到旁路掉內核、數據零拷貝,達到這個技術的要求,同而將延時降到最低,這是三種網絡交互形式的對比。

四、CBS延時優化成果

1. CBS延時能力

百微秒時延,騰訊云云硬盤CBS架構深度解密 38

我們的CBS 延時優化到底做到了什麼水平呢?上圖是產品化的時候開發同學測的數據,能夠做到的是140 us 左右,百微秒級別,這還不是最新的數據,現在可以做到100 us 到120 us 之間。

當前給到產品化的能力就是100 us 到150 us,研發側可以做100 us 到120 us 之間。接下來要做到什麼程度呢?給產品的目標是希望年底能夠做到50 us 到100 us 這樣的水平。

2. 產品化

產品化層面,8 月13 日的時候產品側推出了一個叫增強型SSD 雲硬盤的產品,這已經是正式的產品化了,可以在騰訊雲官網買到,現在極速型SSD 雲硬盤也已經開始公測了。

百微秒時延,騰訊云云硬盤CBS架構深度解密 39

以上就是我和大家分享的CBS在架構演進及基於當前最新的架構打造的百微秒級別的極速雲盤產品的情況,謝謝觀看。

五、Q&A

Q:支持幾PB到上百PB的瓶頸是什麼呢?

一種: 從成本層面來看,就是在合理成本的情況提供讓客戶接受的產品。從質量層面看,就是怎麼能夠提供用戶可以接受的可靠性和可用性的一個產品。我認為主要的瓶頸就是成本和質量,這個做大規模主要的兩個瓶頸點。

Q:一致性哈希將來遷移時怎麼避免數據遷移?

一種: 數據遷移不能避免,但可以考慮如何減少。在實現上有一些盡量減少數據遷移的方式,比如去做路由分裂的時候,最粗暴的方式是把一個哈希分區的數據遷到兩個里面去,避免的方式我只遷移分裂的一個新分區的數據,另一個分區還繼承老的分區屬性,這樣剩餘一般數據就不用遷移。

Q:高並發小IO 高的話,client 會不會佔計算節點的CPU 和內存很高?

一種: 在RDMA 協議層面我們是用了兩種相結合的方式,對於小IO 用的send/recv 的方式,對大IO 用的是read/write 的方式。這麼做的原因,是在大IO 的情況下盡量減少對CPU 的消耗,提升它的吞吐性能。對於小IO 來說只能針對一部分特徵來減少CPU 的消耗,不能避免CPU 的消耗。 client 佔用的資源已和客戶購買雲主機的CPU/內存做了隔離,不會影響到客戶的雲主機使用。

Q:雲硬盤未來會逐步替代物理硬盤嗎?

一種: 只要用戶把它的業務逐步的放在雲上,我認為雲硬盤取代物理硬盤是一個大趨勢。雲硬盤相對於物理硬盤它的劣勢主要就在於延時層面,其他層面雲硬盤相對於物理硬盤都是有優勢的。只要能解決延時的問題,雲硬盤取代物理硬盤是必然趨勢。

Q:不同大小IO 通過不同方式複制,大IO 通過raft 之類的算法麼?小IO 直接複製到三個store,是自己實現的複制算法麼?

一種: CBS 沒有使用raft 算法,數據複製部分是使用自研的算法。

Q:新的架構在容災層面怎麼考慮的?

一種: 分為兩個層面,一個是元數據層面,一個是數據層面。元數據層面分為集群元數據和存儲原數據。集群元數據也是三副本,我們會把原數據的變更,操作的流水,包括元數據本身記錄下來,所以原則上你的集群元數據是可以恢復到任何一個時間點的。

存儲的元數據怎麼去解決?存儲的元數據跟集群原數據一樣,我們會把所有變更記錄到硬盤上,包括變更流程也會記錄下來。另外一層面,會像集群元數據一樣會把它弄到異構系統裡面。

還有一個層面,可能有些元數據只是記載了硬盤的一個位置,準確的說它是記在兩副本,但是記在一起的,物理位置是連續的。

在最新的架構裡面,兩個元數據的備份是放在硬盤的不同的位置,但不管你放幾份,放到哪裡,如果有人惡意破壞,那你還是會把數據搞丟。

怎麼去避免這種情況?我們現在最新的架構裡面做了一個離散元數據,就把所有的元數據的數據記在一起,去落地到硬盤上,每一個數據它都帶了自身的元數據,即使你把元數據集中區給抹掉了,我一樣可以從通過存在的數據把元數據恢復出來。從而保證元數據的安全。因為元數據是描述數據的數據,是最重要的數據。如果它丟了即使數據存在那也等同於丟失,所以元數據就顯得異常重要,這幾個能力都是在元數據層面的安全加固。

容災還涉及到數據的容災,這方面我們是有快照能力的,未來幾天的直播中也會有其他小伙伴介紹這點,在這我就不深入講解了。

Q:雲盤的帶寬是否會佔用母機帶寬,擁塞時如何抉擇?

一種: 現在數據多副本複制,我是有兩種策略,一種是先把那個數據路由到一個主節點處,主節點再把它複製成多份,這是一種策略。還有一種策略就是直接從客戶端分三份出來去做存儲,後面這種方式會佔用計算帶寬,所以我會根據IO 的大小做不同的策略。不管怎樣,CBS使用帶寬是不佔用客戶購買雲主機的帶寬,也不會影響到客戶的雲主機使用。

Q:雲硬盤和對象存儲的差別是什麼?如果是把硬盤雲化,請問是支持多少種文件系統格式?

一種: 雲硬盤相對比較「熱」,也就是延時比較敏感。雲硬盤和本地的物理硬盤其實是一樣的,你就跟普通物理硬盤一樣用它就行了,可以根據需要格式化為自己需要的文件系統

Q:很多時候,網絡rtt 有十幾ms,雲硬盤延遲會很高?

一種: 騰訊雲的網絡沒有這麼差,應該是在百微秒級別。

Q:老師,請問大IO/小IO的分界點是多少?

A:這個大小判定方式是不一樣,客戶端是4K,存儲集群內部IO 是32K。

Q:存量的雲主機支持極速型雲盤嗎?

一種: 極速型雲盤目前公測中,如果有需要,可以官網頁面提交申請,會有專人聯繫,感謝!

Q:雲硬盤能實現一盤多機掛載嗎?多機同時操作,怎麼保障一致性?

一種: 支持。雲硬盤是塊存儲,塊存儲級別不能保障讀寫衝突的一致性問題。需要文件系統或應用層面保證,所以適用於oracle rac這些已經實現分佈式鎖的場景。

作者介紹

王銀虎,騰訊雲存儲專家工程師

王銀虎,騰訊雲存儲專家工程師,2010年加入騰訊,帶領團隊建設騰訊存儲平台,主導騰訊EB級存儲平台發展。十餘年一直深耕存儲領域,從硬件到軟件、從內核到應用開發、從單機存儲到分佈式,全維度多角度深入一線。目前負責騰訊彈性塊存儲平台、騰訊雲硬盤的設計和研發工作。個人精於海量存儲技術的研究,旨在支持騰訊低成本、高性能、高可靠的EB級雲存儲服務。

本文轉載自公眾號雲加社區(ID:QcloudCommunity)。

原文鏈接

百微秒時延,騰訊云云硬盤CBS架構深度解密