Loading... <p><span style="font-size: 18px">Xen介绍:</span></p> <p> <span style="font-size: 14px">xen是一个开放的源代码虚拟机监视器,有剑桥大学研发。它打算在单个计算机上运行多达128个满足特征的操作系统,操作系统必须进行显示地修改("移植")以在Xen上运行(但是提供对用户应用的兼容性)。这使得无需特殊硬件支持,就能达到高性能的虚拟化。</span></p> <p></p> <p><span style="font-size: 18px">Xen由三部分组成:</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163759-58.png" title="1440220797303358.png" alt="XEN-schema.png" /> </p> <p><span style="font-size: 14px"> 第一部分:Xen Hypervisor,又称虚拟机监控程序(Virtual Machien Monitor简称VMM),VMM工作原有linux系统内核位置,替代了linux系统内核,用于虚拟CPU、Memeory等;</span></p> <p><span style="font-size: 14px"> 第二部分:Xen Dom0,又称特殊区域;为vmm提供硬件驱动程序,用于协助vmm驱动各个底层硬件,同时又为Xen DomU提供模拟IO等功能;由于特殊原因Linux-2.6.37以后的内核才支持Xen Dom0,建议大家在使用xen时使用linxu-3.0以后的内核;</span></p> <p><span style="font-size: 14px"> 第三部分:Xen DomU,非特权区域;实际生产中的操作系统</span></p> <p></p> <p><span style="font-size: 18px">Xen虚拟技术分类:</span></p> <p> <span style="font-size: 14px">(1)完全虚拟化:DomU中的各个硬件都是由VMM和Dom0虚拟和模拟实现;</span></p> <p><span style="font-size: 14px"> (2)半虚拟化:DomU中的CPU、Memory有VMM模拟实现,IO等设备分为前端(Front)和后端(Back),前端工作在DomU中,而后端工作在Dom0中;</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163759-34.png" title="1440227376292762.png" alt="1.png" /></p> <p> DomU中的网卡eth0与Dom0中的viif#中的设备对应,不再由Dom0模拟,这大大提升了IO性能</p> <p> (3)借助于硬件设备的半虚拟化;例如Intel的vt-d技术</p> <p></p> <p> <span style="font-size: 18px">Xen Hypervisor分类</span>:</p> <p> <span style="font-size: 14px">(1)default/xm(Xen-4.1):需要依赖于xend守护进程</span></p> <p><span style="font-size: 14px"> (2)defualt/xl(Xen-4.2):无须启动xend服务进程</span></p> <p></p> <p><span style="font-size: 18px">CPU虚拟化实现的方式:</span> </p> <p> <span style="font-size: 14px">(1)模拟(emulation): 纯软件方式,性能较差</span></p> <p><span style="font-size: 14px"> (2)虚拟化(Virtualization):虚拟化由分为两类</span></p> <p><span style="font-size: 14px"> 第一类:完全虚拟化</span></p> <p><span style="font-size: 14px"> BT: VMware软件实现的技术;称为二进制翻译</span></p> <p><span style="font-size: 14px"> HVM: 硬件辅助的虚拟化</span></p> <p><span style="font-size: 14px"> 第二类:半虚拟化</span></p> <p><span style="font-size: 18px">Memroy虚拟化实现的方式:</span></p> <p><span style="font-size: 18px"> </span><span style="font-size: 14px">在进程角度看memory是线性地址空间,而站在内核角度看memroy是物理地址空间;</span></p> <p><span style="font-size: 14px"> 虚拟化实现方式:</span></p> <p><span style="font-size: 14px"> Intel:Intel的Extended Page Table技术,简称为EPT</span></p> <p><span style="font-size: 14px"> AMD: AMD的Nested Page Table技术,简称为NPT</span></p> <p></p> <p><span style="font-size: 18px">IO的虚拟化实现方式:</span></p> <p> <span style="font-size: 14px">(1)模拟:完全有软件来模拟真实的硬件来实现</span></p> <p><span style="font-size: 14px"> (2)半虚拟化:借助于前端(front)和后端(back)实现</span></p> <p><span style="font-size: 14px"> (3)IO透传(IO-Through): 例如Intel的VT-d技术,基于北桥硬件的辅助虚拟化</span></p> <p></p> <p><span style="font-size: 18px">虚拟化<span style="font-size: 18px">网络</span>:由TUN或TAP实现</span></p> <p><span style="font-size: 18px"> </span>在计算机网络中,TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网络板卡实现的网络设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统的软件提供与硬件的网络设备完全相同的功能。TAP等同于一个以太网设备,它操作第二次数据包如以太网数据帧;TUN模拟了网络层设备,操作三层数据包比如IP数据包;操作系统通过TUN/TAP设备向绑定该设备的用户空的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过TUN/TAP设备发送数据,在后中情况下,TUN/TAP设备向操作系统的网络栈投递(或"注入")数据包,从而模拟从外部接受数据报的过程。</p> <p><span style="font-size: 16px">常见的方式有以下几类:</span></p> <p> <span style="font-size: 14px">(1)nat mode;</span><span style="font-size: 14px">(2)bridge mode;</span><span style="font-size: 14px">(3)host-only;</span><span style="font-size: 14px">4)route mode;</span><span style="font-size: 14px">(5)isolation mode:</span></p> <p></p> <p>以上是本人的学习总结,总结的不是很好,希望大家多多给意见; O(∩_∩)O</p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信