精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

黃東旭DTCC2017演講實錄:When TiDB Meets Kubernetes

企業(yè)動態(tài)
本文是CTO黃東旭同學在 DTCC2017 上的《When TiDB Meets Kubernetes》演講實錄,主要分享了關于 TiDB 與 Kubernetes 整合的一些工作。

本文是我司 CTO 黃東旭同學在 DTCC2017 上的《When TiDB Meets Kubernetes》演講實錄,主要分享了關于 TiDB 與 Kubernetes 整合的一些工作。文章較長,且干貨滿滿。

黃東旭同學在 DTCC2017 上的《When TiDB Meets Kubernetes》演講

以下為演講實錄:

今天給大家?guī)淼姆窒硎顷P于 TiDB 與 Kubernetes 整合的一些工作。在講之前,想了解一下,在場的各位有聽說過 Kubernetes 的同學舉個手;聽說過 TiDB 的舉個手,非常好。因為我也是 DTCC 的常客了,前幾年來講的時候基本上沒有人聽說過 TiDB ,隨著這個項目越來越成熟,很欣慰,有一些社區(qū)的小伙伴已經(jīng)用起來了。

我先簡單介紹一下我自己。我是 PingCAP 的聯(lián)合創(chuàng)始人兼 CTO ,也是 TiDB 項目的碼農(nóng) ,之前一直也是在做 Infrastructure 和分布式系統(tǒng)相關的一些工作。同時也是特別喜歡開源,基本上做的所有東西都是開源,包括像 Codis 、TiDB 、 TiKV 這些項目。比較喜歡的編程語言有 GO 、Rust 、Python。

對于今天的話題,如果說在 40 分鐘之內(nèi)要去完整的介紹怎么做一個數(shù)據(jù)庫或者說怎么去做一個集成調(diào)度的系統(tǒng),我覺得是不太可能的。

所以今天這個 Talk 我主要會分享 TiDB 作為一個分布式關系型數(shù)據(jù)庫與云整合的經(jīng)驗,以及我們遇到的一些問題,來幫大家在遇到相似的問題時提供一個解決思路。大家其實在存儲系統(tǒng)上可以把 TiDB 換成任何東西,然后對于在 Kubernetes 上的融合,我覺得都會有一些啟發(fā)的意義。

首先想強調(diào)的是,Cloud 才是未來。現(xiàn)場做一個小調(diào)研:有在線上生產(chǎn)環(huán)境中,正使用 Kubernetes 或者 Mesos 這樣的容器化管理方案的同學嗎?好,一個兩個三個。

我相信,如果在三到五年以后,再去問這個問題,應該是至少一半的同學會舉手。因為其實在可見的未來,數(shù)據(jù)量是一直在膨脹,業(yè)務會越來越復雜。包括現(xiàn)在很多微服務的這種思想,當你的業(yè)務比較大的時候,會把整個服務拆成非常細的模塊,然后在眾多的模塊的拆分之下,怎么去高效的運維你的分布式集群,其實靠 SRE 或者運維人員手動去管理各個微服務或者說各個的系統(tǒng),其實是不太現(xiàn)實的。

但是大家也都知道,對于這種無狀態(tài)的業(yè)務,比如像 Application 應用層,其實它并不會真正的存儲數(shù)據(jù),狀態(tài)一般都持久化到數(shù)據(jù)庫或者緩存中,所以它基本是無狀態(tài)的。所以其實一直以來大家在使用容器化遇到的***個問題就是,有狀態(tài)的服務,特別是數(shù)據(jù)庫或者分布式存儲系統(tǒng),怎么去運維。比如說我在 Docker 里面寫的數(shù)據(jù),這個容器銷毀它直接就掛了,它其實是很難去做這種數(shù)據(jù)層面上的東西。

然后另外一方面就是數(shù)據(jù)庫的運維,不管是放在云上做還是 DBA 自己在物理機上做,一樣的痛苦,所以怎樣去設計一個面向云的環(huán)境下、或者說在分布式系統(tǒng)上去做數(shù)據(jù)庫。其實這也是在做 TiDB 的過程中我一直在想的。TiDB 這個項目一開始的設計就是:它一定會放在云上去運轉。

Amazon 在它的云上選擇創(chuàng)建一個數(shù)據(jù)庫實例的一個界面

上圖是 Amazon 在它的云上選擇創(chuàng)建一個數(shù)據(jù)庫實例的一個界面,大家不用看具體的字是什么,只是給大家感受下:就是說我作為一個業(yè)務的開發(fā),我要去存儲一個數(shù)據(jù),啟用一個 PG 或者 MySQL 的數(shù)據(jù)庫,我還要去關心這么多個選項,或者說我一定要去關心我的這個物理機到底是什么樣的情況:磁盤有多大,什么機型,各式各樣的配置等。因為畢竟不是所有人都是專業(yè)的 DBA ,也不是所有人都是操作系統(tǒng)的專家,當時看到這個頁面的時候,基本上業(yè)務開發(fā)可能是一臉懵逼的狀態(tài)。

