1 / 144

基礎設施即服務與虛擬化技術

基礎設施即服務與虛擬化技術. IaaS. 教材. 湯秉翰 著( 2013 ), 雲端網頁程式設計- Google App Engine 應用實作 ( 第二版 ) , 博碩文化, ISBN 978-986-201-824-8 (書號 PG31356 ) 鍾葉青、鍾武君 著( 2013 ), 雲端計算, 東華書局, ISBN 9789861579030 (書號 CL009 )

dean-king
Download Presentation

基礎設施即服務與虛擬化技術

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 基礎設施即服務與虛擬化技術 IaaS

  2. 教材 湯秉翰 著(2013), 雲端網頁程式設計-Google App Engine應用實作(第二版), 博碩文化, ISBN 978-986-201-824-8 (書號 PG31356) 鍾葉青、鍾武君 著(2013), 雲端計算, 東華書局, ISBN 9789861579030 (書號 CL009) 許清榮、林奇暻、買大誠 著(2012), 掌握Hadoop翱翔雲端-Windoop應用實作指南, 博碩文化, ISBN 978-986-201-673-2 (書號 PG21241) 鍾葉青、李冠憬、許慶賢、賴冠州 著(2011), 雲端程式設計: 入門與應用實務, 東華書局, ISBN 9789861578125 (書號 CL008)

  3. 為什麼需要 IaaS?

  4. 基礎設施即服務 • IaaS: Infrastructure as a Service • 基礎設施:計算、儲存、網路

  5. 傳統 IT 的問題 買了很多昂貴的設備,大部分的時間閒置 資源不足的時候無法快速調度 維護成本高 硬體故障的風險

  6. 如何解決問題 • 委外 • 能夠視需求增減容量 • 有人幫忙管理設備,設定組態 • 有人幫忙維護設備,排除故障 • 有人幫忙保養設備,預防故障 • 只租不買

  7. IaaS 解決方案 • IaaS cloud provider 雲端服務提供者 • 以租用的方式提供資源 • 管理基礎設施軟硬體的複雜度 • 提供基礎設施的功能 • 保證服務品質 • 負責維護設備 • 如何達成?

  8. Virtualization 虛擬化技術 • IaaS 雲端服務提供者的挑戰 • 客戶需要各式各樣的作業系統 • 客戶需要各種容量的儲存空間 • 客戶需要各種容量的網路頻寬 • 客戶隨時都可能變更需求 • 有什麼好辦法? • 事先準備一大堆設備等待客戶的需求 • 雇用一大群 IT 專家解決客戶的問題

  9. 各式各樣的需求 I want Windows 7 I want Linux I want … Customer A Customer B I want … Windows Linux I want … I want …

  10. 事先準備再多也不夠 I want Mac OS Somebody may want Somebody might want… Somebody may want Somebody might want… Windows + Office Windows Server Linux + OpenOffice Linux Server

  11. Virtualization 虛擬化技術 • 計算資源 • Virtual Machine 電腦虛擬化 • 儲存空間 • Virtual Storage 儲存虛擬化 • 網路通訊 • Virtual Network 網路虛擬化

  12. IaaS特性

  13. Scalability & Elasticity Scalability 可延展性 Elasticity 可伸縮性 客戶可以視需求動態地增加或減少資源使用量 快速調動資源 系統的行為和資源的多寡無關

  14. 如何達成 Scalability & Elasticity? • 計算資源 • 動態增減虛擬機器的數量 • 整合實體機器之間的Hypervisor • 儲存空間 • 動態增減虛擬儲存空間 • 整合實體機器之間的 Hypervisor • Thin provisioning • 網路通訊 • 動態增減連線的數量 • 動態分割網路需求,以多部實體路由器分攤負載

  15. Availability & Reliability Availability 可用性 Reliability 可靠性 客戶存取計算資源時,不必擔心硬體故障的問題 儲存在雲端的資料不怕遺失 網路永遠不斷線、不塞車

  16. 如何達成 Availability & Reliability? • 計算資源 • 監控實體機器與虛擬機器,即時發現故障 • 定期備份,災難復原 disaster recovery • 在實體機器之間遷移虛擬機器 Live Migration • 儲存空間 • 在實體儲存裝置之間儲存副本 • 定期備份、異地備援 • 網路通訊 • 備援線路 Redundant Connection

  17. Live Migration 在實體機器間動態遷移執行中的虛擬機器

  18. Manageability & Interoperability Manageability 可管理性 Interoperability 可互通性 客戶能夠充分掌控其使用中的資源 虛擬化的資源可以依預定地策略自動進行配置 所有的虛擬資源都列管 資源的使用紀錄自動轉成帳單

  19. 如何達成 Manageability & Interoperability? • 計算資源 • 基本的虛擬機器運作:新建、暫停、繼續、Snapshot 快照 • 虛擬機器資源負載紀錄:CPU、記憶體 • 儲存空間 • 監控儲存空間使用狀況,空間使用量、讀/寫動作 • 依照空間利用率自動配置/釋放 實體儲存空間 • 網路通訊 • 監控每一個虛擬連線的網路頻寬使用量 • 建立副本時自動重繞資料路徑

  20. Performance & Optimization Performance 效能 Optimization 最佳化 盡可能讓客戶共用資源,提高資源使用率 建立實體資源池 Physical Resource Pool透過平行處理提升效能 虛擬資源透過動態配置以最佳化的方式佈署於實體資源之間

  21. 如何達成 Performance & Optimization? • 計算資源 • 佈署虛擬機器時考慮負載平衡Load Balancing • 透過 Live Migration 維持實體機器之間的負載平衡 • 儲存空間 • 佈署虛擬儲存裝置時考慮熱點效應 Hot Spot • 透過 Live Migration 維持實體儲存裝置之間的負載平衡 • 網路通訊 • 佈署虛擬機器時考慮網路頻寬的分配 • 透過 Live Migration維持網路頻寬的負載平衡

  22. Accessibility & Portability • Accessibility 可得性 • Portability 可攜性 • 客戶能夠很方便地監控與存取資源 • 透過網頁,不須另外安裝軟體或購買設備 • 基礎設施資源可以很方便地重新配置 或 複製

  23. 如何達成 Accessibility & Portability? • 計算資源 • 建立整合式的虛擬機器管理介面,以網頁提供 • 遵循虛擬機器標準,提升可攜性 • 儲存空間 • 整合式的虛擬儲存裝置管理介面 • 網路通訊 • 整合式的虛擬網路管理介面

  24. IaaS 架構 關鍵在於虛擬化技術 Virtualization

  25. 虛擬化概述Virtualization Overview • 何謂虛擬化 virtualization ? • 虛擬化是建立某些東西的虛擬(相對於實體而言)版本,例如作業系統、伺服器、儲存裝置、網路資源 • 它把實體資源的特性隱藏起來,只顯現抽象的資源給使用者 • 虛擬化技術的緣由 • 不是新概念 • 來自於抽象元件的系統設計方式 • 這種做法被應用在多個系統層面

  26. 虛擬化概述 • 系統的抽象化 • 計算機系統建立在抽象層之上 • 高的抽象層將實作細節隱藏在低的抽象層 • 每一個抽象層次的設計者,使用下一層支援的功能,建立新的功能提供給上一層 • 實例 • 檔案是硬碟的一種抽象化

  27. 虛擬化概述 • 機器層級抽象化 • 對於作業系統的開發者而言,一台機器是由一群與電腦硬體相關的指令集架構所定義的介面 • 硬體和軟體之間的主要分隔 • 實例: • X86 • ARM • MIPS

  28. 虛擬化概述 • 作業系統層級抽象化 • 對於編譯器(Compiler)或函式庫(Library)的開發者,一台機器被應用程式二進制介面(Application Binary Interface, ABI)定義 • 定義一些可能被使用者或函式庫使用的基礎作業系統介面 • 實例: • 使用者層級的指令集架構 • 作業系統的指令呼叫

  29. 虛擬化概述 • 函式庫層級抽象化 • 對於應用程式的開發者而言,一台機器是被應用程式介面(application programming interface, API)所定義 • 這類型的抽象化介面提供豐富的功能 • 實例: • 使用者層級的指令集架構 • 標準的C語言函式庫 • 圖形函式庫

  30. 虛擬化概述 虛擬 實現體 虛擬 實現體 虛擬 實現體 虛擬化層 抽象化層 實體設備 • 虛擬化的概念存在每個地方! • 在「基礎設施即服務」,在基礎建設上的每一種實體設備,可具有模擬與仿真的功能

  31. 虛擬化概述 • 一般虛擬化的實作層級 • 虛擬化指令 • 軟體虛擬化的硬體指令 • 虛擬化層 • 軟體虛擬化的實作 • 抽象化層 • 各種硬體存取介面 • 實體硬體設備 • 各種基礎設施資源 • 不同實體的資源 • 伺服器、儲存器、網路

  32. 虛擬化技術 虛擬 實現體 虛擬 實現體 虛擬 實現體 虛擬化層 抽象化層 虛擬 磁碟/檔案系統 虛擬 磁碟/檔案系統 實體設備 虛擬機器 (VM) 虛擬機器 (VM) 虛擬 網路 虛擬 網路 虛擬機器 (VM) 虛擬 網路 Xen、KVM、VMWare 802.1Q、MPLS、GRE LVM、NFS、RAID x86、ARM、MIPS SCSI、SAS、ATA、SATA 封包路由與轉送 處理器、記憶體、輸入/出裝置 快閃記憶體 + 磁碟 + 磁帶 網路卡+ 交換器 +路由器 伺服器虛擬化 儲存虛擬化 網路虛擬化

  33. 伺服器虛擬化Server Virtualization • 處理器虛擬化 • Emulation techniques • Trap and emulate model • Hardware assistance • 記憶體虛擬化 • Shadow page table • Hardware assistance • I/O 虛擬化 • Device model • Hardware assistance

  34. 仿真技術Emulation Technique • 為何要仿真? • 虛擬化技術是一種仿真技術 • 許多虛擬化技術是由仿真技術發展而來 • 仿真的目的 • 提供一種方法,讓(子)系統顯現出和其他(子)系統相同的介面和特色 • 仿真器 • Emulator

  35. 仿真技術 • 三種仿真技術的實作 • 直譯仿真(Interpretation) • 仿真器一次只直譯一個指令 • 直譯器(Interpreter) • 靜態二元轉換(Static Binary Translation) • 仿真器一次轉換一區塊的二進位指令 • 下一次執行同一段程式時不需轉換 • 動態二元轉換(Dynamic Binary Translation) • 混合方法的仿真器,將以上兩種方法混合使用

  36. 直譯仿真 • 直譯仿真執行流程 • 仿真器從賓客記憶體中提取一道指令 • 解譯指令並將其發送到相對應的模擬單元 • 執行指令的功能,並修改相關的系統狀態,如模擬暫存器的數值 • 增加賓客程式計數暫存器的數值,之後再次重複這個程序 • 優點 • 簡單實作 • 缺點 • 效能差

  37. 直譯仿真技術流程圖 Interpreter

  38. 靜態二元轉換 • 使用編譯器最佳化技術的基本區塊概念 • 基本區塊(Basic Block)是整個程式內一部分的程式碼,有某些理想的特性使得它本身非常適合進行分析 • 單一入口:一個基本區塊只有一個入口點,裡面沒有程式碼為整個程式裡任何位置之跳躍指令的目的地 • 單一出口:一個基本區塊只有一個出口點,只有最後一條指令可以使得程式執行其他的基礎區塊

  39. 靜態二元轉換

  40. 靜態二元轉換 • 靜態二元轉換流程 • Fetch one block of guest instructions from guest memory image. • Decode and dispatch each instruction to the corresponding translation unit. • Translate guest instruction to host instructions. • Write the translated host instructions to code cache. • Execute the translated host instruction block in code cache • 優點 • 仿真器可以重複使用轉換過的宿主程式碼 • 在轉換賓客指令區塊時,仿真器可以做到更多的最佳化 • 缺點 • 實作的複雜度增加

  41. 靜態二元轉換 Binary Translator

  42. 直譯仿真 vs 靜態二元轉換 賓客二元碼 直譯器 MOV R1 R2 賓客二元碼 宿主二元碼快取 二元碼轉換器 ADD R1 R2 R3 MOV R1 R2 MOV R3 R4 ADD EXA EXB MOV EXA EXB MOV EXC EXD

  43. 直譯 vs 靜態二元轉換

  44. 動態二位轉換 • 一種混合的實作方式 • 針對第一次找到的程式碼,直接由直譯器做直譯,並標明這些程式碼為找到的程式碼 • 隨著賓客程式碼被找到,引發二位轉換的模組,將賓客程式區塊轉換成宿主程式區塊,並將其放到程式碼快取 • 在下次執行賓客程式被轉換過的區塊時,便可轉跳至程式碼快取執行轉換過的宿主二位元程式碼 • 優點 • 兼顧直譯器與二元碼轉換器的特色 • 缺點 • 很難實作

  45. 動態二位轉換 第一次執行時,宿主程式碼快取中沒有轉換過的程式碼存在 程式碼快取比對失敗,直接直譯賓客指令 隨著程式區塊被找到,引發二位碼轉換器 將賓客程式區塊轉換成宿主二位元碼,並放進程式碼快取 在下次執行時,執行在程式碼快取裡被轉換過的程式區塊

More Related