數(shù)據(jù)庫高可用的定義和度量

什么是高可用

高可用是系統(tǒng)的一個(gè)特性,保證系統(tǒng)能在足夠長的時(shí)間內(nèi)提供指定程度的服務(wù)等級。再細(xì)化一下,可以說是在有限的故障條件下,提供一定級別的穩(wěn)定服務(wù)。

在傳統(tǒng)領(lǐng)域,SLA用于在商業(yè)上定義系統(tǒng)的高可用。

SLA全稱是service level agreement,在網(wǎng)絡(luò)服務(wù)供應(yīng)商領(lǐng)域被廣泛使用,約定了最小帶寬,同時(shí)服務(wù)客戶數(shù),最大故障時(shí)間等等一系列指標(biāo)。在軟件領(lǐng)域,最廣泛使用的指標(biāo)是平均服務(wù)時(shí)間。

見下圖

SLA.png

因?yàn)檐浖I(lǐng)域的各項(xiàng)指標(biāo)不好度量,很難約束,因此其他指標(biāo)也很少提到。但可以想像,作為高可用的系統(tǒng),不止要有達(dá)標(biāo)的故障時(shí)間,同時(shí)要保證在服務(wù)時(shí)間達(dá)到用戶可接受的服務(wù)質(zhì)量,對于數(shù)據(jù)庫而言,類似tps,事務(wù)平均時(shí)延,99%時(shí)延等。

各家SLA展播

服務(wù)商及產(chǎn)品 可用性 數(shù)據(jù)持久度 除外條款 賠償條款
阿里云ECS 99.95% 99.9999999% (1)不可使用的服務(wù)時(shí)間低于5分鐘的,不計(jì)入不可用時(shí)間;(2)阿里云預(yù)先通知用戶后進(jìn)行系統(tǒng)維護(hù)所引起的,包括割接、維修、升級和模擬故障演練; (3)不可抗力以及意外事件引起的; 不可用時(shí)間100倍
阿里云rds 99.95% 同上,高可用版和金融版為1分鐘 不可用時(shí)間100倍,高可用版和金融版,服務(wù)費(fèi)的15% - 30% - 100% (99.95%-99%-95%)
AWS EC2 99.95% 無活躍鏈接,運(yùn)維不算,不可抗力不算 低于99.95%,賠 10%;低于99%,賠30%
AWS RDS 99.95% 類似阿里,不計(jì)時(shí)間為1分鐘 低于99.95%,賠 10%;低于99%,賠25%
AWS S3 99.99% 99.999999999%
騰訊云云主機(jī) 99.95% 99.999% 5分鐘以下不計(jì)費(fèi),無其他除外條款 不可用時(shí)間100倍

從這幾家對比看,AWS是最強(qiáng)的,阿里也差不多了,騰訊云是相對較差的,看一下服務(wù)條款的完善程度就能明顯地感受到。

評價(jià)高可用的標(biāo)準(zhǔn)

評價(jià)系統(tǒng)高可用,可以有幾個(gè)維度:

  1. 有限故障下數(shù)據(jù)是否丟失,系統(tǒng)的服務(wù)等級降低幅度是否合理;
  2. 高壓力下系統(tǒng)的服務(wù)等級;
  3. 服務(wù)變更下系統(tǒng)的服務(wù)等級;

有一個(gè)關(guān)于故障條件下系統(tǒng)表現(xiàn)較好的分級,見下表:

分級 描述
1 Crash with data corruption, destruction.
2 Crash with new data loss.
3 Crash without data loss.
4 No crash, but with no or very limited service, low service quality.
5 Partial or limited service, with good to medium service quality.
6 Failover with significant user visible delay, near full quality of service
7 Failover with minimal to none user visible delay, near full qualityof service.

? 摘自《來自 Google 的高可用架構(gòu)理念與實(shí)踐》

數(shù)據(jù)庫系統(tǒng)的一些度量方法

數(shù)據(jù)持久度

數(shù)據(jù)庫系統(tǒng)可以通過副本備份等方式有效提高數(shù)據(jù)持久度,抵御磁盤損壞等故障造成數(shù)據(jù)丟失的風(fēng)險(xiǎn)。

當(dāng)然隨著現(xiàn)在分布式存儲的發(fā)展,持久度已經(jīng)很少有人關(guān)心了,但是對于直接使用磁盤的情況,這仍然是一個(gè)需要考慮的問題。

平均服務(wù)時(shí)間

對于計(jì)算服務(wù)可用時(shí)間,引入3個(gè)來自工業(yè)界的概念:

  1. MTBF (Mean Time Between Failures) =平均故障間隔時(shí)間
  2. MTTF (Mean Time To Failure) =平均故障時(shí)間
  3. MTTR (Mean Time To Repair) =平均修復(fù)時(shí)間

高可用時(shí)間=MTBF/(MTBF+MTTF)

顯然,這里存在執(zhí)行上的問題,假設(shè)tcp超時(shí)時(shí)間是2min,那么低于兩分鐘是很難確定到底是系統(tǒng)故障還僅僅是軟件處理較慢。或者軟件由于資源(比如IO)受限被卡住,這是客戶也是很難判斷是否發(fā)生了故障。