現(xiàn)在所有人都跟你說,我的系統(tǒng)是一個分布式系統(tǒng),在廣告里寫的非常漂亮。現(xiàn)在哪一個數(shù)據(jù)庫說自己不是分布式的,那基本上只能是落后于時代。但是,大家有沒有想過,現(xiàn)在所有的這些分布式系統(tǒng)、分布式數(shù)據(jù)庫,運維起來都是非常痛苦,沒有辦法去很好的把它用好。

以 Hadoop 為例,現(xiàn)在 setup 一個 Hadoop 的集群竟然能成為一個生意,這個生意還讓兩個創(chuàng)業(yè)公司都上市了,一個是 Cloudera,一個是 Hortonworks。其實嚴格來說,他們只是做 Hadoop 運維的創(chuàng)業(yè)公司。然后還有無數(shù)的公司在做 Spark 的維護、Spark 的管理。各種各樣的數(shù)據(jù)庫運維公司,靠這個都過的非常好。

這個其實在我看來是非常不正常的,因為大家想,如果你去運維一兩臺機器那沒有問題,我寫一個腳本,輕輕松松的就可以搞定;然后三五十臺機器,也還行,招一個 OPs 或者說招一個 DBA ,還是可以人工的管理。

但是如果是在 100 臺、1000 臺甚至 10000 臺規(guī)模之上,機器的故障會是每天每夜無時無刻都發(fā)生的,網(wǎng)絡的抖動,磁盤 IO 的異常,一直都在發(fā)生,靠人是沒有辦法做的。總的來說就是,當你去運維一個 single node 的系統(tǒng)時,基本上沒有什么難度;但是如果要去運維一個特別大的 P2P 的 distributed system,尤其是節(jié)點數(shù)特別多的時候,你的狀態(tài)和維護的成本就變得非常高。

之前我做過一個項目叫 Codis ,可能有很多同學聽說過,也可能很多同學已經(jīng)用在生產(chǎn)環(huán)境之中。還有另外一個不是我做的項目,就是官方的 Redis Cluster。當時很多社區(qū)里面的 Redis Cluster 的粉絲一直噴我,說 Codis 的配置怎么這么復雜,一點都不好用,組件怎么這么多。現(xiàn)在這個事情又在重演。

很多系統(tǒng)做成了 P2P 的模型了以后,組件很少部署很方便,但是真正在去運維它的時候,比如說要去做一個滾動升級或者我想清楚的知道整個集群的數(shù)據(jù)分布和各個組件的狀態(tài),又或者說是我的分布式邏輯出了個bug,但是我的存儲層沒事,需要做個熱更新這個時候,p2p 系統(tǒng)的運維復雜度就凸顯了。Codis 它其實有一個 Proxy,一個存儲層,這兩層在邏輯上其實是分離的;但是 Redis Cluster ,每一個節(jié)點既是它的分布式調(diào)度模塊,同時又是它的數(shù)據(jù)存儲模塊,這時候整個系統(tǒng)架構是混在一起的,對于運維的同學來說這就是一個惡夢。

如果我想清楚的知道我的數(shù)據(jù)到底是在哪幾臺機器上,比如說這塊數(shù)據(jù)特別熱我想把它挪走,這時候像在 Redis Cluster 這種純 P2P 的系統(tǒng)里面是很難得到它的當前狀態(tài)。所以這也是影響了我后來一系列的系統(tǒng)設計的想法,所以 operation 是一個非常困難的事情,在一個特別大的分布式系統(tǒng)里,是一個非常困難的事情。

因為你的服務和組件特別多,不同的組件,不同的模塊,然后再加上一個分布式系統(tǒng)里邊特別不穩(wěn)定的網(wǎng)絡狀態(tài),使得各種各樣的異常情況,人是沒有辦法去掌控的。

還好,Google 是一個非常偉大的公司,像 TiDB 整個模型大家也知道是參考了Google Spanner/F1。Kubernetes 背后的系統(tǒng)的前身就是 Google 的 Borg。

Borg 其實是 Google 內(nèi)部一直在用著的大規(guī)模的集群調(diào)度器。Borg 這個單詞就是星際迷航里面的一個角色,相當于它作為整個集群的一個大腦來去控制集群的業(yè)務的分布跟數(shù)據(jù)的均衡,所以 Google 給我們帶來了 Kubernetes 這個項目。

Kubernetes 主要的工作就是一個面向 Container 的集群管理的服務。它同時會去做服務編排,Auto deployment、 Auto scaling、Auto healing ,你的整個集群的這些服務的生命周期的管理,然后故障的轉移、擴容...你可以認為它是一個集群的操作系統(tǒng)。大家可能認為操作系統(tǒng)就是單機上的一個概念,但是如果放到一個大規(guī)模的分布式系統(tǒng)里面,你有無數(shù)的 CPU 資源,無數(shù)的內(nèi)存,無數(shù)的磁盤資源,怎么高效的去把你的服務在這些海量的資源上進行合理的分配,這個就是 Kubernetes 干的事情。

TiDB 大家也都非常熟悉了,我簡單介紹一下吧。

