微信分享 | 大規模資料中心自動化運維實踐
大規模資料中心的運維實踐
大家好,我是青雲QingCloud 運維工程師朱峻華,在海關某單位任職數年,後又混跡多家外企,曾在IBM/EMC出現。
剛才粗略看了一下群成員,有我好幾個曾經的同事,還有不少服務過的客戶,群裡專家多多,今天有點班門弄斧了。
我們今天分享的主題是“大型資料中心的運維實踐”,算是我對自己多年工作經驗的一點總結、回顧,大家一起交流,限於本人能力、精力有限,有不對的地方歡迎指正。
今天交流的內容包括:
- 資料中心的定義
- 資料中心的發展演進
- 資料中心的等級劃分
- 運維的定義
- 資料中心的運維
資料中心的定義
對於資料中心,維基百科有如下的描述:資料中心(Data Center)或稱為伺服器場(Server Farm),指用於安置計算機系統及相關部件的設施,例如電信和儲存系統。一般它包含冗餘和備用電源,冗餘資料通訊連線,環境控制(例如空調、滅火器)和各種安全裝置。
我對資料中心做了一個簡單的總結,現代資料中心一般都是一個園區,包含了若干個樓,樓裡包含了若干個房間,被稱為模組,這是基礎;在這之上架構了複雜的網路;網路之上部署了各種硬體裝置,包括伺服器及網路裝置;在各種裝置上執行著各種軟體;最終對外提供服務。
上面的簡簡單單的一段話,其實涵蓋的技術方方面面,資料中心是現代IT系統的基石,相信以後也是整個社會正常運轉的基石。
資料中心的發展演進
現在的資料中心通常是指一棟樓,或者是一個園區,包含很多個機房。但是早期的資料中心只有一個機房,而且機房裡面只有一臺機器,因為早期的計算機元件過於龐大,而且電纜眾多。
這張圖是世界上第一臺電腦ENIAC,1946年2月14日誕生於美國賓夕法尼亞大學。在當時這就是一臺電腦,一個機房,也是一個資料中心的雛形。據說ENIAC每次一開機,整個費城西區的電燈都為之黯然。
在20世紀80年代,計算機開始蓬勃發展,IT系統及其操作開始變得複雜,一些大公司開始認識到需要有意識的規劃和管理IT資源。隨著客戶端/伺服器的IT模式出現,20世紀90年代伺服器開始在機房間中尋找他們的位置,透過網路電纜將伺服器和網路裝置進行組網,使得在公司內的一個房間中,使用分層設計來放置伺服器及網路裝置成為可能。
1996年8月北京電報大樓主機託管機房投入使用,是國內最早的IDC業務。
下面給大家展示幾幅圖片:
21世紀初的資料中心是如上圖展示的這樣的,當時更多的是被稱做機房,一個大樓裡面,很多個大房間,統一散熱,效率低下;不同客戶的伺服器放在同一個機房裡,沒有機櫃、沒有鎖、沒有隔離,安全等級低。
再後來出現瞭如上圖的機房設計,也是目前很多機房的現狀。會有抬高層,下面走電纜和網線、還有散熱冷風系統,在兩排機櫃中間會有出風口,地板上的眼就是便於出風,然後伺服器吸進冷風,從後面排除,達到散熱的效果;可以看到圖片中遠處是有門的,可以達到一定的封閉效果,提高散熱效率,但是機櫃頂部並沒有封閉;另外,上面圖中的機櫃沒有門及機櫃鎖,安全會稍差一些。
還有上兩圖的這種設計,機房有抬高層,散熱系統在下面;每個機櫃都是封閉的,有自己的門和鎖,安全性高;機櫃的冷風透過通道直接進入機櫃中,而且可以單獨開關(如上圖紅線標示處),不僅節能而且散熱效果好,但是上半部分裝置的散熱效果可能會差一些。
現在新的機房很多采用微模組化設計,這種設計降低了對機房本身的要求,不需要抬高層,封閉的散熱系統,規範化的走線槽,將節能、美觀、高效有機的結合起來。
資料中心的等級劃分
目前比較流行的資料中心等級劃分是根據美國ANSI&TIA-942資料中心通訊網路基礎設施標準設定的,分為如下4個等級:
- 等級 Tier I ――基本資料中心
- 等級 Tier II ――基礎設施部件冗餘
- 等級 Tier III ――基礎設施同時可維修
- 等級 Tier IV ――基礎設施故障容錯
其中 Tier IV等級最高,不管是國內還是國外,這種等級的資料中心都不多,目前國內大部分資料中心都是 Tier III 的。不同等級的具體區分,我們們在這裡不贅述,有興趣的朋友可以上網查一下。
運維的定義
運維的定義,我在維基百科並沒有找到,不知道這個是太容易理解了,還是太難於定義了。
我不敢妄加定義運維,只是說說我自己的理解。我曾經認為,運維更多的算是產品或者一個系統交付生產後,到這個產品/系統的生命週期結束前這段時間所做的工作。但是現在IT行業發展的趨勢及DevOps的流行,對運維人員的要求越來越高,需要更早的參與到整個生命週期裡去。
以資料中心的運維舉例,運維人員可能需要從資料中心選型就參與進來,包括選址,選擇網路提供商,考察資料中心各種設施及服務等,而不是說等這些定了之後,上了生產才開始運維。
另外,我需要明確一點,今天我們談到資料中心的運維,並不是簡單的從資料中心提供商角度出發,還包括資料中心使用者的角度。青雲QingCloud目前使用了多家資料中心的服務,我們也在考察、建立自己的資料中心。
資料中心的運維
現在正式進入今天的主題——資料中心的運維。
資料中心的”風火水電“
說到資料中心的運維,經常會提到“風火水電”。
-
風,通常指空調製冷及通風過濾系統。乾淨的空氣能延長裝置的壽命,減少故障率。不考慮報廢時間,同樣的機器在北京執行和在芬蘭執行,壽命和故障率都會有很大差異。
-
火,一般指消防。這個是常常被人忽略的一部分,但也經常是最致命的一部分,一旦發生火災,可能整個地方都需要停電,且短時間內難以恢復。
-
水,通常是溼度及防潮。溼度過高,可能會影響裝置壽命;太過乾燥又會導致靜電,有可能損壞裝置。
-
電,機房電力。電力被認為傳統資料中心的重中之重,沒有電力,資料中心就是空殼,而且資料中心的電力需要保證穩定,且是多路備份。
上面提到了“風火水電”,實還應該再加上一個“網”,資料中心必須保證有高效的網路,,離骨幹網應該儘量的近,而且需要能提供BGP線路服務,這也是很多客戶選擇資料中心的一個重要評判標準。
資料中心的選擇
資料中心的選擇標準可以歸類到下面三點:位置,主要標準和次要標準。我們提到的標準是站在不同角色進行考慮,包括資料中心建造者與使用者。
-
位置,包括資料中心所在的城市及區域,這將直接影響到預算,至少要避免受到天津大爆炸那類事故的影響;還會影響到你是否能招到合適的員工;需要考慮出現故障時的響應速度等。
-
主要標準,包括是否有足夠的空間滿足未來的發展;穩定且廉價的電力保障;是否有能用環保手段做到廉價的散熱系統,比如選擇北方,一年四季大部分時間採用自然冷風進行散熱;還需要有高效的網路連通性。
-
次要標準,包括基礎設施,如照明、管道工程等;還包括資料中心園區的安全隔離設施,圍牆、門、窗,裝置卸貨區等;推車、剷車等裝置;是否有裝置預裝室;是否有監控、控制中心;其他雜項,包括安全監控攝像頭、門禁卡、防尾隨門等;
生產運維
傳統資料中心在投入生產之後,高等級機房會安排 7&24 人工巡檢。客戶購買的機櫃及其機櫃裡的裝置,需要自己安排人員巡檢,我曾經工作過的一家公司就有三班倒的監控人員,7*24小時待命,每個小時需要去機房巡檢一次,看各個裝置是否有報警。
青雲QingCloud正在考慮建立自己的資料中心,因此考慮運維的時候會更加全面,除了傳統資料中心的樓宇及基礎設施的運維,還包括各種物理裝置,如伺服器、網路裝置等,各種作業系統及軟體,還有我們自己研發的SDN,每一項細化都可以作為一個專題來討論。
我們簡單瞭解一下資料中心基礎設施運維可能涉及的範圍,包括:
- 安防系統,園區樓宇的安全防護,門禁系統,監控系統等;
- 消防系統,煙霧探測器,滅火設施等;
- 環境檢測,如溫度及溼度等;
- 供電設施,包括配電裝置,發電機、UPS、機櫃PDU等;
- 散熱系統,包括空調裝置,新風及冷水機組等;
- 其他雜項,如佈線,包括電纜及網路線纜;機房內部環境,是否有易燃易爆物體,需要及時清理。
站在一個資料中心使用者的角度,我們希望資料中心能提供更高效的服務,如:
- 高效的入館申請系統,包括人員和裝置;
- 高效的卸貨渠道及方便的預裝室;
- 在認證透過的情況下,可以自由高效的進出機房,操作屬於自己的裝置;
- 資料中心的服務人員能高效的提供客戶所需的資料及服務,比如機櫃用電量等;
- 提供更多人性化及專業化的服務;
下面我們來討論一下使用者對於自己裝置及服務的運維。
伺服器及網路裝置的選型,是選用大品牌的DELL/IBM伺服器呢,還是選擇更節省成本的定製機?
QingCloud 選擇了後者,在雲端計算時代,我們假設伺服器等物理裝置本身就是不可靠的,需要靠上層的軟體來實現可靠。
作業系統選型,選擇Linux還是Windows ?
毋庸置疑,QingCloud 的系統肯定是跑在Linux上,但是我們需要考慮如何高效初始化伺服器,快速安裝作業系統,需要考慮檔案系統、核心引數調優、各種硬碟驅動、核心版本、Kernel Panic等原因。應用層涉及的就更多了。
如何高效的初始化系統
如何高效的初始化系統?包括 BIOS 的調優,劃分RAID等工作。
對於Linux系統的安裝有很多高效的方式,最初始的方案是把Linux安裝盤ISO刻成一張光碟進行安裝,現在的伺服器配光碟機那肯定是被忽悠了;後來將ISO做到隨身碟上,這些都是手動安裝。高階一點的可以寫Kickstart/Preseed檔案實現隨身碟的自動安裝,對於少量裝置,這已經足以。
對於大規模的部署,我們目前透過網路自動劃分RAID,安裝作業系統,還可以做到自動進行BIOS調優。
我們的目標是一臺純新的機器,物理連線都準備好的情況下,開機半小時後就可以被用於生產,包括BIOS調優,RAID劃分,作業系統安裝,網路聯通及系統上應用的安裝。作業系統的安裝可以採用網路PXE安裝,開源比較常用的可以採用Cobbler;對於RAID劃分和BIOS調優,這裡我不做過多說明,不同廠家的硬體使用的方法都會不同。
作業系統及網路準備好之後,我們就需要在伺服器上配置特定的應用及服務了。這時候我們可以使用的工具更多,此類工具通常被稱為配置管理工具,常用的有老牌的Cfengine,很多大公司在用的Puppet和Chef,最近比較新的有Saltstack和Ansible等,這些都是很好的工具,但對於工程師來說合適的/熟悉的才是最好的。
自動化運維
上面提到的更偏重於產品生命週期的前半部分。隨著規模的擴大,傳統靠人工定時巡檢,在監控中心盯著大螢幕看有無報警的運維方式都已經落伍,唯一的出路就是自動化。
運維自動化,這個話題是從網際網路繁榮開始一直在談論的話題,資料中心的運維工作變得越來越繁重與複雜,這是因為資料中心一直在持續的發展變化,資料中心承載的應用變得多而複雜,簡單靠人力堆積已經不能高效解決問題,必須引入各種流程及工具進行規範化管理。
自動化運維很重要的一部分就是完善的監控體系,完善的監控體系需要能監控到整個資料中心的方方面面,包括各種物理設施、環境等,這個不是我們今天討論的重點,今天主要討論一下網路、系統等部分的監控。
監控可能包含的方面:
- 攻擊,包括內部和外部,需要能快速的找到源頭並消除威脅;
- 網路和伺服器裝置的各個感測器,包括溫度、電壓及電源冗餘等;
- 網路流量、網路風暴,及網路環路等的監控;
- 伺服器的監控通常可以透過帶外及IPMI獲取到伺服器的物理裝置的狀態,需要監控的包括CPU、記憶體、主機板、電源;
- 伺服器的儲存系統,包括物理磁碟、RAID組、RAID卡電池的狀態、Media Error等資訊;LSI的RAID卡可以透過MegaCli進行檢視,Adaptec的卡可以用Arcconf工具;
- 作業系統裡,我們需要監控的東西更多,包括系統資源(CPU、記憶體、檔案系統空間的Inode使用率,還包括網路流量和系統負載等等);程式及服務的監控;儲存系統監控(吞吐量及IOPS等);系統及應用日誌的監控
有了完善的監控系統,我們還需要實時報警(郵件、IM、簡訊)功能,不能漏報,也不能太多誤報,否則狼來了多次後,就沒人會重視報警資訊,反而無用。
目前,開源使用比較多的監控軟體有Nagios、Cacti、Ganglia、Zabbix、Zenoss Core、SmokePing,每個軟體有自己的擅長之處,大家可以使用多個軟體組合成自己完善的監控體系。
有了監控,有了報警,我們還需要資源使用的統計報告(日報、月報、波峰、波谷),這將是我們系統擴容的依據。
裝置退役
下面我們聊聊裝置的退役,伺服器或者網路裝置執行一段時間後,故障率就會大幅的升高,我們需要考慮是不是要將其退役。
首先我們需要設定一個裝置的報廢期限,及報廢后怎麼處理;需要考慮在什麼情況下延保,計算出最佳時間點,儘量榨乾裝置的價值。
一個小的細節,QingCloud考慮到使用者資料的安全性,我們的硬碟買了特定服務(不歸還的),損壞的硬碟跟廠家報修更換後,我們會集中銷燬換下來的硬碟。
最後
在結束分享前,我們再來看看目前資料中心相關的一些新動向。
群裡很多人應該聽過流動資料中心或移動資料中心、模組化資料中心、微模組化資料中心、海上資料中心、洞穴式資料中心等。它們的好處是顯而易見的,比如洞穴式資料中心,可以抵禦爆炸或自然災難性事件,還能夠節省製冷能耗,不受高功率微波和電磁脈衝武器的攻擊等。
網路方面,100G乙太網不久將會在資料中心領域強勢增長,當然這會有個過程,可能25G和50G的網路會優先發展,25Gbps和50Gbps每通道技術將是未來100Gbps(4個25G) 和400G(8個50G)乙太網的基礎,因此業界普遍認為25G網路會很快替代現有的10G網路。
今天的分享差不多就到此為止了,做一個簡單的總結。
資料中心的運維既宏觀又細節,大到樓宇的設計建造及選址,避免被天津大爆炸這樣的事件波及;小到需要注意伺服器內線纜擺放位置及方向,防止伺服器由於自身的輕微震動導致線纜鬆動,從而引起系統的頻繁Kernel Panic。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26916835/viewspace-2064944/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- vivo大規模Kubernetes叢集自動化運維實踐運維
- vivo大規模 Kubernetes 叢集自動化運維實踐運維
- 陝重汽:大規模資料庫如何實現自動化運維?資料庫運維
- 深度 | 螞蟻金服自動化運維大規模 Kubernetes 叢集的實踐之路運維
- 微眾銀行 TiDB HTAP 和自動化運維實踐TiDB運維
- 自動化運維工具ansible的實踐運維
- 新基建 破局大規模資料中心智慧化監控運維管理運維
- ansible自動化運維資料庫運維資料庫
- 運營商大規模資料叢集治理的實踐指南
- PB 級大規模 Elasticsearch 叢集運維與調優實踐Elasticsearch運維
- 阿里超大規模 Flink 叢集運維實踐阿里運維
- 大資料總結微信自媒體運營大資料
- Python自動化運維之IPy模組Python運維
- 自動化運維工具之Puppet模組運維
- 運維效率之資料遷移自動化運維
- IT運維之自動化運維運維
- 自動化運維,國產化信創替代方案運維
- 自動化運維專案前期規劃五大難點運維
- 搬運:python基於pywinauto實現PC端自動化 python操作微信自動化Python
- [Linux]Ansible自動化運維② - 工具與模組Linux運維
- Serverless 在大規模資料處理的實踐Server
- 微信基於PyTorch的大規模推薦系統訓練實踐PyTorch
- Python自動化運維之psutil系統效能資訊模組Python運維
- Devops-運維效率之資料遷移自動化dev運維
- 活動運營自動化平臺實踐
- 介面自動化測試工程實踐分享
- 2023年大資料場景智慧運維實踐總結大資料運維
- Ansible自動化運維工具運維
- 沙龍報名 | 京東雲DevOps——自動化運維技術實踐dev運維
- 技術沙龍|京東雲DevOps自動化運維技術實踐dev運維
- 從0到1,滴滴DB自動化運維是這樣實踐的運維
- 資料庫智慧運維探索與實踐資料庫運維
- 阿里雲釋出ECS自動化運維套件,幫助企業實現自動化運維轉型阿里運維套件
- 資料庫運維 | 攜程分散式圖資料庫NebulaGraph運維治理實踐資料庫運維分散式
- pkg版本規範管理自動化最佳實踐
- 阿里海量大資料平臺的運維智慧化實踐阿里大資料運維
- 利用Python實現微信半自動化操作!Python
- 什麼是自動化運維?為什麼選擇Python做自動化運維?運維Python
- 高效前端專案自動化構建部署實踐——使用webhook鉤子運維前端WebHook運維