Department of Electrical Engineering National Cheng Kung University

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

1 Department of Electrical Engineering 多元入學之備審資料及 面試準備 國立中央大學 電機工程學系 李進福 National Central University.
《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
國立成功大學工程科學系 Department of Engineering Science -National Cheng Kung University 控制與訊號處理實驗室 Control & Signal Processing Lab MATLAB/Simulink 教學.
VMSF 內核級虛擬機監控器調度框架 1 張力升 Dept. of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
1.
资源平台应用培训 武汉市交通学校信息化建设指导委员会.
计算机基础知识培训.
计算机硬件设备图片 go 珠海市第四中学 信息技术组.
104年度國立宜蘭大學新進主管研討 主計業務宣導說明
102年實施之高中職及五專多元入學(含免試入學)之招生機制
读者与图书馆 2009年春季版 总第 15 期 山 东 交 通 学 院 图 书 馆 2009年3月.
F-5型戰機延壽計畫 執行期程:83-89 執行項目:
精品开放课程的 建设与应用 谢幼如 教授 广东省高校教育技术中心 华南师范大学教育信息技术学院
龙芯多媒体电脑教室培训 龙梦极域电子教室 江苏龙芯梦兰科技股份有限公司.
2012级暑期放假安全教育 及宿舍搬迁工作布置会 北京化工大学理学院 辅导员:曹鼎 2013年6月6日.
服务器虚拟化:Vmware的方法 关注短期结果 问题: 虚拟化101 新基础架构 + 新技巧 25-60%的直接ROI
第 6 章 安裝問題解疑.
Strata PC HTE硬件技术工程师 第一章 桌面计算机系统组件.
專題討論(二) 朴子溪流域漥蓄區位之萃取及應用
第二章 项目一:企业厂区与车间平面设计 1.
香港普通話研習社科技創意小學 周順強老師.
绪 论  珍惜大学生活 开拓新的境界.
第2章:企業組織 張緯良 世新大學資訊管理系.
國立雲林科技大學 教師升等實務作業 報告人:人事室.
National Pingtung University
平行控制 數據驅動的計算控制方法 陳品杰 Department of Electrical Engineering
Windows Server 2003操作系统相关配置
第8章 机床操作 主讲:臧红彬 博士.
Department of Computer & Communication Engineering
2015年云南财经大学图书馆 新生入馆教育考核试题 答题指南
Windows 95 & 98 操作 林信鋒 教授 國立東華大學資訊工程系
AMD Multicore Technology Leading to the Next Generation
教師升等資料準備說明會 國立屏東科技大學 報告單位:人事室 報告日期:104年6月8日
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
騎乘單車如何配速 桃園縣攝影藝術協會 鐵馬車隊 鄭育宏 製作 1/12.
2018/9/17 dcTPM: 一個對於動態內文管理的一般性架構 dcTPM: A Generic Architecture for Dynamic Context Management 林孟諭 Dept. of Electrical Engineering National Cheng Kung.
3.1主板的组成 3.2主板分类 3.3主板的选购 3.4主流主板芯片组技术参数
Xen基础架构安全性分析 云朋
特殊教育學系 國立臺灣師範大學 National Taiwan Normal University
基本硬體介紹 1.主機板 2.CPU(運算中心) 3.記憶體(RAM-短暫記憶資料處) 4. 硬碟(HDD儲存資料處) 5.顯示卡(接螢幕)
第一章 计算机基础知识 计算机基础知识.
簡易電腦概論說明 新生國中 吳政岡.
三星450R4V-X03 宣传片 制作人:陈爱婕 目录.
虛擬化基本概念.
資料來源:張弘明 張迪安 林欣螢 吳柏農 吳沛錡
第2章 電腦硬體的架構及功能.
亚东科技出品 神盾终端免运维管理系统 亚东科技出品
Unit 04 虛擬機器建構實驗 M. S. Jian Department of Computer Science and Information Engineering National Formosa University Yunlin, Taiwan, ROC.
认识计算机系统.
生源地信用助学贷款系统 操作培训课件 福建省农村信用社联合社 张健明 2014年6月30日 共1-78页.
作業系統 第三章 作業系統結構.
國立臺北大學 National Taipei University Power Leader 社團精英幹部 培 訓 2012/12/11.
計畫名稱-分包研究項目名稱.
崑山科技大學 電子工程系 99學年度 學生實務專題成果展
项目一 了解计算机 项目二 选配计算机硬件 项目三 组装计算机 项目四 设置BIOS和硬盘分区 项目五 安装操作系统和常用软件
成大物理治療系自我評鑑 Department of Physical Therapy Since 1990
大學部學生專題研究 指導計畫說明 鄭士康 台大電機系.
XXXX智慧校园设计方案 ——XXXX信息科技有限公司 XX年XX月.
Advanced Competitive Programming
組長:李儂.組員:溫芷沂.詹文君 桃園市北門國小5年12班
Tree Riddles Kun-Mao Chao (趙坤茂)
Tree Riddles Kun-Mao Chao (趙坤茂)
Advanced Competitive Programming
2.1 试验: 探究小车速度随时间变化的规律.
县级支中心 乡镇基层服务点的建设 朱 庆 华.
Advanced Competitive Programming
Department of Mechatronic Technology National Taiwan Normal University
Presentation transcript:

Department of Electrical Engineering National Cheng Kung University 基於KVM的 物理資源動態分配與管理技術 徐 子 傑 Hsu,Zi Jei Department of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C

引言(1/1) Intel和AMD先後推出的一系列支持虛擬化技術的CPU,在很大程度上提高了虛擬機器環境下CPU和記憶體的性能。然而在週邊設備虛擬化方面,I/O設備的性能卻損失很大。I/O設備的利用率瓶頸成為了提高虛擬機器使用性能的瓶頸。因此,提高在虛擬機器下的I/0設備性能成為一個至關重要的問題。 近年來VMWare等公司又相繼提出Passthrough I/O模型。 Passthrough I/O模型將設備獨佔式地分配給指定的客戶域,使該域具有最高的I/O訪問性能,這樣做的優點是: 由於不需要模擬設備進行請求轉換,所以存取速度高; GOS能根據最新硬體,載入對應驅動,可充分發揮新硬體的功能。 Passthrough I/0在最大程度上提高了I/0性能,但這卻是以犧牲設備共用能力為代價的。 本文以虛擬化技術為基礎,結合Linux設備熱插拔技術及Intel VT-d技術,提出並實現了一種基於KVM的物理資源動態分配與管理技術,在不降低Passthrough I/O設備訪問性能的前提下,仍然能夠滿足設備的共用能力。

Linux作業系統的熱插拔處理(1/3) 由Intel、Microsoft及Toshiba共同開發而成的高級配置與電源管理介面ACPI(Advance Configuration and Power Interface Specification)能使作業系統依照一定的方式管理用電情況,處理系統硬體產生的熱插拔事件,讓作業系統從使用者的角度上直接支配隨插即用設備,不同於以往的基於BIOS的管理方式。 ACPI對系統平臺、外插板卡硬體都有特定的要求: 系統集成熱插拔控制積體電路和PCI插槽的逆電流控制器,這樣在系統啟動過程中可以自動檢測PCI插槽上是否有設備,當探測到PCI插槽上無設備時,能夠自動將該插槽斷電。 目前南橋晶片中都集成了ACPI協議。

Linux作業系統的熱插拔處理(2/3) 使用者將一塊PCI熱插拔設備插入到主機板的插槽後,從南橋晶片中的熱插拔控制器感應到有設備插入,到插入的設備可以正常使用作業系統所經歷的一系列過程如下: (1)設備插入後,南橋熱插拔控制器生成GPE事件(通用事件)通知ACPI驅動層。 (2)ACPI核心控制晶片組根據GPE事件產生一個系統控制中斷,通知作業系統處理相應的ACPI事件。 (3)硬體會清除這個GPE事件的回應位,並且運行對應GPE位在ACPl名字空間中的控制方法。 (4)控制方法將根據熱插拔控制器的相應控制位來決定當前事件是否為一個設備插入事件,以及哪個插槽有設備插入。

Linux作業系統的熱插拔處理(3/3) (5)控制方法將向ACPI驅動層發出通知,表示當前PCI匯流排上的某一個插槽有設備插入。 (8)PCI層讀入相關設備(PCI功能模組)的配置資訊: 對該PCI卡上所有設備根據設備製造廠商獲得相關的驅動程式; 使能PCI卡上所有的功能模組; ACPI驅動層根據PCI設備的電源管理規範,使能PCI設備上的電源管理狀態寄存器,使PCI設備上電,啟動設備。 (9)系統正常運行/訪問設備。

KVM的設備熱插拔(1/3) 設備熱插拔初始化,KVM經由改寫的Qemu程式來模擬部分硬體資源和I/O設備的。 GOS啟動同時,創建其相應的Qemu進程,初始化Qemu管理器。 Qemu管理器是使用者態的Qemu進程的一個子執行緒,用於在GOS啟動後動態地對GOS系統硬體進行管理。 PCI設備熱插拔的初始化是在Qemu管理器中進行的。 KVM的PCI設備熱插拔初始化過程如下: (1)查找設備所要掛接的匯流排。 (2)將PCI設備的設備資訊添加到所要掛接匯流排上的模擬設備佇列中。 (3)使用Qemu標準匯流排掛接方法掛接設備, 包括為真實設備分配在虛擬機器中將要使用的功能號; 分配將要在虛擬機器中使用的中斷索引號及中斷號等。