我們做 TiDB 的目標就是,希望構建一個完全彈性的,用戶不需要去知道數(shù)據(jù)的分布信息,也不需要去做手工的數(shù)據(jù)分片,可以把它當做一個單機的數(shù)據(jù)庫、 MySQL 的數(shù)據(jù)庫在用,但是它背后是一個高度彈性和智能的分布式的數(shù)據(jù)庫。對業(yè)務層你不需要再去想分庫分表,也不需要再去想熱點的 balance 這種事情。它支持***的 OLTP 的功能,可以支持跨行事務,像 MySQL 一樣:我開始一個 transaction,然后寫寫寫,*** commit,全成功或者全失敗,沒有第三種可能 。支持事務的前提之下還支持 80% 的 OLAP 。

所以 TiDB 是非常適合去做這種一邊有實時寫入,一邊有復雜 Join 和實時分析的場景,它的 SQL 優(yōu)化器其實也有從 Spark SQL 里面學到了很多東西。

當然對外的接口是完整的 MySQL 的接口,你可以直接用 MySQL 的客戶端就連上了。另外,背后它支持高可用。因為底層的復制協(xié)議并不是通過像這種主從模型去做數(shù)據(jù)冗余的,而是用 Raft,Raft 跟 multi-paxos 是比較接近的,都是基于選舉的算法。

在遇到 MySQL 的擴展性問題的時候,大家過去只能一臉懵逼,然后反回來去拆庫拆表,或者去用 MyCat 或者依托 MySQL 的中間件去做 sharding 。其實這對于業(yè)務層來說,侵入性非常大,所以 TiDB 的初衷就是解決這個問題,但是它沒有用任何一行 MySQL 的代碼。

TiDB 大概是這樣一個架構:

TiDB 其實也是由很多的組件組成,它并不是一個純粹的 P2P 系統(tǒng),如果看這個架構其實非常像 Codis 。

今天的主題是說我們怎么在 Kubernetes 上去做 cluster 的 setup、rolling update,怎么去解決 Kubernetes 對于本地磁盤存儲的綁定問題。

所以面臨著一個與大家之前在 Kubernetes 上去部署帶狀態(tài)的服務非常接近的問題。因為 TiDB 本身是一個帶狀態(tài)的數(shù)據(jù)庫,數(shù)據(jù)庫沒有狀態(tài)那不可能。Kubernetes 的調(diào)度其實是對這種 stateless applications 非常友好的,但是如果你是一個帶狀態(tài)的,比如像 MySQL、PG、TiDB,或者 Etcd、Zookeeper 等等,怎么去做?真正的困難并不是 Kubernetes 做不了,而是每一個不同的系統(tǒng)都有自己的數(shù)據(jù)分布模型,同時每一個不同的系統(tǒng)它的運維方式也不太一樣。所以作為 Kubernetes 的平臺來說,沒有辦法去針對每一個不同的存儲系統(tǒng)去設計一套自己的調(diào)度策略。這是 Kubernetes 沒有辦法去做的一個事情。

舉個例子,比如說你想去運維好一個 Redis Cluster ,那你必須得了解 Redis Cluster 一些原理,還有必須得去知道它怎么運維;如果你想要去運維 Codis ,你必須得知道 Codis 的一些原理方法才能把它運維好。但這些領域知識怎么去告訴 Kubernetes 說你幫我按照這個方法來去運維這個系統(tǒng)?

這時候有一個公司,叫做 CoreOS ,相信大家可能也都熟悉,就是 Etcd 背后的那個公司,也是我們 PingCAP 的好伙伴。CoreOS 也是社區(qū)里面***的 Kubernetes 的運營的公司,他們引入了一個新的 Kubernetes 的組件,叫做 Operator 。Operator的意義在于它其實是相當于使用了 Kubernetes 的 TPR(third party resources)的 API,去把你的系統(tǒng)運維的一些領域知識,封裝到 Operator 里面,然后把 Operator 這個模塊注入到 Kubernetes 上面,整個這些集群是通過 Operator 這個模塊來去做調(diào)度。

CoreOS 官方還提供了一個 Etcd 的 Operator 的實現(xiàn)。其實這思路也很簡單,就是說把這個集群的創(chuàng)建滾動更新,然后各種運維的一些領域知識放到這個 Operator 里面,然后在 Operator 里面去調(diào)用 Kubernetes 原生的 API,來做集群的管理,相當于是 Kubernetes 的一個 Hook 。

一般來說一個 Operator 它其實有這樣一些對外暴露的接口或者是能力。它做的事情的就是:比如我想要讓 Kubernetes 去建立一個 TiDB 的集群,比如說 deployment;比如我加入新的物理節(jié)點以后,我要想對現(xiàn)有的這個集群做擴容,然后 rebalance;比如說我的集群的 TiDB 本身的這些 binary需要升級,我要去做業(yè)務透明的滾動更新,比如說我有 100 個節(jié)點,要在上面去做升級,不可能手動去做,這個其實都是封裝在我們的 Operator 里面,然后包括自動化的 backup 跟 restore 這些功能。

