10K 問題的解決:一個系統管理員如何管理 2000x 臺服務器

請輸入圖片描述

什麼是 10K 問題?

在 1999 年,Dan Kegel 向網絡服務器提出了一個駭人聽聞的難題:html

是時候讓網絡服務器去同時應對 10000 個客戶端了,你以爲呢?畢竟網絡已經變得很普及了。sql

這就是著名的 C10K 問題。 經過改善操做系統內核和從像 Apache 那樣的線程服務器遷移到像 Nginx, Node 這樣的事件驅動服務器,工程師們解決了這個 C10K 問題。編程

但如今咱們面臨着一個更大的挑戰,若是同時應對一千萬個鏈接呢?要解決這個難題,須要些更變革的技術。segmentfault

在數據中心,服務器管理員們並不須要面對這樣的挑戰,但根據來自紅帽(Red Hat)的 Dave Neary 在最近在 FLOSS Weekly 節目中所說,咱們已經跨過了單個系統管理員管理過萬臺服務器的壁壘。服務器

咱們應該忽略這個里程碑事件嗎?

絕對不是。這樣 200x-2000x 的增加是一個了不得的成就。Dave 回憶說,在九十年代,一個管理員只能管理四五臺微軟的服務器,一個 Linux 的系統管理員也只能管理 50 到 60 臺的服務器。網絡

如今,公司們已經開始用單個系統管理員管理超過 10,000 臺的服務器了,這個巨大的改變深入影響了兩樣事情:1)IaaS,把數據中心改爲彈性的可編程的資源,把操做從基礎設施中分離;2)開發操做革命,它強調工具、文化、自動化、度量、資源共享和基礎設施的編碼;nosql

那麼須要怎樣才能夠令一個系統管理員就能夠管理一千萬臺服務器呢?

誰會知道?固然是谷歌公司了。
James Hamilon說,計算服務器的數量是困難的,微軟說,他們有一百萬臺服務器,而後,谷歌的服務器預計會達到一千萬臺,因此咱們離單個系統管理員管理千萬臺服務器的日子還有些遠;工具

可是,當這種狀況發生時,下面所列就是這些系統的基礎:
this

  1. 把數據中心當成單獨一臺計算機那樣對待
  2. 而後,在數據中心內部,在計算機羣上部署可複用的多維度多重做業,以便提升機器利用率和節約金錢
  3. 但這僅僅是一個數據中心,這並非把你從 十 帶到 百萬 臺服務器。對於千萬臺的服務器,你必須利用好這些數據中心,因此,你要建一個 Spanner 那樣的能夠管理百萬臺機器、幾百個數據中心和數萬億個數據項的系統;
  4. 固然,你還須要建造一個巨型網絡系統,把這些數據中心鏈接在一塊兒;
  5. 最後,當你真的面臨一個系統管理員管理千萬臺的服務器,你極可能須要付出巨大的精力去作深刻的挖掘,使得以前的工做變得有意義。

在高層面來講,單個服務器同時應對千萬個鏈接和單個系統管理員同時管理千萬臺機器是同樣的:可擴展性就是一切。google

但在低層面,他們是徹底不同的。處理千萬個鏈接是關於扁平化處理數據,減小層面,單獨本身的事情;而管理千萬臺服務器是關於把智能灌輸到更加智慧的層面;這就很像人類身體內部萬億個個體經過本身的小系統共同協做,而後被平衡化和去中心化的大腦所處理。

原文:We Finally Cracked The 10K Problem - This Time For Managing Servers With 2000x Servers Managed Per Sysadmin

翻譯:SegmentFault

相關文章
相關標籤/搜索