KVM的設備熱插拔(2/3) (4)通過HOS的sysfs獲得設備的真實配置資訊,保存在GOS對應的設備配置空間中。 (5)向Qemu註冊GOS所關心的I/O記憶體及I/O埠,設置中斷路徑。 (6)設置由KVM來進行設備的IOMMU及擷取裝置產生的中斷。 (7)啟動設備,相當於給設備所插入的“插槽”上電。 (8)KVM向GOS對應的虛擬中斷控制器中寫入一個“產生一個設備插入事件”的中斷。 (9)轉入到章節2中的作業系統對熱插拔的處理過程中。 將設備從GOS中刪除,首先將設備從所掛接的匯流排上刪除,其次將設備所插入的“插槽”斷電,最後KVM向GOS中寫入一個“產生一個設備拔出事件”的中斷。

KVM的設備熱插拔(3/3) Qemu模擬的PCI匯流排不具備PCI熱插拔控制器,所以在添加(或刪除)一個設備成功後,KVM需要向GOS的虛擬中斷控制器中寫入一個中斷,通知ACPI核心晶片組插入(或拔出)了一個設備及設備插入了哪個PCI插槽(設備從哪個插槽中拔出),以代替熱插拔控制器對PCI插槽的掃描。 最近,英特爾提出了新的匯流排及介面標準一PCI-Express。 PCI-Express具有很多PCI匯流排所不具備的功能,如它定義了標準的熱插拔控制器和熱插拔規範等。 隨著虛擬化技術的進步,未來可能出現模擬的PCI-Express匯流排。使用這種匯流排,在設備熱插拔過程中GOS可以自我感知設備的插入與拔出,而不再需要KVM向GOS注入中斷。

物理資源動態分配與管理框架的設計(1/5) 框架主要應用了物理資源動態分配與管理技術,基於共用記憶體及信號機制實現物理資源管理模組與虛擬機器管理進程Qema之間的通信, 利用hypercall機制實現GOS與HOS之間的通信,實現設備在多個GOS之間的分時共用,在不降低Passthrough I/O設備訪問性能的前提下,仍然能夠滿足設備的共用能力。 物理資源動態分配與管理技術的設計思想是允許每個GOS向管理器申請所需要的設備,在管理器的協調下,每個GOS可以分時獨立的使用物理PCI設備,來進行高效的I/O訪問。

物理資源動態分配與管理框架的設計(2/5) 圖1 物理資源動態與管理框架

物理資源動態分配與管理框架的設計(3/5) 物理設備管理模組(本框架下主要指PCI設備)的作用是收集每個GOS對設備的請求資訊,然後根據這些資訊,設備管理員在多個GOS之間進行有限設備的分配。 資源請求模組是運行在GOS中的PCI設備請求程式,使用者通過資源請求模組向管理器申請所需要的設備。每個GOS都有一個使用者態的Qemu進程與其相對應。 使用者在GOS中運行資源請求模組選擇所要申請的設備類型,根據預先設計好的hypercall機制,將這一請求資訊傳送到內核模組KVM中,KVM對請求資訊做簡單的封裝處理後將其傳遞到物理設備管理模組中保存並顯示出來; 設備管理員分析多個GOS的請求資訊,然後使用物理設備管理模組選擇將設備分配給合適的GOS。 在管理員進行設備分配時,可能設備正在被某個GOS所使用,那麼物理設備管理模組需要先將這個設備從相應的GOS中刪除,然後再添加到另一個GOS中。

物理資源動態分配與管理框架的設計(4/5) 某一時刻管理模組要將GOS1所擁有的設備分配給GOS2,管理模組所要做的操作如下: 根據GOSl的進程號向GOSl對應的Qemu進程發送信號,通知Qemu進程將設備刪除 Qemu進程根據從共用記憶體中取出的資料進行相應的操作刪除設備 設備成功刪除後,Qemu進程將刪除的設備資訊通知KVM,KVM向GOSl對應的虛擬中斷控制器中寫入一個“產生設備拔出事件”的中斷,進而GOSl處理這個熱插拔事件; 上述操作完成後,Qemu進程發送信號通知物理設備管理模組設備成功釋放,物理設備管理模組修改自己保存的對應設備資訊。