本質(zhì)上來說你可以認為 Operator 是一個 Kubernetes 的批處理方案。我剛才也簡單提到了一下,Kubernetes 可以作為一個集群的操作系統(tǒng),但是這個操作系統(tǒng)總應該能讓運維去寫腳本的,這個腳本就是 Operator 機制。

其實它的原理很簡單,就是它注入到 Kubernetes 里面,會實時不停的去觀察集群的狀態(tài),去 Hook Kubernetes 的一些集群的狀態(tài),一些 API,然后得到整個集群的狀態(tài)。把一些分析的東西放在 Operator 里面,它可能會有一些地方被觸發(fā),比如說我該擴容了或者我該去做 Failover ,然后去反饋。

然后 TiDB 的 Operator 目前來說有這么幾個功能:創(chuàng)建集群、滾動更新、Scale out, Failover、Backup/Restore。

因為其實今天的這個話題是說怎么去跟云做結合。我們現(xiàn)在在跟一些公有云的提供方在做合作。但是不可能說每一個公有云都自己去接入它的資源管理的 API,因為每個公有云可能都用的是不一樣的 API database,所以我們相當于做的一個方案就是說,不管你是公有云也好還是私有云也好,你給我一堆物理的機器,然后在這一堆物理的機器上面去部署 Kubernetes ,在這個 Kubernetes 上面,我相當于把我的 TiDB Operator 給放進去,當某個公有云客戶要它去創(chuàng)建一個集群的時候,會通知 Operator 去創(chuàng)建,比如說劃出一些機器,去做物理隔離。

這在私有云里邊也是一個比較常見的場景了。用戶他其實想要去做這種業(yè)務之間的租戶隔離,TiDB Operator 是做一個比較簡單的物理隔離。

但是做這個 Operator 最難的一個部分其實剛才也簡單講了一下,就是存儲的問題。如果大家關注 Kubernetes 社區(qū)的話,一般都會注意到 persistend local storage 的這個方案一直在社區(qū)里邊扯皮和吵架。現(xiàn)在大家認為 Kubernetes 本地的磁盤是沒法用的,或者說沒有辦法直接當做一個資源來使用的。

 persistent local storage

上圖是放在 Kubernetes 的 issues 里面的一個問題,就是 persistent local storage ,這個看上去非常不可思議,這么簡單的功能為什么一直到現(xiàn)在沒有支持。

我個人感覺 Google 之所以遲遲不去做這個功能,它背后有一個原因可能是在 Google 內(nèi)部,它的網(wǎng)絡存儲是非常強的,它有自己非常好的網(wǎng)絡設備。你在同一個數(shù)據(jù)中心里,去換一塊網(wǎng)絡盤,它的這個 latency 基本上很多業(yè)務可以接受的,所以這樣的話,持久化存儲的問題基本上是靠網(wǎng)絡的磁盤來解決。

想像你跑一個 MySQL 的業(yè)務,MySQL 的業(yè)務本身它寫入的磁盤并不是你的物理機的本地盤,而是一塊網(wǎng)絡盤,這個網(wǎng)絡盤我能給你保證它的 IOPS 跟 latency 都是非常好的狀態(tài),這個時候你的業(yè)務掛掉了,我再重新啟一個容器把這個網(wǎng)絡盤再掛到那個 pod 的后邊,這時候你的業(yè)務是幾乎無感知的。這也是 Google 比較推崇的使用存儲的一個模式,所以這就是 Kubernetes 背后的那個 persistent volumes 的這個方案。

它現(xiàn)在是有這個方案的,但是對于像我們這樣的分布式數(shù)據(jù)庫或者說對這種本地磁盤有特別強要求的( TiDB 底層的存儲引擎對單機的 SSD 做了非常多的優(yōu)化),并沒有辦法去容忍我底下寫入的一個磁盤是網(wǎng)絡盤。因為本身比如說 TiDB 這一層,已經(jīng)做了三個副本,甚至五個副本的復制,但是在底下網(wǎng)絡盤又要去做這個復制其實是沒有太多必要的,所以 Google 一直遲遲沒有推 Local Storage Resource。如果在 Google Cloud 上它能更好的去賣它的云盤,或者說對于這些公有云廠商來說,這是更友好的。

當然它也不是沒做,它是要在 1.9 里面才會去做這個支持,但以 Kubernetes社區(qū)的迭代速度,我估計 1.9 可能還要等個兩三年,所以這是完全不能忍的一個狀態(tài)。那既然我們又需要這個本地磁盤的支持,但是官方又沒有,那該怎么辦呢?這時我們就發(fā)揮主觀能動性了。

我們給 Kubernetes 做了一個 patch。這個 patch 也是通過 Kubernetes resource 的方案去做的一個本地磁盤資源的管理模塊,這個怎么做的呢?也比較簡單。這部分內(nèi)容就比較干了,需要大家對 Kubernetes 整個架構有一點點了解。

***步,先會去創(chuàng)建一個 Kubernetes 的 Configuration map,我們稱之為 TiDB 的 storage ,就是針對 storage 的物理資源寫在配置的文件里邊。比如說機器的 IP,它的不同盤對應的文件夾在哪兒,相當于是一個配置階段的東西。

