《資料中心設計與運營實戰》——第1章介紹1.1倉儲式資料中心

非同步社群發表於2017-05-02

本節書摘來自非同步社群《資料中心設計與運營實戰》一書中的第1章,第1.1節,作者: 【美】Luiz André Barroso , 【美】Jimmy Clidaras , 【瑞士】Urs Hölzle 更多章節內容可以訪問雲棲社群“非同步社群”公眾號檢視。

第1章 介紹

ARPANET問世已經超過40年了,World Wide Web最近剛剛慶祝完其走過了20週年。被這兩個有傑出意義的里程碑所引領的網際網路技術繼續改變著各行各業和現今人們的生活習慣,時至今日依然勢頭不減。諸如網頁郵箱、搜尋、社交網路等流行網際網路服務的出現,加之高速網際網路絡在世界各地的普及,使網際網路服務日漸呈現出向伺服器端以及雲端轉移的趨勢。

越來越多的計算和儲存需求開始從類PC客戶端向更小、更適合移動裝置,並結合了大型網際網路服務的方向遷移。早期的網際網路服務大多是用來提供資訊,而今許多Web應用提供了以前客戶端承載的服務,例如電子郵件、照片、視訊儲存和辦公應用。驅動這種計算向伺服器端轉移的不僅是提升使用者體驗的需求,諸如無需配置或備份的便捷管理和無縫接入,軟體供應商自身可以從中受益也是一個重要的驅動力。軟體即服務允許更快的應用開發節奏,因為它使得供應商可以更快捷地改變和提升軟體。供應商無需維護擁有特定硬體和軟體配置的數以百萬計的客戶端,他們只需在自己的資料中心裡就可以完成協同改進和修復,並且能夠讓他們的硬體以最佳配置部署。

此外,資料中心的經濟性使許多應用服務降低了單使用者成本。例如,伺服器可能會為成千上萬的活躍使用者和更多不活躍使用者提供服務共享。同樣的,計算自身也可以通過共享服務來降低成本,例如,對於一個收件人為多個使用者的電子郵件附件,僅需儲存一次,而不是多次。最後,放置在資料中心的伺服器和儲存裝置比同等規模的桌上型電腦或膝上型電腦更容易管理,因為它們由單一組織進行管理。

有些工作負載需要強大的計算能力,大規模計算叢集顯然比客戶端計算更適合用於這種情況。搜尋服務(網頁、圖片等)是此類工作負載的最好案例。但是對於諸如語言翻譯類應用而言,大規模叢集計算依然更有效率,因為翻譯依賴於對大規模語言模型的分析。

計算向伺服器端轉移的趨勢和網際網路服務的爆炸式流行創造了一類新的計算系統,我們將其命名為倉儲式資料中心,即WSC(Warehouse- Scale Computer)。這樣命名是為了突出這些機器最顯著的特點:擁有適應大規模基礎架構的軟體、資料倉儲和硬體平臺。這種系統使人們對計算技術沿襲多年的“單一程式執行在單一機器上”的這一認知成為歷史。在WSC中,程式被定義為一個可能包括由數十個甚至更多獨立程式互動實現的複雜使用者服務,諸如電子郵件、搜尋和地圖。這些獨立程式可能由不同的甚至跨越組織、地域和公司的工程師團隊部署和維護,例如Mashups(利用外部資料來源檢索到的內容來建立全新的服務的工具)。

執行大規模服務所需的計算平臺已經不再是十多年前的那種一個比薩餅盒大小的伺服器或者冰箱大小的高階多處理器系統了。這樣一個平臺的硬體由成千上萬的獨立計算節點,和與之對應的網路和儲存子系統、配電、空調裝置和巨大的冷卻系統組成。這些系統所在的建築也已經成為系統的一部分,和一個大型倉庫沒有什麼區別。

1.1 倉儲式資料中心

這些系統的顯著特點在於規模,我們可以簡單地稱之為資料中心。資料中心是部署了許多伺服器和通訊裝置的專用建築物,因為這些伺服器和通訊裝置具有相同的環境和物理安全要求,並且需要易於維護。從這個意義上講,WSC是資料中心的一種型別。然而,傳統資料中心通常在主機上大量執行著相對小型或中型的應用,每一個程式執行在一個專用的硬體基礎設施上且高度耦合,並且在相同基礎設施中進行隔離保護。這些資料中心為不同組織和公司提供硬體和軟體服務,存在於這種資料中心裡的不同計算系統在硬體、軟體,或維護上幾乎沒有相同之處,而且彼此之間趨向於沒有通訊。

為諸如Google、Amazon、Facebook和Microsoft的線上服務部門提供服務的WSC資料中心,明顯區別於傳統資料中心:它們屬於一個組織,使用互相相容的硬體和系統軟體平臺,共享一個系統管理層。通常,相比採用第三方軟體執行的傳統資料中心,大多數應用、中介軟體和系統軟體都是組織內部編寫的。更重要的是,WSC執行著數量少但規模大的應用(或者網際網路服務),且通用的資源管理基礎架構帶來了巨大的部署靈活性1。同質性的要求,單一組織控制和對成本有效性的增長的關注都激勵著設計師們採取新的方法來建設和運營這些系統。

網際網路服務必須做到高可用,典型目標是至少99.99%的正常執行時間(大約每年有一小時停機時間)。實現在大量軟硬體和系統軟體上無故障執行是相當困難的,而引入大量伺服器將使其變得更加困難,雖然理論上在10000臺伺服器的集合中防止硬體故障是可能的,但成本極高。因此,WSC必須被設計成能夠進行大量元件容錯,使之極少甚至不影響服務級別的效能和可用性。


相關文章