物理資源動態分配與管理框架的設計(5/5) 物理設備管理模組通知GOS2添加設備物理設備管理模組將設備的匯流排號、設備號等資訊寫入到共用記憶體並向GOS2對應的Qemu進程發送信號,通知Qemu進程添加設備; Qemu進程根據從共用記憶體中取出的資料進行相應的操作添加設備(見章節3); 設備成功添加後,KVM向GOS2對應的虛擬中斷控制器寫入一個“產生設備插入事件”的中斷,通知GOS2進行相應處理; 上述操作完成後,Qemu進程將設備所插入的槽號及所掛接的設備匯流排等資訊寫入共用記憶體; 物理設備管理模組根據從共用記憶體中取出的資訊更新自己保存的設備資訊。

實現與測試(1/6) 在管理器中,實現設備請求結構體, 在管理器中,實現設備分配結構體, 保存GOS對設備的請求資訊,如發起請求的GOS進程號、請求發生時的系統時間及申請設備的類型等。 GOS的進程號從GOS對應的進程式控制制塊中獲得; 系統時間通過系統函數do_gettimeofday()來獲得。 在管理器中,實現設備分配結構體, 保存PCI設備的資訊,如設備的配置空間資訊、設備所屬的GOS、設備插入GOS的哪個插槽等。 設備的配置空間資訊包括設備匯流排號、設備號及功能號等; 設備所屬的GOS的進程號在設備分配成功時從GOS的進程式控制制塊中獲得; 設備所在的插槽在設備分配成功後從共用記憶體中獲得。

實現與測試(2/6) 圖2 設備請求過程

實現與測試(3/6) 設備請求過程: 使用者向管理器申請設備,GOS調用hypercall函數將申請設備的類型資訊傳遞給KVM; KVM調用標準的vmcall接收函數處理這個hypercall後,調用預先定義好的函數將申請設備的類型資訊及申請設備的GOS的進程號傳遞給管理器。 管理器將接收到的資料保存在設備請求結構體中,並記錄當前系統時間。 最後,管理器將GOS對設備的請求資訊通知設備管理員。

實現與測試(4/6) 圖3 設備添加過程

實現與測試(5/6) 在將設備分配給目標GOS時,管理器首先要判斷設備是否已經分配給其他的GOS。 如果其值為0,說明設備沒有進行分配,可以直接分配; 如果其值為正值,則說明設備已經分配給其他的GOS,需要先將設備從所屬GOS中刪除,然後再添加到目標GOS中。 以設備的添加過程為例來說明設備的分配過程: 管理器將設備的資訊寫入到共用記憶體中,然後調用kill函數發送信號SIGRTMAX通知目標GOS對應的Qemu進程。 Qemu進程調用對應的信號處理函數將共用記憶體中的設備資訊取出並寫入到緩衝區中,然後調用Qemu標準的命令處理函數進行設備添加操作。 Qemu進程將系統分配給設備的插槽號和匯流排號寫入共用記憶體,發信號通知管理器根據這些值更新設備分配結構體。 管理器判斷GOS分配給設備的插槽號,如果是非正值,說明設備的分配失敗;如果是正值,那麼管理器更新設備分配結構體。

實現與測試(6/6) 測試結果: 本文在下面這樣一個場景中對物理資源動態分配與管理框架進行測試: GOSl對外提供HTTP服務,將網卡分配給它以實現高速的網路訪問。在一段時間內,GOSl所在的主機負載過高,需要將GOSl遷移到局域網中的其他主機上運行以平衡負載。 此時在GOS2上啟動相應的HTTP服務,將網卡從GOSl中刪除,然後分配給GOS2,由GOS2繼續對外提供服務。在進行設備熱插撥過程中,GOS是無法對外提供服務的,這裡使用ping命令測量在熱插拔過程中的ICMP報文的丟失率。 本文設定ping命令每10毫秒發送一個ICMP報文,10秒鐘後停止發送,在這10秒內將網卡從GOSl分配到GOS2中。 經過二十次的反復測試計算平均值,ICMP報文的丟失率為39%,也就是說物理資源配置過程耗時大約為4秒,這段時間包括網卡熱插拔分配的時間及GOS對網卡進行配置的時間。 相較於長時間及高性能的網路服務要求,應用物理資源動態分配與管理框架所造成的性能損失還是很低的。

結論 本文首先介紹Linux的熱插拔處理過程,然後分析KVM的熱插拔實現,最後基於Passthrough I/O模型設計了物理資源動態分配管理框架並在支援VT-d的機器上將其實現出來。 物理資源動態分配管理框架支援多個虛擬機器動態分時的使用PCI設備,測試表明它提高了Passthrough I/O模型的共用能力。但是本框架也存在一定的不足: 設備從GOS中刪除時,沒有保存當前GOS對設備的使用狀態,當設備再一次分配給該GOS時,是一個全新的狀態,這對使用者的使用來說是非常不便的,這點不足也是我們以後改進的方向。