第二步,創(chuàng)建一個利用 Kubernetes 的 Third Party Resources(TPR) 的 API,去創(chuàng)建一個叫 tidb-volume 的第三方資源,然后這個資源去剛才 Configuration map 里面去讀它去注冊的那些物理磁盤分布的狀態(tài)資源,相當于 TPR 會把那個配置里面的磁盤資源 load 出來,變成在 Kubernetes 里的一個第三方 resource,這個對象大概是這樣一個狀態(tài)。

第三步,我們在這邊會去寫一個 controller,我們寫這個 controller 是干嘛呢?叫 volume-controller 。比如說我們的一個磁盤的資源分配給了一個 pod,然后這個 pod 現(xiàn)在在占用著這個資源,我需要有一個 controller 的模塊來標記這個資源的使用情況,不能說我新的業(yè)務在起來的時候,我把資源分配給了兩個正在用的業(yè)務,這是不行的。這里的對應關系其實是由 volume controller 去維護的。然后另外一方面它還實時的監(jiān)盯著剛才 Configuration map 里面的物理資源,我可以動態(tài)的添加物理的磁盤資源的一些狀態(tài)。

第四步,剛才我們說到 opreator 其實是一個運維的工具,去做創(chuàng)建集群還有滾動升級,相當于總的入口。在這里面在去創(chuàng)建集群,在啟動進程的時候,把剛才我們創(chuàng)建的本地磁盤資源啟動實例綁定在一起,讓它能夠成功的創(chuàng)建這個資源。

第五步,就是創(chuàng)建一個 DaemonSet。DaemonSet 在 Kubernetes 里就是在每一個物理節(jié)點上每一個長度的進程,這個進程是用來去維護磁盤上資源的使用狀況。比如說一個 TiKV 的節(jié)點下線了,這個物理的磁盤資源就要被回收。回收了以后你要去做刪除數(shù)據(jù)、清空數(shù)據(jù)的操作,或者這個物理機就宕機了,你需要有一個東西來去通知 controllor 把這個資源給下線掉,這個是 DaemonSet 在干的事情。

這一整套加起來就是相當于只通過 Third Party Resources 來嵌入 Kubernetes,整體來說在旁路卻實現(xiàn)了一種本地的 local 磁盤的管理方案。

因為這個代碼其實還蠻多的,現(xiàn)在還沒有辦法直接 push 回 Kubernetes 社區(qū)。雖然現(xiàn)在這還是一個 private 的項目,但是在后續(xù)把代碼整理以后我們還是會開源出來。所以這其實也是為大家以后在 Kubernetes 去調(diào)度這種單雙向服務的方案,提供了一套可行的路,至少我們用這個還挺爽的。

然后,想稍微展望一下未來的數(shù)據(jù)庫應該是什么樣的。

在我看來,未來的數(shù)據(jù)庫不會再需要 DBA ,或者說未來你在寫業(yè)務的時候,并不需要去關心底下數(shù)據(jù)該去怎么分片,怎么去 sharding,一切都應該是在后面的云服務本身或者基礎設施去提供的。所有的東西都應該是 self-driving,相當于自動駕駛。就像在未來大家覺得自動駕駛應該是一個方向,在基礎軟件里我覺得也是越來越多的自動化導致大家對運維的依賴變得越來越輕。但是在很多的極端的情況下,circuit-breaker(斷路器)還是要有的。比如說我的業(yè)務產(chǎn)品現(xiàn)在突然出現(xiàn)了一個特別熱的熱點,我需要業(yè)務這邊去緊急的做手動的數(shù)據(jù)切分、移動,把負載手動的均衡出來,所以手動模式還是仍然要有的。類似于你自動駕駛的汽車,突然來一個人加塞,大家還是非常希望能保證自己的安全,那就必須得有一個手動的模式。

第二點是 database as a service ,前面也說到了,serverless 可能會在 database 里面,有一種新的形態(tài)的數(shù)據(jù)的數(shù)據(jù)庫。大家如果關注數(shù)據(jù)庫領域的話,最近出了一個新的數(shù)據(jù)庫叫 FaunaDB 。FaunaDB 非常有意思,它其實是跟公有云綁定在一起對外提供服務的,你看不見它實際的進程和部署,也看不見它物理的進程在什么地方,整個數(shù)據(jù)庫對外的展現(xiàn)形式就是你去買我的服務,我給你多少的 QPS。比如說你買一萬個 QPS,這個服務就能保證一萬個 QPS,你買十萬就是十萬,按這個價格來去付費,至于你的容量全都是在背后隱藏著,所有業(yè)務的開發(fā)者實際上是看不見。

第三點就是 Local storage isn’t necessary。為什么 Google 它一直沒有在 Kubernetes 里面去做 Local storage,其實仔細想一下也是有道理的,就是說隨著未來硬件的發(fā)展,當網(wǎng)絡社會的速度和分布跟你的磁盤的存儲差不多的時候,那它到底是不是網(wǎng)絡的,已經(jīng)對業(yè)務層沒有什么意義了,所以這可能是一個未來的趨勢。

