本文根據(jù)高效運(yùn)維系列微信群的嘉賓分享整理并發(fā)布〉籽「高效運(yùn)維」公眾號(hào)作為本系列群的官方唯一公眾號(hào)巢株,原創(chuàng)并獨(dú)家首發(fā)。OneAPM 授權(quán)轉(zhuǎn)發(fā)熙涤。
編輯
- 徐凱強(qiáng)@和信-北京(內(nèi)容收集阁苞、發(fā)布)
作者介紹
邱模炯
UCloud 平臺(tái)開發(fā)中心總監(jiān),北京大學(xué)計(jì)算機(jī)系研究生畢業(yè)祠挫,擅長(zhǎng)操作系統(tǒng)那槽、虛擬化和數(shù)據(jù)中心自動(dòng)化等云平臺(tái)的基礎(chǔ)技術(shù)。
引言
很多朋友對(duì)云平臺(tái)可用性有所擔(dān)心等舔,認(rèn)為用物理機(jī)更加放心骚灸。今天我想就這個(gè)話題拋出個(gè)人看法。希望對(duì)大家有參考意義软瞎。先拋出結(jié)論:
從業(yè)務(wù)程序的角度逢唤,云主機(jī)的可用性可以做到比物理機(jī)高拉讯,即故障率更低(可用性和故障率接近但不是一個(gè)概念,為了便于闡述鳖藕,下面只討論故障率)魔慷。
我見過很多客戶抱怨云主機(jī)的故障率。同時(shí)著恩,我也見過并且?guī)秃脦讉€(gè)使用物理機(jī)的客戶解決問題:
他們沒有專業(yè)團(tuán)隊(duì)及大規(guī)模環(huán)境院尔,對(duì)于復(fù)雜點(diǎn)的軟硬件故障幾乎束手無策,有時(shí)甚至解決的過程把小問題變成大問題喉誊。
這也是我今天分享這個(gè)話題的動(dòng)力邀摆。下面進(jìn)入正題,下圖是云主機(jī)和物理機(jī)軟硬件層次對(duì)比:
影響云主機(jī)故障率的主要因素有:
- 服務(wù)器硬件質(zhì)量
- 宿主機(jī)內(nèi)核
- 虛擬化層(KVM+QEMU 或 Xen)
- Linux 內(nèi)核(承載業(yè)務(wù)程序)
影響物理機(jī)故障率的主要因素有:
- 服務(wù)器硬件質(zhì)量
- Linux 內(nèi)核(承載業(yè)務(wù)程序)
從上面的對(duì)比看,云主機(jī)比物理機(jī)故障率貌似要高敷矫,因?yàn)樘摂M化層和宿主機(jī)內(nèi)核非常復(fù)雜例获,引入額外的故障率。這是直覺曹仗,而且很有道理:
AWS 去年就因?yàn)樘摂M化層內(nèi)核的安全漏洞大規(guī)模重啟了物理機(jī)榨汤,多數(shù) AWS 用戶受影響。虛擬化層和宿主機(jī)內(nèi)核的 BUG 也會(huì)同樣造成宕機(jī)及重啟怎茫。
那為什么還說云主機(jī)故障率可以低于物理機(jī)呢收壕?
備注:這里我是從終端用戶的角度看的,“從廠商購(gòu)買的”物理機(jī)轨蛤,來對(duì)比「從云平臺(tái)購(gòu)買的」云主機(jī)蜜宪。
原因在于:簡(jiǎn)單來說,云平臺(tái)廠商往往管理幾萬幾十萬臺(tái)物理服務(wù)器俱萍,并有比較專業(yè)的基礎(chǔ)運(yùn)維團(tuán)隊(duì)和內(nèi)核團(tuán)隊(duì)端壳,可以在故障率上做大量的工作,以達(dá)成這樣的效果:
- 虛擬化層和宿主機(jī)內(nèi)核的故障率接近 0枪蘑。這兩層是內(nèi)核,通過內(nèi)核優(yōu)化來達(dá)到岖免;
- 服務(wù)器硬件質(zhì)量可以不斷提升岳颇;
- 承載業(yè)務(wù)程序的 Linux 內(nèi)核,云平臺(tái)可以幫助用戶進(jìn)行維護(hù)颅湘。并解決 BUG话侧,修復(fù)安全漏洞等。
有人會(huì)說闯参,我自己購(gòu)買的物理機(jī)也能做上述優(yōu)化瞻鹏,效果比云主機(jī)更好悲立。 真的是這樣的么?現(xiàn)實(shí)情況是:
絕大部分公司管理的服務(wù)器數(shù)量不多新博,不足以建立相應(yīng)的團(tuán)隊(duì)薪夕;同時(shí)因?yàn)榉?wù)器數(shù)量少(比如不到萬臺(tái)),做軟硬件優(yōu)化的環(huán)境不理想赫悄。
下面就上述要點(diǎn)展開原献。
虛擬化層和宿主機(jī)內(nèi)核的故障率如何降低?
這主要通過自主掌控虛擬化層和宿主機(jī)內(nèi)核埂淮,這整套內(nèi)核來實(shí)現(xiàn)姑隅。
1. 自主維護(hù)Linux內(nèi)核
商業(yè) Linux 發(fā)行版(如 RHEL6.X)的內(nèi)核其實(shí)有不少 BUG,因?yàn)閮?nèi)核太龐大倔撞、太復(fù)雜讲仰,BUG 修之不盡而且不斷涌現(xiàn),只要內(nèi)核有人在改動(dòng)痪蝇,更多的 BUG 就還在路上鄙陡。
但我們自己維護(hù)的 Linux 內(nèi)核,我們可以迅速修復(fù)并應(yīng)用進(jìn)實(shí)際環(huán)境霹俺,不像商業(yè) Linux 要等待較長(zhǎng)的發(fā)布周期柔吼。
我們還可以預(yù)先研究別人犯過的錯(cuò)誤,把更新補(bǔ)丁打入現(xiàn)在的內(nèi)核丙唧;還可以屏蔽不必要的特性和改動(dòng)避免 BUG 的引入愈魏。
簡(jiǎn)單講,自主維護(hù)內(nèi)核很靈活想际,最終質(zhì)量不低于商業(yè) Linux 發(fā)行版培漏。國(guó)內(nèi)有海量服務(wù)器的公司如騰訊和阿里都運(yùn)行自主維護(hù)的 Linux 內(nèi)核。
2. 免重啟熱補(bǔ)丁技術(shù)
這是指通過二進(jìn)制指令修改的方式修改 Linux 內(nèi)核達(dá)到修復(fù)的目的胡本。
結(jié)合自主維護(hù) Linux 內(nèi)核牌柄,如果發(fā)現(xiàn)了 BUG 并制作修復(fù)補(bǔ)丁后,可以免重啟應(yīng)用到生產(chǎn)環(huán)境的 Linux 內(nèi)核里侧甫。
這點(diǎn)目前主流 Linux 廠商不提供珊佣。但云平臺(tái)廠商可以自己做。
3. 熱遷移技術(shù)
特殊情況下的熱遷移披粟,可規(guī)避尚未完全定位的內(nèi)核問題咒锻。
這三點(diǎn)的綜合效果,使得某些云廠商守屉,因?yàn)閮?nèi)核原因造成的宕機(jī)低到可以忽略惑艇。幾萬臺(tái)服務(wù)器半年可以減少到一兩次。
可能有些早期用戶應(yīng)該比較有感覺,幾年軟件宕機(jī)不少滨巴,給客戶推送的故障報(bào)告不時(shí)就和內(nèi)核有關(guān)思灌,但經(jīng)過一年半載的工作后,現(xiàn)在幾乎沒有了恭取。
服務(wù)器硬件質(zhì)量如何提升泰偿?
服務(wù)器硬件故障率的影響因素有廠商品牌、機(jī)型秽荤、服務(wù)器運(yùn)行時(shí)間甜奄、以及部件型號(hào)的故障率。
這里的工作需要海量服務(wù)器來做窃款,比如上萬臺(tái)才有意義课兄,而幾百上千臺(tái)意義不大。
這里有一張圖晨继,體現(xiàn)我們可以主動(dòng)采取部分措施烟阐。
1. 服務(wù)器故障率和廠商機(jī)型關(guān)系密切
我們可以監(jiān)控各廠商機(jī)型的故障率蜒茄,主動(dòng)下架比較差的,從而提升總體質(zhì)量餐屎。
一般來說檀葛,小廠的服務(wù)器故障率會(huì)高一些,但大廠即使 DELL腹缩、聯(lián)想的個(gè)別機(jī)型也會(huì)有較高故障率屿聋。
這主要和機(jī)型設(shè)計(jì)和生產(chǎn)質(zhì)量管控有關(guān),就不闡述了藏鹊。我們能做的是選擇故障率低的廠商和機(jī)型润讥。
2. 服務(wù)器運(yùn)行時(shí)間久了,故障率會(huì)隨之提升
對(duì)于云平臺(tái)廠商盘寡,可以監(jiān)控這一切故障發(fā)生前的征兆楚殿,并主動(dòng)采取措施,通過熱遷移手段避免云主機(jī)受影響竿痰。
3. 硬件宕機(jī)和部件缺陷關(guān)系很大
我們的統(tǒng)計(jì)發(fā)現(xiàn)脆粥,部件種類里,硬盤故障故障率最高影涉,其次內(nèi)存硬件冠绢、RAID 卡等。
對(duì)于硬盤故障常潮,可以通過 RAID 方式規(guī)避。對(duì)于內(nèi)存硬件楷力,可以通過內(nèi)存故障隔離等內(nèi)核手段喊式,大幅度減少其硬件故障造成的宕機(jī)及影響孵户。
總的來講,通過上述這些工作岔留,云平臺(tái)廠商可以讓服務(wù)器硬件故障率逐步降低夏哭。其實(shí),可以做的更多献联,篇幅原因就不講了竖配。而這樣的工作,對(duì)于沒有海量環(huán)境的公司是很難做的里逆,效果也不佳进胯。
另外,云平臺(tái)廠商可以替用戶修復(fù)云主機(jī)內(nèi)核的 BUG 和安全漏洞原押,降低內(nèi)核故障率胁镐。
我們?cè)谶@方面做了一些工作,內(nèi)核版本會(huì)及時(shí)更新诸衔,關(guān)鍵漏洞會(huì)提供免重啟熱補(bǔ)丁修復(fù)包盯漂。
觀點(diǎn)總結(jié)
簡(jiǎn)要總結(jié)一下本文的主要觀點(diǎn):
云主機(jī)相比物理機(jī),虛擬化層和宿主機(jī)內(nèi)核的額外復(fù)雜性及故障率可以被優(yōu)化至接近 0 即可以忽略笨农。
服務(wù)器硬件故障就缆,云平臺(tái)可以不斷降低其故障率,主要手段通過內(nèi)核隔離硬件故障谒亦、熱遷移規(guī)避故障隱患竭宰,以及監(jiān)控故障率并主動(dòng)下架不良廠商機(jī)型等。
上述這些工作都需要非常專業(yè)的運(yùn)維團(tuán)隊(duì)和內(nèi)核團(tuán)隊(duì)才能實(shí)施,如果沒有足夠大的服務(wù)器數(shù)量是很難開展的脾还。
而大型云廠商往往管理幾萬伴箩、幾十萬服務(wù)器,因此具備這樣的條件鄙漏。也因此嗤谚,云主機(jī)故障率能低于物理機(jī)(當(dāng)然,如果什么都不做怔蚌,云主機(jī)故障率一定是高于物理機(jī)的)巩步。
OneAPM 提供前所未有的 Servers 監(jiān)控體驗(yàn),面向所有人的性能監(jiān)控桦踊,并承諾永久免費(fèi)椅野。而且能夠細(xì)分到單個(gè)進(jìn)程的資源消耗,統(tǒng)計(jì)性能消耗熱點(diǎn)。趕快注冊(cè)體驗(yàn)一下吧竟闪!