`
javasee
  • 浏览: 924464 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Existing I/O Virtualization Approaches

阅读更多
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="ProgId" content="Word.Document"> <meta name="Generator" content="Microsoft Word 11"> <meta name="Originator" content="Microsoft Word 11"> <link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cblu2%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> <!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"TimesNewRoman\,Bold"; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-alt:"Times New Roman"; mso-font-charset:0; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:auto; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:TimesNewRoman; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-alt:"Times New Roman"; mso-font-charset:0; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:auto; mso-font-signature:3 0 0 0 1 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:1006399582; mso-list-type:hybrid; mso-list-template-ids:152054880 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:21.0pt; mso-level-number-position:left; margin-left:21.0pt; text-indent:-21.0pt; font-family:Wingdings;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} --> </style> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->


The traditional device driver model was extended to support I/O virtualization in several different ways:

<!--[if !supportLists]-->l <!--[endif]-->Legacy device drivers are used in fully virtualized systems, based on device emulation [2]. The hypervisor traps the device accesses (such as memory-mapped IO operations) and converts them to operations on a real device, which may be different from the emulated device. This approach does not require changes to the guest OS, at the cost of significant performance degradation due to frequent context switches between the VM and the hypervisor.

<!--[if !supportLists]-->l <!--[endif]-->Para-virtualized (``virtual'') I/O drivers are hypervisoraware I/O drivers, installed in the guest OS [3, 4, 5]. A paravirtualized driver communicates with the real device driver running outside the guest; the level of abstraction is raised from low-level bus operations (such as MMIO) to device-level operations (such as “send a packet”). The performance of paravirtual solution is significantly better compared to device emulation, but still far from native [6].

<!--[if !supportLists]-->l <!--[endif]-->Direct access (also known as pass-through access) device drivers provide guest access to real hardware. A device is dedicated to the guest, which interacts directly with the device, without a software intermediary. This significantly improves performance compared to device emulation or para-virtualized drivers. However, this approach in fact does not virtualize the I/O. The vendor-specific device driver is executed within the guest, which preserves the traditional driver-related problems (such as high development cost and stability issues). Direct access also poses challenges to many aspects of virtualization, in particular it significantly complicates live migration [7, 8, 21].

<!--[if !supportLists]-->l <!--[endif]-->Self-virtualizing devices [9, 10, 18, 20] allow direct access interface to multiple VMs; logically, several devices of the same type are packaged together. Since the device driver within the quest OS interacts with the hardware directly, a self-virtualizing device (as a direct-access device) does not really virtualize the I/O. In addition, even though the hardware allows I/O sharing, the supported number of the virtual devices (and accordingly the number of VMs sharing the device) is typically very low, since the self-virtualization support has significant impact on hardware size per virtual interface. Accordingly, this solution scales poorly, while the device cost is significantly increased.

分享到:
评论

相关推荐

    The Role of FCoE in I/O Consolidation

    making it the most promising technology for achieving I/O consolidation. The emerging Fibre Channel over Ethernet (FCoE) protocol plays a critical role in this convergence process. This paper ...

    java nio proraming pdf

    java.nio (NIO stands for non-blocking I/O) is a collection of Java programming language APIs that offer features for intensive I/O operations. It was introduced with the J2SE 1.4 release of Java by ...

    SD卡-移植FatFs.zip_SD卡-移植FatFs_The Common_fatfs 移植_fatfs移植2019_grow

    diskio.c An example of glue function to attach existing disk I/O module to FatFs. integer.h Integer type definitions for FatFs. ffunicode.c Optional Unicode utility functions. ffsystem.c An ...

    AL2236的应用

    clock speeds of up to 100 MHz, I/O lines shared with up to six serial ports and four levels of alternate pin functions that include variable-phase PWM, auxiliary I/O, quadrature decoder, and input ...

    LPC11Uxx_en.pdf

    LPC11Uxx_um_en.pdf The LPC11Uxx are an ARM Cortex-M0 based, low-cost 32-bit MCU family, designed for ... four general purpose counter/timers, a 10-bit ADC, and up to 54 general purpose I/O pins.

    iscsi协议 rfc3720

    protocols for communicating with I/O devices, especially storage devices. SCSI is a client-server architecture. Clients of a SCSI interface are called "initiators". Initiators issue SCSI "commands" ...

    btrfs-sync:在本地或通过SSH智能轻松地同步BTRFS快照

    btrfs-sync 在本地或通过SSH智能且轻松地同步BTRFS快照。 可以与结合使用 # btrfs-sync --verbose --delete /home/user/.snapshots user@server:/...* Skip existing '/home/user/.snapshots/weekly_2018-02-16_15

    FatFs 文件系统在nor flash 移植

    FatFs Module Source Files R0.12 ... diskio.c An example of glue function to attach existing disk I/O module to FatFs. integer.h Integer type definitions for FatFs. option Optional external functions.

    A dynamic and adaptive load balancing strategy for parallel file system with large-scale I/O servers

    Therefore, existing solutions will be prohibitively inefficient in large-scale parallel file systems. To address this problem, this paper presents SALB, a dynamic and adaptive load balancing algorith

    micro-usb_1_01

    The SuperSpeed USB 10 Gbps (USB 3.1) Specification adds a 10 Gbps speed mode that uses a more ...Improved data encoding for more efficient data transfer leading to higher through-put and improved I/O

    Stochastic data acquisition for answering queries as time goes by

    Data acquisition almost always has some costs, which could be either monetary costs or computing resource costs such as sensor battery power, network transfers, or I/O costs. Using out-dated data to ...

    VC串口编程之深入浅出

    VC串口编程之深入浅出 vc串口编程:深入浅出VC++串口编程之基于 ... //FILE_FLAG_OVERLAPPED:可使用异步的I/O HANDLE hTemplateFile //指向模板文件的句柄,对串口而言该参数必须置为NULL ); .........

    VPX标准规范之一/ VITA46.0 Draft Standard

    Because electronics miniaturization is driving the plug-in module I/O count, most system interconnects will need:  Multi-gigabit differential technology  Core computing cluster switched fabrics ...

    LabVIEW的写入二进制文件

    “写入二进制文件”位于函数选板的“编程→文件I/O一写入二进制文件”,图标和接线端如图1所示。  输入和输出接线端的说明如下。  prepend arrav Or string slze?:预置数组或字符串大小,指定是否包含写入...

    Learn Java for Android Development, 3rd Edition

    Classic and New I/O Networking and database access Parsing, creating, and transforming XML documents Additional APIs for creating and accessing ZIP and JAR files, and more Who this book is for This ...

    Functional Kotlin-Packt Publishing(2018).pdf

    With Google's announcement at the I/O Conference in 2017 to make Kotlin an official language for Android, Kotlin has been gaining popularity among developers around the world. However, Kotlin's use ...

    asynclog:用于python日志记录的异步日志

    将日志记录I / O(尤其是当我们要登录到网络端点时的网络I / O)留给提供的异步线程或异步任务。 要求 Python 3.5+ 安装 pip install asynclog 用法 从字典配置 log_cfg = { 'version' : 1 , 'disable_existing_...

    Learn Java for Android Development 3rd Edition mobi格式

    Classic and New I/O Networking and database access Parsing, creating, and transforming XML documents Additional APIs for creating and accessing ZIP and JAR files, and more Who this book is for This ...

    Node.Patterns.Databases.Volume.I.LevelDB.Redis.and.CouchDB

    Node.js has been designed to do quick and efficient network I/O. It's event-driven streams make it ideal to be used as a kind of smart proxy, often working as the glue between back-end systems and ...

    XGM2019e_2159.gfc

    homogeneous and independent from existing high resolution global models. Over the oceans the model exhibits an improved performance throughout the complete spectrum (equal or better than preceding ...

Global site tag (gtag.js) - Google Analytics