這條是一個比較極端的路,就是把整個磁盤放到網(wǎng)絡上,用網(wǎng)絡盤。還有另外一條反向的特別極端的路,也是我現(xiàn)在正在嘗試的一個東西,就是更加去對硬件做定制。比如說我現(xiàn)在嘗試把一些 TiDB 的數(shù)據(jù)庫的一些邏輯放到 FPGA 上面,或者是放在 SSD 的控制芯片里面,這其實是更深的定制,在未來我覺得兩者可能會融合。就是說我雖然可能是掛了一個網(wǎng)絡盤,但是對于數(shù)據(jù)庫來說我有了這個計算邏輯可能直接的去操作硬件,而不需要去例如通過標準的 POSIX API 來轉換內(nèi)核走 本地 IO 的接口。

總結一下,分布式系統(tǒng)的運維特別的痛苦,然后 Kubernetes 是一個未來集群調(diào)度必然的趨勢,但是在存儲層它現(xiàn)在還沒有太多的好辦法。目前來說我們在做的一個事情就是 Operator,把整個存儲層的運維的領域知識放在 Operator 里邊,然后讓 Kubernetes 能去調(diào)度我們的東西。這個有點像 DCOS 的 batch script。

TiDB-Operator,其實是把運維干的事情,全都通過 Operator 的形式來封裝在程序里邊,然后自動的去運維。

Local Storage 的問題我們是解決了。雖然 Kubernetes 沒有辦法去提供這個能力,但是我們暫時解決了。

【本文是51CTO專欄機構“PingCAP”的原創(chuàng)文章,轉載請聯(lián)系作者本人獲取授權】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2019-01-03 14:31:40

NewSQL PingCAPTiDB

2019-03-05 12:12:39

數(shù)據(jù)庫HTAPACID

2017-05-12 10:34:45

騰訊云第八屆中國數(shù)據(jù)庫技術大

2018-04-23 13:49:03

大數(shù)據(jù)數(shù)據(jù)庫HTAP

2018-06-25 14:52:26

TiDB數(shù)據(jù)庫CTO

2017-06-04 23:39:16

TiKVC++Rust

2025-01-02 10:35:35

2017-05-03 09:28:46

互聯(lián)網(wǎng)

2022-08-31 08:54:57

AIDALL-E 2OpenAI

2015-07-07 10:39:02

2013-12-22 22:58:16

柳傳志IBM

2013-06-24 15:33:42

大學生IT博客大賽IT博客大賽IT博客大賽50強

2012-09-05 09:33:51

瑞友

2013-04-11 16:59:07

IDF2013賈斯汀

2011-08-10 23:24:04

投影機用戶體驗

2018-05-31 16:13:12

大數(shù)據(jù)架構趨勢

2020-11-30 09:53:30

PingCAP

2017-08-30 10:24:36

云計算大會演講嘉賓

2017-11-03 13:30:41

深度學習TensorFlowGoogle Brai

2017-05-11 17:02:37

互聯(lián)網(wǎng)
點贊
收藏

51CTO技術棧公眾號