對于系統(tǒng)管理員來說,同樣存在類似的問題,心跳檢測是最常見的監(jiān)控手段,但是心跳時(shí)間也很難設(shè)置太短,這是受網(wǎng)絡(luò)條件限制的,常常,故障的發(fā)現(xiàn)就是以分鐘計(jì)算的。

RTO/RPO

RTO和RPO是傳統(tǒng)數(shù)據(jù)庫領(lǐng)域常見的兩個(gè)衡量高可用的指標(biāo)。

  1. RTO(Recovery time objective):故障恢復(fù)耗時(shí)
  2. RPO(Recovery point objective):恢復(fù)后數(shù)據(jù)對應(yīng)的時(shí)間點(diǎn),即丟失的數(shù)據(jù)量轉(zhuǎn)換為時(shí)間

舉個(gè)簡單的例子,數(shù)據(jù)庫同城同步備機(jī),故障后RPO必然是0,tikv一般情況下RPO也是0。RTO也是秒級的,對于不同的故障,結(jié)果也不同

請求成功率

對于分布式系統(tǒng)來說,從系統(tǒng)層面考察平均服務(wù)時(shí)間的意義并不是很大,對于很多分布式系統(tǒng)來說,單機(jī)的故障并不能影響系統(tǒng)整體穩(wěn)定的繼續(xù)運(yùn)行,從這個(gè)角度來說,系統(tǒng)可用性可以說是100%的。這時(shí),計(jì)算請求的成功數(shù)可能更適合這樣的系統(tǒng),如下:

可用性=成功請求數(shù)/總請求數(shù)

當(dāng)然這種指標(biāo)更方便觀察系統(tǒng)的內(nèi)部錯(cuò)誤,對于事務(wù)回滾這種行為,并不能認(rèn)為是失敗的請求。這是和業(yè)務(wù)行為及事務(wù)語義相關(guān)的。

長穩(wěn)

上面提及SLA,也提到了,其實(shí)在傳統(tǒng)領(lǐng)域,不止可服務(wù)時(shí)間受人關(guān)注,服務(wù)質(zhì)量指標(biāo)(SLO)同樣受人關(guān)注。

大家都知道木桶原理,數(shù)據(jù)庫做為基礎(chǔ)軟件,既是吞吐沒有下降,一時(shí)的性能抖動可能導(dǎo)致業(yè)務(wù)軟件的性能大幅下降。

衡量數(shù)據(jù)庫服務(wù)質(zhì)量通常有幾個(gè)指標(biāo):

  1. 吞吐量,對于數(shù)據(jù)庫系統(tǒng),一般是qps,或者tps;
  2. 時(shí)延,關(guān)于時(shí)延,一般有如下幾個(gè)指標(biāo), 平均時(shí)延,95%時(shí)延,99%時(shí)延,最大時(shí)延;
  3. 回滾率

制定合理的高可用目標(biāo)

不客氣的說,對于絕大部分系統(tǒng),在正常故障下,2個(gè)9到3個(gè)9已經(jīng)足夠用了,不考慮系統(tǒng)變更,這也是一個(gè)很容易達(dá)到的指標(biāo)。

而提升一個(gè)9,系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的復(fù)雜度都要提升很多,所得未必償所失。

打個(gè)比方,我們看到阿里rds的SLA是99.95%,而且是按月結(jié)算的,那么每個(gè)月允許的故障時(shí)間大概是4min,加上1min的不計(jì)時(shí)間,算5min,嚴(yán)格來說,這5min包含故障發(fā)現(xiàn)和故障處理。可以想像,如果是人來處理,5min都未必能及時(shí)登錄到系統(tǒng)上。必然是全自動的故障處理,這個(gè)要求對系統(tǒng)的自動化故障處理能力的要求就非常高了。很多大型互聯(lián)網(wǎng)公司也未必有這個(gè)開發(fā)能力,當(dāng)然,也沒有這個(gè)必要。

不過只要不發(fā)生大規(guī)模的故障,賠100倍的時(shí)間,對阿里也不算什么。不按客戶損失賠償,都是玩笑罷了。

參考資料

  1. 《SRE: google運(yùn)維解密》
  2. 來自 Google 的高可用架構(gòu)理念與實(shí)踐
  3. 關(guān)于SLA,你到底知多少?
  4. 云服務(wù)器(ECS)服務(wù)等級協(xié)議(SLA)
  5. 騰訊云服務(wù)SLA
  6. 《the tail at scale》

廣告

最后,打個(gè)廣告,如果對創(chuàng)業(yè),分布式數(shù)據(jù)庫和開源社區(qū)感興趣,歡迎加入pingcap,實(shí)習(xí)和工作都很歡迎!
Email: xuwentao@pingcap.com
微信: fbisland

pingcap是國內(nèi)為數(shù)不多的newsql方向的分布式數(shù)據(jù)庫,維護(hù)國內(nèi)最頂級的開源社區(qū),關(guān)注度近萬,目前已在騰訊云和ucloud上線,做類f1+spanner架構(gòu),和多家公司有合作關(guān)系。
TiDB: https://github.com/pingcap/tidb
TiKV: https://github.com/pingcap/tikv

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,338評論 1 372
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,296評論 2 376