2007/10/30 謝裕偉 研發顧問工程師 IBM 台灣系統與科技研發中心(IBM TSTL) 酷炫研發與應用動向 節能計算與虛擬化 2007/10/30 謝裕偉 研發顧問工程師 IBM 台灣系統與科技研發中心(IBM TSTL)
摘要 根據IDC的分析報告,電算中心每投資一元於電腦硬體便需花費0.5元於能源開銷,而且此能源開銷的比重將在四年內達到0.71元。在高昂能源成本的時代及日益暖化的全球氣候下,IT產業已然面臨能源危機,因此需要思考如何提高能源效率。[1] 本演講將介紹計算系統中硬體與應用程式對功耗的影響,並介紹IBM用以對抗IT產業能源危機所提出的計畫及新技術。
議程 節能計算 計算系統硬體的演進 計算系統中硬體與應用程式對功耗的影響 虛擬化計算 虛擬化計算的起源 虛擬化計算的技術分類 IBM 的「綠色工程計畫(Project Big Green)」 結論
節能計算 節能計算的目的是使計算機的使用更有效率 計算系統硬體的演進[2] 古代巴比倫,阿拉伯,中國,日本等地的算盤 1623, Wilhelm Schickhard (Germany) – 加法器 1642, Blaise Pascal (France) –加法器 1671, Gottfried Leibniz (Germany) – 通用計算器 (+, -, x, /) … 1823, Charles Babbage (England) - 差分引擎
節能計算:計算系統硬體的演進 1937, Howard Aiken (USA) with IBM - Harvard Mark I (electromechanical machine) 第一台可連續工作的電機式計算機 15x2.4 m 1943-46, ENIAC, by J.Mauchly, J. Presper Eckert and Herman Heine Goldstine 第一台可連續工作的數位計算機 18,000 真空管,十進制組合邏輯式 只有資料儲存在機器裡面,程式並不在裡面 5,000 ops/sec (333 乘法) 30 噸重,10x13 m John Von Neumann 對其結構不以為然 1951, UNIVAC I, by Eckert and Mauchly 真空管 Memory access time 0.5 ms. 124.5 kW average
節能計算:計算系統硬體的演進 1952, John Von Neumann's IAS bit-parallel machine 1953, IBM 650 – 第一台量產型計算機 1968, Cray CDC7600 supercomputer achieves 40 MFLOPS 1985, Cray 2 and Thinking Machines' parallel-processor Connection Machine, 1 billion ops/second (1G ops)
節能計算:計算系統硬體與功耗的關係 計算系統硬體與功耗的關係 假設:不工作的硬體不消耗功率,則計算系統硬體的功耗可由下式表示: Total power consumption ~= Sumi,j ( Prob( App-i) x Pwr(Comp-j | App-i) ) 但實際上,大部分計算系統中不工作的硬體仍然消耗可觀的功率,解決之道有幾種: 儘量讓電腦處於高使用率,例如 OS Virtualization 電腦處於低使用率時,關閉不用的元件,例如 PowerExecutive
虛擬化計算 虛擬化計算的起源 計算的起源來自虛擬化與抽象化 人類最先發明的符號或文字已經包含了數字: 結繩記事(紀錄交易) 楔形文字(紀錄商業交易) 中文數字(象形文字) 人類的語言與符號 自然語言的形成 (4000-2000 B.C.),兩河流域
虛擬化計算:虛擬化計算的起源 數字系統與邏輯系統的建立 1854, George Boole (England) - binary logic 1945, John von Neumann - stored program 1948, Claude Shannon – “A Mathematical Theory of Communication“ 消息理論 1957, John Backus (IBM) -- FORTRAN compiler 1969, ARPANET, Communication between Computers 1971, FTP (File Transfer Protocol), To send data over the nets 1973, Alan Kay (Apple) - icons, graphics and a mouse 圖形作業系統 1990, Berners-Lee – URL, HTML, HTTP(WWW) 作業系統,多人與多工,...
虛擬化計算:虛擬化與計算資源 [3] 1971 Intel 4004 (4 bit) 2.3k 0.74MHz 0.06 MIPS 1972 虛擬化計算:虛擬化與計算資源 [3] 1971 Intel 4004 (4 bit) 2.3k 0.74MHz 0.06 MIPS 1972 8008 (8 bit) 3.5k 0.50MHz 1974 8080 2.00MHz 0.64 MIPS 1978 8086 (16 bit) 29k 8.00MHz 0.66 MIPS 1982 80286 134k 1.50 MIPS 1989 80486DX (32 bit) 1.2M 33.0MHz 27.0 MIPS 2004 Pentium 4F (64bit, Prescott) 125M 533MHz system, 3.2~3.6 GHz core 7500 ~ 11000 MIPS 2005 IBM CE/BE 241M 3.20 GHz core 220 GFLOPS
The IBM Cell BE Concept [4] Compatibility with 64b Power Architecture™ Increased efficiency and performance Attacks on the “Power Wall” Non Homogenous Coherent Multiprocessor: PPE and SPE High design frequency @ a low operating voltage with advanced power management Attacks on the “Memory Wall” Streaming DMA architecture 3-level Memory Model: Main Storage, Local Storage, Register Files Attacks on the “Frequency Wall” Highly optimized implementation Large shared register files and software controlled branching to allow deeper pipelines Interface between user and networked world Multi-OS support, including RTOS / non-RTOS
IBM Cell System Features Heterogeneous multi-core system Power Processor Element for control tasks Synergistic Processor Elements for dataintensive Processing Element (SPE) consists of Synergistic ProcessorUnit (SPU) Synergistic Memory Flow Control (MFC)Synergistic
IBM Cell Synergy Cell is not a collection of different processors, but a synergistic whole – Operation paradigms, data formats and semantics consistent – Share address translation and memory protection model PPE for operating systems and program control SPE optimized for efficient data processing – SPEs share Cell system functions provided by Power Architecture – MFC implements interface to memory • Copy in/copy out to local storage PowerPC provides system functions – Virtualization – Address translation and protection – External exception handling EIB integrates system as data transport hub
IBM Cell Simulator Environment
IBM Cell BE Workloads / Demos
Cell Broadband Engine Architecture™ Technology Competitive Roadmap
Cell Resource Cell resource center at developerWorks – http://www-128.ibm.com/developerworks/power/cell/ Cell developer's corner at power.org – http://www.power.org/resources/devcorner/cellcorner/ The cell project at IBM Research – http://www.research.ibm.com/cell/ The Cell BE at IBM alphaWorks – http://www.alphaworks.ibm.com/topics/cell Cell BE at IBM Engineering & Technical Services – http://www-03.ibm.com/technology/ IBM Power Architecture – http://www-03.ibm.com/chips/power/ Cell BE documentation at IBM Microelectronics – http://www- 306.ibm.com/chips/techlib/techlib.nsf/products/Cell_Broadband_EngineCell Linux info at the Barcelona Supercomputing Center website – http://www.bsc.es/projects/deepcomputing/linuxoncell/
虛擬化計算的技術分類:CPU及系統硬體的虛擬化 [5] CPU及系統硬體的虛擬化:以Intel VT-x (CPU) 及 VT-d (I/O) 為例 VT-x x86架構為了保護指令的運行,提供了指令的4個不同Privilege特權級別,術語稱為Ring,從Ring 0~Ring 3。Ring 0的優先級最高,Ring 3最低。各個級別對可以運行的指令有所限制,例如,GDT,IDT,LDT,TSS等這些指令就只能運行于Privilege 0,也就是Ring 0。
CPU及系統硬體的虛擬化:Intel VT-x 作業系統必須要運行一些Privilege 0的特權指令,因此Ring 0是被用於運行作業系統內核,Ring 1和Ring 2是用於作業系統服務,Ring 3則是用於應用程式。然而實際上並沒有必要用完4個不同的等級,一般的作業系統實現都僅僅使用了兩個等級,即Ring 0和Ring 3,如圖所示:
CPU及系統硬體的虛擬化:Intel VT-x 也就是說,在一個常規的x86作業系統中,系統內核必須運行于Ring 0,而VMM軟體以及其管理下的Guest OS卻不能運行于Ring 0——因為那樣就無法對所有虛擬機進行有效的管理。在沒有處理器輔助的虛擬化情況下,挑戰就是採用Ring 0之外的等級來運行VMM (Virtual Machine Monitor,虛擬機監視器)或Hypervisor,以及Guest OS。 現在流行的解決方法是Ring Deprivileging(暫時譯為特權等級下降),並具有兩種選擇:客戶OS運行于Privilege 1(0/1/3模型),或者Privilege 3(0/3/3模型)。 無論是哪一種模型,客戶OS都無法運行于Privilege 0,這樣,如GDT,IDT,LDT,TSS這些特權指令就必須通過模擬的方式來運行,這會帶來很明顯的性能問題。特別是在負荷沉重、這些指令被大量執行的時候。
CPU及系統硬體的虛擬化:Intel VT-x 對於虛擬化而言,使用Paging模式的一個致命之處是它不區分Privileg 0/1/2模式,因此客戶機運行于Privileg 3就成為了必然(0/3/3模型),這樣Paging模式才可以將主機OS和客戶OS隔離開來,然而在同一個Privileg模式下的不同應用程式(如,不同的虛擬機)是無法受到Privileg機構保護的,這就是目前IA32帶來的隔離性問題,這個問題被稱為Ring Compression。 這個問題的實際表現是:VMware在不支援Intel VT的IA32架構CPU上無法虛擬64-bit客戶作業系統,因為無法在客戶OS之間安全地隔離。
CPU及系統硬體的虛擬化:Intel VT-x VT-x將IA32的CU操作擴展為兩個forms(表單):VMX root operation(根虛擬化操作)和VMX non-root operation(非根虛擬化操作),VMX root operation設計來供給VMM/Hypervisor使用,其行為跟傳統的IA32並無特別不同,而VMX non-root operation則是另一個處在VMM控制之下的IA32環境。所有的forms都能支援所有的四個Privileges levels,這樣在VMX non-root operation環境下運行的虛擬機就能完全地利用Privilege 0等級。
CPU及系統硬體的虛擬化:Intel VT-x VT同時為VMM和Guest OS提供了所有的Privilege運行等級,而不是只讓它們分別佔據一個等級:因為VMM和Guest OS運行于不同的兩個forms。由此,GDT、IDT、LDT、TSS等這些指令就能正常地運行于虛擬機內部了,而在以往,這些特權指令需要模擬運行。而VMM也能從模擬運行特權指令當中解放出來,這樣既能解決Ring Aliasing問題(軟體運行的實際Ring與設計運行的Ring不相同帶來的問題),又能解決Ring Compression問題,從而大大地提升運行效率。Ring Compression問題的解決,也就解決了64bit客戶作業系統的運行問題。
CPU及系統硬體的虛擬化:Intel VT-d 我們知道對於伺服器而言,很重要的一個組成部分就I/O,CPU的計算能力提升雖然可以更快地處理數據,但是前提是數據能夠順暢的到達CPU,因此,無論是存儲,還是網路,以及圖形卡、記憶體等,I/O能力都是企業級架構的一個重要部分。為此,人們不但在傳輸帶寬上投資(比如從百兆乙太網到千兆乙太網再到萬兆乙太網),還在各種系統和架構上進行了大量的投入(比如吞吐量更高的RAID系列、多層數據中心)。 在虛擬化技術中,隨著整體處理器資源的利用效率的提升,對數據I/O也提出了更高的要求。VMM虛擬機管理器必須提供I/O虛擬化來支援處理來自多個客戶機的I/O請求,當前的虛擬化技術採用下列的方式來處理I/O虛擬化
CPU及系統硬體的虛擬化:Intel VT-d Para- Virtualization Full Virtualization
CPU及系統硬體的虛擬化:Intel VT-d I/O虛擬化的關鍵在於解決I/O設備與虛擬機數據交換的問題,而這部分主要相關的是DMA直接記憶體存取,以及IRQ中斷請求,只要解決好這兩個方面的隔離、保護以及性能問題,就是成功的I/O虛擬化。
CPU及系統硬體的虛擬化:Intel VT-d Intel VT-d技術是一種基於North Bridge北橋晶片(或者按照較新的說法:MCH)的硬體輔助虛擬化技術,通過在北橋中內置提供DMA虛擬化和IRQ虛擬化硬體,實現了新型的I/O虛擬化方式,Intel VT-d能夠在虛擬環境中大大地提升 I/O 的可靠性、靈活性與性能。 傳統的IOMMUs(I/O memory management units,I/O記憶體管理單元)提供了一種集中的方式管理所有的DMA——除了傳統的內部DMA,還包括如AGP GART、TPT、RDMA over TCP/IP等這些特別的DMA,它通過在記憶體地址範圍來區別設備,因此容易實現,卻不容易實現DMA隔離,因此VT-d通過更新設計的IOMMU架構,實現了多個DMA保護區域的存在,最終實現了DMA虛擬化。這個技術也叫做DMA Remapping。 VT-d實現的中斷重映射(interrupt-remapping)架構通過重新定義MSI的格式來解決這個問題,新的MSI仍然是一個DMA寫請求的形式,不過並不嵌入目標記憶體地址,取而代之的是一個消息ID,通過維護一個表結構,硬體可以通過不同的消息ID辨認不同的虛擬機區域。VT-d實現的中斷重映射可以支援所有的I/O源,包括IOAPICs,以及所有的中斷類型,如通常的MSI以及擴展的MSI-X。
CPU及系統硬體的虛擬化:Intel VT-d Virtualization – direct I/O
虛擬化計算的技術分類: OS的虛擬化 OS的虛擬化 IBM於1996年發明了虛擬作業系統[6] 過去10年, VMware 純軟體 VMM 相當成功 過去5年, Xen open-source 開始 paravirtualization 及 full virtualization. (SuSE10.0, RH5.0 已經整合Xen ) KVM (Kernel-based Virtual Machine) is a new Linux subsystem which leverages these virtualization extensions to add a virtual machine monitor (or hypervisor) capability to Linux.目前提供相當於 Xen 的功能 (VT-x)
虛擬化計算的技術分類: OS的虛擬化 OS的虛擬化 典型應用與其重要性 伺服器整併(Server Consolidation) 提高伺服器使用效率 降低IT系統管理的成本 任務隔離(Workload Isolation) 提高安全性 任務管理(Workload Management) 根據任務需求,量身訂製系統資源 任務可輕易在伺服器中移動 系統升級容易 ...
Easily deploy new applications and adjust priorities 虛擬化計算的技術分類: OS的虛擬化 Virtual Environment All resources are virtual – easy to deploy, grow, move, … Virtual resources and their configurations are durable – insulated from physical changes Pre-built virtual resources serve as the units of product distribution and provisioning Easily deploy new applications and adjust priorities Virtual Application Server Easily provision, configure, and manage systems Virtual Application Servers Virtual Storage Virtual Networks Separation of Virtual and Physical Environments Facilitates required changes; Limits the impact of changes Virtualization Physical Environment Fixed sizes, limited ports/slots, incompatible versions, rigid configurations, workloads bound to boxes, … Data Center Operations Make changes transparently, without “change windows” Network Hardware Blades Storage Servers and Storage SMP Servers
Library of virtual server images, virtual disks, … 虛擬化計算的技術分類: OS的虛擬化 Repository Library of virtual server images, virtual disks, … App SLES 10.0 Win 2000 2003 REL 4.0 Virtual servers can be moved from server to server, while active, even across server generations Move for maintenance Balance Workloads End-to-end virtual networks are preserved (LAN and SAN) Virtual servers hold software stacks key investments to be preserved Sever Arch (CPU, I/O) is a durable Virtual Server Property Virtual servers are provisioned from library Service applied once to a shared image will propagate to N clones Snapshots / backups of virtual servers can be created for HA, DR, and archival purposes Pre-built images can be used for software distribution App Win 2000 2003 SLES 9.0 REL 5.0 App SLES 10.0 REL 4.0 Hypervisor New Generation servers will run Previous Generation virtual servers Gen. N will support N-k Pool of physical X86 servers (blades, drawers, frames) Several generations with evolving architecture Same general architecture family (Power, x86, …) Hypervisor integrated with each server
虛擬化計算的技術分類: Application的虛擬化 Simulation Physically based simulation [7] Gaming 3DS [8] Maya Other game engines
IBM 的「綠色工程計畫(Project Big Green)」 [9] 運用以上所介紹的許多觀念及技術,目標是大幅降低電算中心能源耗量的成長以及對環境的衝擊。五階段式「綠色工程計畫」包含: 診斷 IBM 的資料中心節能評估服務(IBM Data Center Energy Efficiency Assessment),以標準化程序衡量資料中心的用電效益,並研擬改善計畫。針對資料中心現有設施中高度用電部分,進行 3D 模擬與散熱分析評估。透過創新的行動測量技術,以 3D 方式模擬資料中心內部的溫度分佈情境,並進行高度運算的熱能分析,找出並且解決可能導致資料中心電源中斷的過熱問題,以作為有效節能與日後擴編的參考。
IBM 的「綠色工程計畫(Project Big Green)」 建置 節能自我評估(Energy Efficiency Self Assessment),讓客戶檢視其資料中心的節能狀況; 可擴充模組化資料中心( IBM Scalable Modular Data Center),為一具備能源效益、預先設定之 500 或 1,000 平方英尺的資料中心解決方案,可在 8 至 12 周內完成建置,且整體費用比建造傳統資料中心減少 15%; IBM 最佳化配線氣流評估(IBM Optimized Airflow Assessment for Cabling),可增加資料中心高架地板下方氣流量並降低配線成本; 專業設備(Specialized Facilities),協助設計與建造能夠整合客戶所有子系統的環保建築,使其在安全、高效率且高度節能的環境下運作
IBM 的「綠色工程計畫(Project Big Green)」 虛擬 使用虛擬化架構及採用專用處理器,減少耗電量,利用大型主機、UNIX、x86 架構或儲存系統,將更多的作業量整合至較少的主機上,同時達成使用率提升與能源耗量降低的成果。企業並可採用特殊目的處理器,以整合離散系統,例如 WebSphere DataPower SOA 設備可解決 XML 效能暨安全問題,而 Cell 寬頻引擎處理器(IBM Cell Broadband Engine),則可針對各式統計與數位應用,提供較傳統處理器更為強大的效能。
IBM 的「綠色工程計畫(Project Big Green)」 管理 善用電源管理軟體,達成有效控管。在不需使用伺服器資源時,服務供應軟體能自動將伺服器轉換為待機模式,進而省下高達八成的用電量;而 IBM 更為酷藍(Cool Blue)用電管理和散熱技術組合,增添 Tivoli 軟體功能,不但可追蹤能源使用情況,並針對資料中心各單位用電量進行計費;PowerExecutive 用電管理軟體為市面上唯一可監控實際用電量的電源管理軟體,並依據資料中心的熱能限度,有效配置系統的電量。
IBM 的「綠色工程計畫(Project Big Green)」 冷卻 傳統的空調冷卻方式已無法滿足大型資料中心的需求, IBM 資料中心蓄冷方案( IBM Data Center Stored Cooling Solution)可大幅提升端對端空調系統的省電效益;而 IBM 獲得專利認證的背板熱交換(Rear Door Heat Exchanger)技術,為一項內建於刀鋒與機架型伺服器的水冷卻技術,能在無須增置任何風扇或電量的情況下,直接帶走伺服器 60% 的熱量,大幅提昇空調效率。在台灣,中央氣象局便是第一個採用水冷式機房技術的資料中心,除了以此直接散熱方式確保系統運作穩定之外,亦可節省空調的電力支出達 5 成的費用。
結論 計算系統硬體的演進 機械式,電機式,真空管,半導體,莫爾定律 ( Moore‘s Law ),... 計算系統中硬體與應用程式對功耗的影響 儘量讓電腦處於高使用率,例如 OS Virtualization 電腦處於低使用率時,關閉不用的元件,例如 PowerExecutive 虛擬化計算的起源 抽象化邏輯系統的建立 虛擬化計算的技術分類 CPU及系統硬體的虛擬化 OS的虛擬化 Application的虛擬化 IBM 的「綠色工程計畫(Project Big Green)」 診斷,建置,虛擬,管理,冷卻
參考資料 [1] Source: IDC, Worldwide Server Power and Cooling Expense 2006–2010 Forecast, Doc #203598, September 2006 [2] COMPUTER ARCHITECTURE, Lecture 2, COMPUTER HISTORY, HUMBOLDT-UNIVERSITÄT ZU BERLIN [3] List of Intel microprocessors: http://en.wikipedia.org/wiki/List_of_Intel_microprocessors [4] IBM Cell Broadband Engine Programming Workshop [5] Intel虛擬化發展藍圖: http://202.99.120.116:82/gate/big5/publish.it168.com/2007/0824/20070824033101.shtml [6] Virtualization: http://en.wikipedia.org/wiki/Virtualization [7] Physically Based Modeling: Principles and Practice (Online Siggraph '97 Course notes) http://www.cs.cmu.edu/~baraff/sigcourse/ [8] 3DS Product Brochure: 3ds_max_2008_overview_brochure.pdf [9] IBM Project Big Green: http://www-03.ibm.com/press/us/en/presskit/21440.wss