亚洲国产综合人成综合网站| 免费一区视频| 欧美大胆人体bbbb| 国产肥臀一区二区福利视频| 国产经典自拍视频在线观看| 久久99蜜桃精品| 色综合色综合久久综合频道88| 北岛玲一区二区| 成人交换视频| 五月天网站亚洲| 中文字幕在线观看一区二区三区| 黄色美女一级片| 蓝色福利精品导航| 欧美亚洲激情在线| 性欧美疯狂猛交69hd| 欧美人与动xxxxz0oz| 欧美高清激情brazzers| 可以在线看的av网站| 欧美尤物美女在线| 久久青草国产手机看片福利盒子 | 欧美不卡福利| www.麻豆av| 日本不卡视频一二三区| 高清欧美性猛交xxxx黑人猛交| jizzjizz日本少妇| 特黄特色欧美大片| 欧美精品一区二区三区高清aⅴ | 欧美一区=区三区| 午夜精品影院在线观看| 99中文字幕在线观看| av在线电影免费观看| 久久久99精品免费观看| 国产精品一区二区在线观看| 99久久国产热无码精品免费| 免费成人在线观看| 国产97免费视| 欧美精品韩国精品| 国产精品视频| 97成人超碰免| 91在线看视频| 国产一区二区三区的电影 | 高清一区二区| 欧美无人高清视频在线观看| www.亚洲天堂网| 一个人www视频在线免费观看| 亚洲在线免费播放| 欧美日韩激情四射| 18加网站在线| 亚洲精品第1页| www.一区二区.com| 性欧美video高清bbw| 一区二区三区在线观看欧美| 青青在线视频免费观看| 亚洲综合影视| 亚洲一区二区欧美日韩| 欧美a级免费视频| 男男gaygays亚洲| 亚洲一区二区三区美女| 免费一级特黄特色毛片久久看| 波多野结衣精品| 精品久久久久久中文字幕| 91九色在线观看视频| 偷拍视频一区二区三区| 欧美曰成人黄网| av污在线观看| 欧美一区一区| 亚洲电影在线观看| 丰满大乳奶做爰ⅹxx视频| 久久不见久久见免费视频7| 亚洲视频自拍偷拍| 国精产品视频一二二区| 亚洲一区欧美| 国内精品久久久久久| 亚洲免费在线视频观看| 日本 国产 欧美色综合| 91国产丝袜在线放| 亚洲色大成网站www| 国产欧美va欧美不卡在线| 亚洲成年人专区| 狂野欧美激情性xxxx欧美| 好吊成人免视频| jizzzz日本| 91麻豆精品激情在线观看最新| 日韩激情第一页| wwwww黄色| 欧美午夜电影在线观看| 国产成人高潮免费观看精品| 亚洲系列在线观看| 成人福利视频在线| 亚洲 国产 欧美一区| 青草在线视频| 欧美日韩国产天堂| 一级黄色免费视频| 欧美三级美国一级| 精品视频9999| 99re热视频| 高清久久久久久| 日韩中文字幕一区二区| 四虎亚洲精品| 欧美三级在线视频| 黄色在线免费播放| 久久影院100000精品| 高清一区二区三区四区五区| 97超碰人人模人人人爽人人爱| 成人精品免费看| 中文精品视频一区二区在线观看| 手机在线观看av| 日韩写真欧美这视频| 国产91丝袜美女在线播放| 欧美欧美全黄| 91精品国产综合久久香蕉| 无码国产伦一区二区三区视频| 国产精品乱码人人做人人爱| 欧美成人xxxxx| 日韩中文一区二区| 中文字幕日韩欧美在线| 久久久久久久黄色片| 国产成人综合亚洲91猫咪| 欧美日韩精品久久| 国产福利电影在线播放| 欧美一区二区三区四区五区| 国产aaaaaaaaa| 国产免费成人| 久久久7777| 国产美女情趣调教h一区二区| 91精品视频网| 久久精品色妇熟妇丰满人妻| 久久久久久久波多野高潮日日| 欧洲亚洲女同hd| 欧美中文一区| 亚洲精品美女久久久| 日本激情视频一区二区三区| 免费看的黄色欧美网站| 国产欧美综合精品一区二区| 污片在线免费观看| 在线播放视频一区| 欧美日韩在线一区二区| 自拍另类欧美| 丁香久久综合| 亚洲香蕉伊综合在人在线视看| 色婷婷av国产精品| 成人app下载| 五月丁香综合缴情六月小说| 果冻天美麻豆一区二区国产| 性欧美长视频免费观看不卡| 熟妇人妻系列aⅴ无码专区友真希| 亚洲一线二线三线视频| 国产51自产区| 亚洲日产国产精品| 久久久7777| 日韩和的一区二在线| 亚洲欧美一区二区三区在线| 无码人妻精品一区二区三区9厂 | 国产伦精品一区二区| 国产乱码在线| 日韩国产激情在线| 欧美性猛交bbbbb精品| 久久久激情视频| 欧美国产日韩在线播放| 久久国产成人精品| 91日韩在线视频| 最新av在线播放| 亚洲第一页在线| 特级毛片www| 国产又黄又粗又长| 亚洲天堂久久久久久久| 亚洲综合123| 精品人妻一区二区三区三区四区| 日韩av不卡一区二区| 日韩欧美精品久久| 亚洲精品无播放器在线播放| 久久91亚洲精品中文字幕| 色欲久久久天天天综合网| 一本高清dvd不卡在线观看| 久久久免费看片| 国产伦精品一区二区三区免费迷 | 制服丝袜日韩国产| 九九视频免费在线观看| 91麻豆.com| 国产三级国产精品国产专区50| 午夜久久福利| 茄子视频成人在线观看| 日本精品视频| 日本sm极度另类视频| 黄网站免费在线播放| 亚洲国产成人在线视频| 日本成人一级片| 亚洲一区二区三区四区不卡| 国产真人真事毛片视频| 成人免费看的视频| 久久久久国产一区| 一区久久精品| 亚洲欧美精品在线观看| 国产精品1luya在线播放| 日韩免费在线观看视频| 中文字幕有码在线观看| 亚洲毛片在线看| 国产浮力第一页| 91国模大尺度私拍在线视频| 国产亚洲欧美精品久久久www| 国产日本欧美一区二区| 日韩综合第一页| 国产真实乱子伦精品视频| av网站在线观看不卡| 欧美日韩中文| 中文字幕超清在线免费观看| 国产探花一区二区| 国产日韩欧美综合精品| 国产精品视频一区视频二区| 国产成人亚洲综合| 岛国av免费在线观看| 九九热最新视频//这里只有精品| 成a人v在线播放| 精品一区二区三区电影| 国产香蕉在线观看| 欧美一区中文字幕| 欧美男人天堂网| 粉嫩老牛aⅴ一区二区三区 | 欧美日韩爆操| 一区二区日本伦理| 精品久久综合| 欧美精品一区二区视频 | 日本在线高清视频一区| 欧美深夜视频| 国产伦精品一区二区三区| 精品视频在线观看网站| 国产美女精彩久久| 日韩精品一区二区三区av| 日产日韩在线亚洲欧美| 天堂电影一区| 欧亚精品在线观看| 毛片在线网站| 91精品国产一区| а√在线天堂官网| 国模精品系列视频| 操人在线观看| 97成人超碰免| 人人视频精品| 国产脚交av在线一区二区| 日韩a**中文字幕| 日韩免费在线视频| 电影天堂国产精品| 国产精品第一区| 成人全视频在线观看在线播放高清| 国产国语刺激对白av不卡| 成人一级视频| 91午夜理伦私人影院| 玖玖玖视频精品| 高清国产在线一区| 国产一区二区三区不卡av| 久久精品国产综合精品| 婷婷精品在线观看| 日本一区二区久久精品| 久久麻豆精品| 欧美一级特黄aaaaaa在线看片| 欧美a级在线| 熟女少妇在线视频播放| 久久五月激情| 一本色道久久亚洲综合精品蜜桃| 久久99国产精品免费| 一级黄色高清视频| 成人免费av资源| 亚洲激情视频小说| 国产精品嫩草久久久久| 久草视频免费在线播放| 精品久久久久久国产| 18国产免费视频| 日韩视频在线永久播放| 污污网站免费在线观看| 在线观看久久久久久| 精品视频在线一区二区| 久久久久久国产精品| 3d欧美精品动漫xxxx无尽| 成人福利网站在线观看11| 大奶在线精品| 日本视频一区在线观看| 中文字幕一区二区av| 黄色一级在线视频| 欧美a一区二区| 无码人妻丰满熟妇啪啪网站| 久久伊99综合婷婷久久伊| 色老板免费视频| 欧美日韩国产一区二区三区| 国产在成人精品线拍偷自揄拍| 精品粉嫩aⅴ一区二区三区四区| 国产高清视频在线| 欧美巨乳在线观看| 欧美中文字幕精在线不卡| 亚洲最大成人在线| 国产九一精品| 日本熟妇人妻xxxx| 美美哒免费高清在线观看视频一区二区 | 免费试看一区| 欧美日韩国产探花| 亚洲无吗一区二区三区| 成人免费毛片app| 亚洲 欧美 变态 另类 综合| 欧美体内谢she精2性欧美| 国产农村妇女毛片精品| 亚洲欧美福利视频| 毛片网站在线看| 成人午夜两性视频| 久久不见久久见中文字幕免费| www污在线观看| 激情成人综合网| 亚洲综合欧美综合| 精品久久久久久亚洲精品| 性中国xxx极品hd| 久久久av免费| 成人国产网站| 欧美日韩亚洲在线| 日韩视频二区| 亚洲av无一区二区三区久久| 国产精品日韩成人| 成人免费毛片视频| 亚洲国产欧美一区| 色呦呦在线播放| 成人做爽爽免费视频| 精品色999| 动漫av免费观看| 91麻豆精东视频| 黄色片视频网站| 亚洲福利视频在线| 肉肉视频在线观看| 亚洲xxxxx| 一本一道久久a久久精品蜜桃| xxx国产在线观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 777久久久精品一区二区三区| 成人性生交大片免费看中文网站| 一区二区视频免费看| 在线播放91灌醉迷j高跟美女 | 国产在线视频网| 欧洲成人免费视频| 国产成人ay| 国产免费视频传媒| 国产亚洲人成网站| 99久久久无码国产精品免费蜜柚 | 欧美丰满美乳xxⅹ高潮www| 一本大道久久a久久综合| 日韩资源在线| 国产成人综合一区二区三区| 精品视频网站| 午夜免费福利视频在线观看| 18欧美亚洲精品| 国产视频一区二区三| 九九精品视频在线观看| 亚洲视频一起| 人妻av中文系列| 久久蜜臀中文字幕| 亚洲精品毛片一区二区三区| 中文字幕9999| 国产精品亚洲一区二区在线观看| 久久福利一区二区| youjizz久久| 97久久久久久久| 一本色道久久综合狠狠躁篇的优点| 日韩经典一区| 公共露出暴露狂另类av| 国产xxx精品视频大全| 日韩精品在线免费看| 亚洲男人天堂久| 国产精品亚洲成在人线| 蜜臀av.com| 99免费精品在线观看| 中文字幕免费高清网站| 日韩视频免费在线| 北条麻妃一区二区三区在线| 少妇高清精品毛片在线视频| 中文字幕电影一区| 国产激情无套内精对白视频| 456国产精品| 日韩中文在线电影| 中文写幕一区二区三区免费观成熟| 五月天激情综合| 午夜在线小视频| 精品国产乱码久久久久久88av| 日韩不卡一区二区| 欧美色图一区二区| 日韩精品视频中文在线观看| 日韩大陆av| 丁香六月激情婷婷| 欧美日韩综合在线| 9191在线观看| 国产日韩一区二区| 裸体一区二区三区| 久久视频免费在线观看| 国产一区二区三区毛片| 日韩最新av| 国产主播中文字幕| 亚洲1区2区3区视频| 日本综合在线| 免费在线成人av| 国产精品中文有码| 自拍偷拍18p| 久久久噜噜噜久噜久久| 日韩国产在线| 国产特黄级aaaaa片免| 日韩欧美一二三| 国内自拍亚洲|