• Nova对于虚拟机的16种操作
    如上图所示,我们把对 Instance 的管理按运维工作的场景分为两类:常规操作和故障处理。常规操作常规操作中,Launch、Start、Reboot、Shut Off 和 Terminate 都很好理解。 下面几个操作重点回顾一下:Resize通过应用不同的 flavor 调整分配给 instance 的资源。Lock/Unlock可以防止对 instance 的误操作。Pause/Suspend/Resume暂停当前 instance,并在以后恢复。Pause 和 Suspend 的区别在于 Pause 将 instance 的运行状态保存在计算节点的内存中,而 Suspend 保存在磁盘上。Pause 的优点是 Resume 的速度比 Suspend 快;缺点是如果计算节点重启,内存数据丢失,就无法 Resume 了,而 Suspend 则没有这个问题。Snaps** 备份 instance 到 Glance。产生的 image 可用于故障恢复,或者以此为模板部署新的 instance。 故障处理故障处理有两种场景:计划内和计划外。计划内是指提前安排时间窗口做的维护工作,比如服务器定期的微码升级,添加更换硬件等。计划外是指发生了没有预料到的突发故障,比如强行关机造成 OS 系统文件损坏,服务器掉电,硬件故障等。 计划内故障处理对于计划内的故障处理,可以在维护窗口中将 instance 迁移到其他计算节点。涉及如下操作:Migrate将 instance 迁移到其他计算节点。迁移之前,instance 会被 Shut Off,支持共享存储和非共享存储。Live Migrate与 Migrate 不同,Live Migrate 能不停机在线地迁移 instance,保证了业务的连续性。也支持共享存储和非共享存储(Block Migration)Shelve/Unshelve Shelve 将 instance 保存到 Glance 上,之后可通过 Unshelve 重新部署。Shelve 操作成功后,instance 会从原来的计算节点上删除。Unshelve 会重新选择节点部署,可能不是原节点。 计划外故障处理计划外的故障按照影响的范围又分为两类:Instance 故障和计算节点故障 Instance 故障Instance 故障只限于某一个 instance 的操作系统层面,系统无法正常启动。可以使用如下操作修复 instance:Rescue/Unrescue用指定的启动盘启动,进入 Rescue 模式,修复受损的系统盘。成功修复后,通过 Unrescue 正常启动 instance。Rebuild如果 Rescue 无法修复,则只能通过 Rebuild 从已有的备份恢复。Instance 的备份是通过 snaps** 创建的,所以需要有备份策略定期备份。 计算节点故障Instance 故障的影响范围局限在特定的 instance,计算节点本身是正常工作的。如果计算节点发生故障,OpenStack 则无法与节点的 nova-compute 通信,其上运行的所有 instance 都会受到影响。这个时候,只能通过 Evacuate 操作在其他正常节点上重建 Instance。Evacuate 利用共享存储上 Instance 的镜像文件在其他计算节点上重建 Instance。所以提前规划共享存储是关键。
  • [技术干货] 华为云ECS服务API使用指南(1) - 获取虚拟机列表
    背景华为云最大的特点之一是完全基于OpenStack建设,所以也能完美的支持所有OpenStack的API以及相关生态,包括各种OpenStack CLI,开发语言(Python, Go, Java...)绑定SDK等。目前华为云已经在以下region开放了API服务:[*]cn-north-1[*]cn-south-1[*]cn-**-2华为云官方API文档比较模糊,这一系列文章用来介绍如何在华为云上使用OpenStack API/CLI/SDK.Region & Endpoints要使用OpenStack API或者是任何CLI, 首先必须知道Region列表和Endpoints列表,比如Keystone(IAM), Nova(ECS), Cinder(EVS)等,详细的列表,可以参考这里。比如租户申请的虚拟机在华北区,那么:[*]Region: cn-north-1[*]Keystone(IAM) Endpont: https://iam.cn-north-1.myhwclouds.com[*]Nova(ECS) Endpont: https://ecs.cn-north-1.myhwclouds.comIAM认证采用Keystone V3 scoped auth, 具体请求参数和返回结果请参考OpenStack官方手册,这篇文章中,我们需要返回结果中的TOKEN和PROJECT_ID,来作为下一步获取虚拟机列表的参数。虚拟机列表采用Nova V2.1 API, 具体请求参数可以参考官方API手册。代码实现更多相关华为云API参考代码,请访问 https://github.com/luohao-brian/openstack-api-examples
  • 驱云驾长风 —— 华为GPU加速云服务器让“硬用”上云
    华为GPU加速云服务器“神机”妙算华为推出GPU加速云服务器,致力于帮助用户解决自建GPU集群面临的各种痛点问题,让用户更专注于加速计算。依托华为深厚的技术积累和卓越的软硬件设计整合能力,提供旗舰级GPU加速云服务器、超高的可靠性保障、强大的安全防护能力和易用的统一管理平台,全面降低运维难度。GPU加速云服务器提供虚拟化和裸机等多规格灵活的配置选项,满足不同计算能力需求,优异的弹性扩展能力,支持用户对计算资源的按需取用,极大降低使用成本。极致性能,欲与天公试比高华为GPU加速云服务器硬件平台单物理节点包含8块业界领先的NVIDIA旗舰级NVIDIA® Tesla® P100 GPU加速器,每块GPU拥有3584个NVIDIA® CUDA® 核心,PCIe Gen3 接口,带宽32GB/s,双精度4.7 TeraFLOPS,单精度9.3 TeraFLOPS,半精度达到18.7 TeraFLOPS,同时搭配16GB HBM2显存,带宽732GB/s。每个物理节点配备的NVMe SSD磁盘,能提供较普通SSD数倍的IOPS和带宽能力。在海量数据计算场景下,提供极低的访问时延和超高的存储带宽。对于追求极致性能的客户,华为GPU加速云服务器还特别打造了GPU加速裸机实例,内建8块Tesla® P100 GPU,客户独享整个物理节点资源。裸机实例没有虚拟化损耗,加上华为专业团队调优,最大程度发挥硬件性能。 七十二变,灵活按需的实例配置华为GPU加速云服务器提供灵活的实例配置,其中包括多种虚拟化实例,通过GPU直通技术灵活选择配置1/2/4块Tesla® P100 GPU,满足用户不同计算能力的需求。专属裸机GPU加速实例单节点性能最优,可直接获取单节点8块Tesla® P100 GPU的全部性能,由于裸机没有虚拟化的损耗,同时实现了物理资源隔离,可以满足一些用户的极致使用场景。特别推出基于NVIDIA® Tesla® P4的主打推理性能的加速云服务器实例,专门针对深度学习推理进行优化,支持35路高清视频硬件编解码,满足用户更多定制化需求场景。华为GPU加速云服务器构建在华为弹性云服务器之上,提供良好的弹性扩展能力,支持“虚拟化+裸机”的混合部署,用户对计算资源可“按需取用”,最大限度的节省计算资源的使用成本。 功能强大,整套平台级解决方案华为GPU加速云服务器、大数据平台和人工智能平台无缝整合,发挥华为全球领先的软硬件结合的技术实力,提供整套平台级解决方案。框架开放,内置大量高性能的分布式算法、数据预处理算法和机器学习算法等,支持计算引擎扩展以及自定义算法和组件。最大限度简化用户开发和部署AI应用难度,为用户提供高效的计算服务和出色的人机交互能力。开放合作,完善上下游产业链华为GPU加速云服务器为第三方合作伙伴提供从GPU硬件管理、编程接口、到云操作系统各层的全面技术支持。目前华为GPU加速云服务器与20多家合作伙伴联合解决方案已覆盖深度学习、基因测序、视频处理、气象测算和分子建模等多个领域。华为愿与更多第三方伙伴携手打造开放生态系统,为更多行业提供丰富的计算加速解决方案。
  • [交流分享] 怎样才算是一朵好云?
    首先,要先回答一个问题,就是我们为什么要用云?只有了解了需求,才能从需求的角度出发去判断云服务上提供服务的质量。使用云的好处主要是以下几个方面:弹性 弹性,可以说是云服务给传统的IT 带来的最大的好处。我们举两个例子:双十一购物节和宝强深夜发微博说自己被绿了。前一个带有鲜明的时间特点,地球人都知道在双十一那一天交易量是平日的n倍,此时淘宝和天猫的服务器需要扛住很大的负载。第二个明显带有随机性,毕竟宝强在没有发现自己被绿的时候生活还是很愉快的,这种杯具的事情没办法确定发生的时间以及人群的关注程度。 对于传统机房来说,这两种都是比较难以应对的情况。对于第一种情况还算好的,人们可以根据历史上双十一的交易记录提前线性的估算本年度的一个容量,再根据容量去提前购置服务器硬件、上架和配置应用等着双十一的到来。但是这样问题就解决了吗?没有!因为这可能会出现两种情况,一种是用户购物特别踊跃超出了之前的估算,虽然扩大了服务器的规模,仍然扛不住负载;另一种是人们购买没有预想的那么踊跃,服务器购置造成了浪费。另外这种为了一年之内仅有几天高负载的情况,去购买大量的服务器本身也是一种浪费。服务器买回来,摆在那里,你用或者不用都在折旧,财务上都要计提折旧费用。对于第二种宝强的情况,那就更加难以处理了,因为这种随机的流量暴增既无法预测,也无法控制。传统机房很难应对。 对于云服务来说,如果可以根据用户的负载情况随时动态的调整服务器实例的数量,或者动态的引导用户流量到指定的机房站点(Site)那将对应用是非常有帮助的事情。当用户访问量暴涨的时候,服务器实例个数会随之自动增长,反之会自动下降,帮助应用度过负载高峰。这就是弹性计算。易于开发、部署和维护 目前来说,绝大多数互联网服务都采用DevOps 和敏捷开发模型,迭代周期短的有一两周,长的可能一个月。因此,要求程序的不同版本可以快速、平滑地互相切换,也需要作为应用程序宿主的托管服务商可以提供快速部署的支持,以及DevOps 方面功能上的支持。以便可以实施可持续地自动化构建(CI)、可持续地自动化部署(CD)。 传统上,要上线一个系统,往往要经过以下几个阶段:售前评估->商务谈判->下单->服务器到货->服务器上架(包括网络规划VLAN等等)->软件安装调试->正式投产。而使用公有云服务,会将这个实施流程缩短。售前评估可要可不要(因为日后可根据运营情况调整虚拟机型号),商务谈判、下单、服务器到货、服务器上架甚至软件安装调试几个步骤缩减为服务器租用和服务器调试两个步骤。如果使用PaaS或者SaaS服务甚至更简单。云上的扩展服务 云服务商是否可以在云平台上给应用提供更多更好的扩展服务,往往也是云平台的决胜关键。比如百度大脑这一类的服务,由于需要大量的基础性算法和大量的数据作为积累,这些人工智能领域的功能以前是小的软件开发商技术能力,或者财力以及数据积累都无法单独实现的。但是像这些多金的大厂是由能力进行研究并把服务开放出来的。这些服务被越来越多的中小软件开发商所接受,在逐渐地集成到他们的应用中。连通性和开放性 连通性主要是指云服务平台与互联网的连通性,比如是不是干网机房;云服务平台自己内部的数据中心之间的连通性;云服务平台与其他云服务平台或者IDC机房的连通性,以保证用户现有应用与云上的部分可以无缝对接。 开放性是指对使用云的用户的软件组件、技术平台、开发语言等的要求。这方面要求越低,就说明平台越开放。就越方便各种技术流派和技术架构的云用户使用这个云平台。按需付费 云上的服务都是采取按需付费的模式,计费粒度是否够细致,计费是否精确等等。都对云平台提出了较高的要求。因此,判断一个云平台的好坏,可以从以下几个方面考量:硬件条件、运行的服务和生态环境。硬件方面: 也就是常说到的IaaS Infrastructure as a Service,主要是看云服务商机房的品质、链路的品质和服务器的品质。 机房方面,要看云平台服务商的机房部署在哪些物理位置上,覆盖面是否够广泛?机房遵循的是国际上4代机房还是4.5代机房来构建?选址、安保、电路都是决定性要素。 链路上,要看数据中心的接入带宽以及接入服务商的服务能力和品质。要知道,在2010年以后,电信行业对国际数据链路的需求早已经不是主流,而由微软、谷歌和Facebook 各自组成的财团在大规模地在国际海域铺设光缆,目的就是为了联通各自散落在世界各地的机房节点。数据对链路的需求早已超过了电信语音对链路的需求。在这些方面,即使是AWS 这种企业也望尘莫及,毕竟家底还是薄了些,盈利也是最近的事儿。而拥有巨额现金的IT 巨人们对海底光缆的收购和投入是不遗余力的。 服务器的品质,这个不得不要鄙视一下中小型云厂商了。因为大厂门都是专业的定制化硬件,而不是成堆成堆地购买DELL、HP和浪潮的1U/4U 服务器。原因很简单,他们要尽量提高机房内的密度,降低机房能耗,以便摊薄运营成本。在一个地区,地价相对接近的情况下,在相同面积内谁能放下更多地CPU和内存以及存储,谁就占据着一次性投入的成本优势。谁家的CPU和内存能耗低,谁就占据着运营成本的优势。大型的云机房都是几万甚至十几万CPU核的量级,每个CPU核每天降低一瓦能耗,每年可以节约惊人的电费。阿里巴巴在千岛湖设置机房,也不是因为那里风景优美,而是为了可以把湖底的水抽上来给机房散热,降低空调用电成本。让千岛湖做真正的水煮鱼,至于对环境的影响,比如湖底水温上升多少度会让湖底藻类群落和鱼类产生什么样的变化,这就是一件谁也说不清楚的事儿了。运行的服务: 其实对于硬件上的差异,云用户是可以忽略的,因为毕竟云机房都相对地处偏远也不让参观,用户无法直观地感受到其中差异。 而软件上的差异是云用户可以直观感受到的。说到云平台上运行的软件,比如PaaS 和SaaS 这部分,绝大多数的小运营商和电信开设的『云机房』基本上都可以洗洗睡了。因为他们除了CPU 内存和存储容量以外也没法给云用户谈其他的了,没有技术储备的云服务商没有能力提供PaaS 和SaaS 层面的服务。但是对于云的直接用户来说,他们需要的可不仅仅就是CPU 和内存这些,他们需要有PaaS 平台帮他们快速构建应用,他们需要有一系列的工具来帮他们支撑DevOps和敏捷开发,他们需要有智能化的服务来帮助他们提升用户体验,他们需要大数据平台来支撑他们分析数据挖掘用户需求。如果这些都没有,那就只能呵呵呵了。 没错,构建云服务的基础性技术是虚拟化技术,但虚拟化技术并不等于云计算。虚拟化技术解决的是在一个物理机房内计算能力的调度。虚拟化技术是构建云服务的充分不必要条件。举个反例,如果说世界上顶尖的虚拟化服务提供商是VMware 恐怕没人反对吧?微软的Hyper-V随着操作系统免费送,恐怕都追不上收费的VMWare的市场占有率。但是为什么VMWare 没有成为世界一流的云服务提供商呢?原因很简单,不是它没钱,而是WMware 技术栈都集中在虚拟化技术上,没有形成从开发工具到测试部署和运维的完整技术栈,无法为云用户提供有效的支撑。所以VMWare 在公有云领域浅尝辄止了。 在这方面,微软主要是以自家的产品和商业软件形成了闭环,从整个ALM 基于云用户完善地支持。其它云服务商主要是以开源技术为主,基于Apache 的系列开源套件,配合Eclipse 等等IDE 以及Jenkins等等给云用户提供支持。生态环境: 用户和应用程序对云平台的需求是多种多样的,如果一个云服务提供商可以支持多种多样的应用共存,大家形成良好的共生关系,那么这样的云平台是完善和健壮的。它本身就像一座森林,而不是花盆里的一株绿植。 这里就不得不说一下Snapchat 和谷歌的关系了。由于谷歌是Snapchat的投资人,因此Snapchat 绝大部分的服务都跑在谷歌云上,并占据了谷歌云用量的很大很大一部分。在今年年初双方签署的备忘录上表明Snapchat未来5年还要至少在谷歌云上花20亿美元。Snapchat spending $2 billion over 5 years for Google Cloud | ZDNet 这种一家独大的局面会影响谷歌云的发展导向,会自觉不自觉的首先满足Snapchat的需求,会适应Snapchat的发展等等…… 这对中小型用户来说是不利的,除非你的应用模式和Snapchat一样,但是如果你复制了一个Snapchat,你的商业模型注定是要失败的,根据互联网7:2:1法则,老大占据70%的市场,即使你是老二有20%的市场份额,那也是没有前途的。结语:1. 云计算到底是什么? 说实话,云计算到底是什么,我也说不好。因为云计算还在不断地发展和演进过程中,人们在不断地为云计算赋予新的功能和含义,我无法用简单扼要的语言来概括云计算。2. 云计算未来会是什么样? 云计算未来会像水、电、互联网和煤气一样是一种公共服务资源,人们按需租赁和使用。它的便利性大大地促进了人们的创新实践。3. 怎样才算是一朵好云?个人以为有以下几个标准:a) 云平台是否是这家公司的主导战略性产品? b) 云平台是否拥有构建自身应用所需要的PaaS 服务?c) 云平台是否有支撑应用程序开发->集成->测试->部署->运维的一整套方法论、服务和工具?d) 云平台是否有良好的伸缩性和扩展性?e) 云平台是否有专业化的运营团队,7x24地支持客户解决遇到的问题?f) 这个云平台技术和服务是否还在演进?(意味着云平台服务商仍然在持续地研发和投入)
  • [技术干货] 如何将扩容系统盘的空白分区划分成新分区挂载到root目录下
    新创建一个CentOS6.5 64bit 100G系统盘的虚拟机,扩容部分竟然是空白分区,我们如何挂载到root目录下呢?1、查询虚拟机扩容情况。2、将扩容系统盘的空白分区划分成新分区3、重启虚拟机4、查询并核对新分区,并格式化文件系统5、在/root下新建一个目录6、查询新分区的uud,并在fstab里配置自动挂载7、查询并核实新分区挂载情况
  • [技术干货] 如何将扩容系统盘的空白分区在线扩容到末尾的root分区
    华为云默认系统盘是40G,创建虚拟机时可以扩容到1T,可是扩容部分默认是空白分区,如何将此空白分区在线(不重启虚拟机)扩容到root根分区?下边以CentOS6.5 64bit 50G系统盘为例,root分区在最末尾分区(e.g: /dev/xvda1: swap,/dev/xvda2: root)的扩容场景。1、查询当前虚拟机分区情况,已经识别出50G,并且根分区在做末尾2、用yum安装一个叫growpart的工具,growpart可能集成在cloud-utils-growpart/cloud-utils/cloud-initramfs-tools/cloud-init包里,可以直接yum install cloud-*确保growpart命令可用即可3、使用growpart将第二分区的根分区扩容4、检查在线扩容情况是否成功5、执行resize2fs -f $分区名, 在线将文件系统再拉升
  • [技术干货] 如何将扩容系统盘的空白分区在线扩容到非末尾的root分区
    华为云默认系统盘是40G,创建虚拟机时可以扩容到1T,可是扩容部分默认是空白分区,如何将此空白分区在线(不重启虚拟机)扩容到非末尾分区的root根分区?下边以CentOS6.5 64bit 100G系统盘为例,root分区在非末尾分区(e.g: /dev/xvda1: root,/dev/xvda2: swap)的扩容场景,这种场景比较麻烦,root分区的开始和末尾sector都写死了,在线扩容到root分区看似不可能的,但其实也很简单的。1、查询扩容系统盘分区情况,第一分区是根分区,第二分区是swap2、编辑fstab分区表将swap分区挂载删掉3、关闭swap4、删掉swap分区5、查询删除swap分区后的分区情况6、用yum安装一个叫growpart的工具,growpart可能集成在cloud-utils-growpart/cloud-utils/cloud-initramfs-tools/cloud-init包里,可以直接yum install cloud-*确保growpart命令可用即可7、使用growpart将第一分区的root分区扩容8、检查并核对扩容到root分区的情况,看看是不是成功了9、执行resize2fs -f $分区名, 在线将文件系统再拉升
  • [技术干货] 如何统一KVM和XEN虚拟机的磁盘分区盘符命名方式
    周所周知,XEN虚拟机的磁盘分区盘符命名是/dev/xvd*,KVM虚拟机的磁盘分区盘符命名是/dev/vd*,那么如何统一KVM和XEN虚拟机的磁盘分区盘符命名方式,使得统一个镜像在XEN和KVM下能兼容使用呢。1、以CentOS7.1为例,执行blkid命令获取根分区分区对应的UUID并记录下来,编辑/boot/grub2/grub.cfg文件,使用根分区的UUID来配置boot项。如果根分区已经使用UUID形式则不需要修改。修改前:说明: 根据/boot/grub/grub.conf配置文件里标记的根分区,找到root=/dev/xvda2,再根据blkid命令获取的分区对应UUID将root分区改成UUID形式root=UUID=4eb40294-4c6f-4384-bbb6-b8795bbb1130。修改后2、以CentOS7.1为例,执行blkid命令获取所有分区对应的UUID并记录下来,编辑/etc/fstab文件,使用分区的UUID来配置分区自动挂载。修改前修改后
  • [技术干货] 华为云ECS服务API使用指南(2) - 根据浮动ip过滤查询虚拟机列表
    背景今天收到一个客户求助,需要根据浮动ip(公网ip)列出所有的虚拟机,而OpenStack并没有提供直接的原子接口,所以我用vpc和ecs的接口做了一个实现。Region & Endpints[*]Region: cn-north-1[*]Keystone(IAM) Endpont: https://iam.cn-north-1.myhwclouds.com[*]Nova(ECS) Endpont: https://ecs.cn-north-1.myhwclouds.com[*]Neutron(VPC) Endpont: https://vpc.cn-north-1.myhwclouds.com实现参考文档[*]华为云地区和Endpoints参考: http://developer.hwclouds.com/endpoint.html[*]华为云ecs接口参考手册: http://support.hwclouds.com/api-ecs/zh-cn_topic_0020805967.html[*]华为云vpc接口参考手册:http://support.hwclouds.com/api-vpc/zh-cn_topic_0050065465.html[*]OpenStack Compute API Reference: https://developer.openstack.org/api-ref/compute/[*]OpenStack Networking API Reference: https://developer.openstack.org/api-ref/networking/v2/[*]OpenStack Pagination, Filtering, and Sorting: https://specs.openstack.org/open ... on_filter_sort.html
  • [技术干货] 云化场景下虚拟机链接方式VNC的实现原理
    什么是VNC? RealVNC让你远程遥控的电脑,RealVNC是VNC (Virtual Network Computing)众多操作平台版本中的一员,它可以安装在Windows中而让使用者在世界各地远端遥控自己的电脑,就算是遥控不同的操作平台也没有问题。 RealVNC VNC(Virtual Network Computing,虚拟网络计算)最早是一套由英国剑桥大学AT&T实验室在2002年开发的轻量型的远程控制计算机软件,其采用了 GPL 授权条款,任何人都可免费取得该软件。VNC软件主要由两个部分组成:VNC server及VNC viewer。用户需先将VNC server安装在被控端的计算机上后,才能在主控端执行 VNC viewer 控制被控端。 VNC server 与 VNC viewer 支持多种操作系统,如 windows,Linux,Ma** 及 Unix 系列(Unix,Solaris等),因此可将 VNC server 及 VNC viewer 分别安装在不同的操作系统中进行控制。RealVNC 的优越性还在于如果操作系统的主控端计算机没有安装 VNC viewer,也可以通过一般的网络浏览器(如 IE 等)来控制被控端(需要 Java 虚拟机的支持)。 整个 VNC 一般运行的工作流程如下: 编辑本段 (1) VNC 客户端通过浏览器或 VNC Viewer 连接至 VNC Server。 (2) VNC Server 传送一对话窗口至客户端,要求输入连接密码(可能为空),以及存取的 VNC Server 显示装置。 (3) 在客户端输入连接密码后,VNC Server 验证客户端是否具有存取权限。 (4) 若是客户端通过 VNC Server 的验证,客户端即要求 VNC Server 显示桌面环境。 (5) 被控端将画面显示控制权交由 VNC Server 负责。 (6) VNC Server 将把被控端的桌面环境利用 VNC 通信协议送至客户端,并且允许客户端控制 VNC Server 的桌面环境及输入装置。 VNC Enterprise Edition for Windows 是工业标准 VNC 的一个增强版本,提供了核心的 Enterprise Edition 安全增强,包括 2048 位 RSA 服务器验证和 128 位 AES 会话加密术,加上为 Windows 网络量身定做的许多其他的特性。 1.Windows 验证 —— 允许访问 VNC 服务器以便控制基于标准的 Windows 用户证书, 无论其是本地的、NT 域或者基于 Active Directory。 2.单一登录 —— 允许在一个域内部访问 VNC 服务器而不需要重新输入用户的名称和口令。 3.简单但有效的部署 —— 用 VNC Tool,即 VNC Deployment Tool for Windows 安装和 管理 VNC Enterprise Edition 服务器。 4.桌面缩放 —— 通过精确的比例缩放,或动态缩放为任何大小。 5.Windows 防火墙集成 —— 使 VNC Server 可以更直接的部署。 6.文件传输 —— 与 Windows 剪贴板结合,允许通过 VNC 连接在服务器和查看器计算机之间 复制文件而不需要额外的配置。 最好的就是,与 VNC Enterprise 系列的其他产品一样,VNC Enterprise Edition for Windows是由原始 VNC team 设计、开发和维护的 VNC(Virtual Network Computing,虚拟网络计算)最早是一套由英国剑桥大学ATT实验室在2002年开发的轻量型的远程控制计算机软件,其采用了 GPL 授权条款,任何人都可免费取得该软件。VNC软件主要由两个部分组成:VNC server及VNC viewer。用户需先将VNC server安装在被控端的计算机上后,才能在主控端执行 VNC viewer 控制被控端。 VNC server 与 VNC viewer 支持多种操作系统,如 windows,Linux,Ma** 及 Unix 系列(Unix,Solaris等),因此可将 VNC server 及 VNC viewer 分别安装在不同的操作系统中进行控制。RealVNC 的优越性还在于如果操作系统的主控端计算机没有安装 VNC viewer,也可以通过一般的网络浏览器(如 IE 等)来控制被控端(需要 Java 虚拟机的支持)。 整个 VNC 一般运行的工作流程如下: (1) VNC 客户端通过浏览器或 VNC Viewer 连接至 VNC Server。 (2) VNC Server 传送一对话窗口至客户端,要求输入连接密码(可能为空),以及存取的 VNC Server 显示装置。 (3) 在客户端输入连接密码后,VNC Server 验证客户端是否具有存取权限。 (4) 若是客户端通过 VNC Server 的验证,客户端即要求 VNC Server 显示桌面环境。 (5) 被控端将画面显示控制权交由 VNC Server 负责。 (6) VNC Server 将把被控端的桌面环境利用 VNC 通信协议送至客户端,并且允许客户端控制 VNC Server 的桌面环境及输入装置VNC实现的控制原理 1、屏幕控制原理 VNC是把被控制端的屏幕做成图像,经过压缩后传送到控制端 控制端的控制信息(如鼠标信息)传送到被控制端后进入消息队列 客户端 X服务器 应用程序 vnc viewerXvnc(vnc server)applications (vnc protocal) (X protocal) 其控制是基于tcp/ip的,其中vnc server扮演了双重角色.vnc protocal是基于RFB protocal的 2、截屏方式 VNC使用的截屏方式比较独特,它有两种方式,第一种是使用钩子自动报告需要截屏的区域,第二种是轮询某一个区域(如前景窗口).截屏后使用某种压缩算法压缩后发送.(有好几种可选) 3、传输方式 1.RFB协议传输: 在控之端不能直接改变显示大小,只能进行缩放,如缩放为原大小的几倍.原理是在远程机器上运行一个额外的X服务器,X服务器和客户机器都在远程跑。然后通过RFB协议用自己的客户端显示到本地 2.X协议: X 视窗系统提供了一个公开协议,由其客户程序可以查询和更新 X 服务器上的信息。X 视窗系统(X 协议)允许网络中不同计算机上的进程在其它网络显示器上显示内容。
  • [技术干货] 【教程】秘钥方式如何获取默认密码?
    创建虚拟机时选择的是秘钥方式,登录时如何知道正确的用户名和密码呢??没有关系,用默认用户/密码登录就好了!那么,如何知道默认用户是什么??如下所示:如果我创建了一个suse的虚拟机根本不知道root密码,怎么登录啊?[*]点击右下角[*]按图中方式依次点击切换到命令行模式后。。。上部提示的有默认用户名和密码啊!!!这不是什么奇怪的系统提示,请不要视而不见。当然,登录后还是要仔细阅读提示修改密码(也很重要!)那么,如果我是秘钥方式创建windows虚拟机呢??点击虚拟机右边的更多下拉框看到了吗,获取密码的方法就在这里!上传自己的秘钥,稍等片刻,就可以获得密码了(我才不会告诉你我输了三遍随机密码才登录成功)
  • 【虚拟化学习】虚拟化系列介绍(一)
    本系列初步构思有五篇文章,主要介绍网络虚拟化,存储虚拟化,服务器虚拟化,桌面虚拟化和应用虚拟化。 先从我们大多数人较熟悉和常用的服务器虚拟化开始。这里所说的服务器虚拟化,包含服务器操作系统的虚拟化,也包含办公娱乐操作系统的虚拟化,说白了就是对各种操作系统的虚拟化,我们用户使用到的虚拟机(VM,Virtual Machine)。一、云计算 在谈论虚拟化之前,却有必要说明一下云计算。 云计算,这个名词如今已是大红大紫,但现在还没有权威的具体的定义。我反复查找资料,看到美国国家技术和标准研究院(NIST)有一个定义供参考。 “云计算是一个提供便捷的可通过网络访问一个可定制的计算资源池的服务模式(计算资源包含存储,网络,服务器,应用和开发等);这些资源能够快速部署,并只需要很少的管理工作或与服务供应商很少的交互。” 上面一段话理解起来有点深奥晦涩,在这里我仅罗列云计算的一些特点,(我个人理解的云计算)具有如下一些特点: 资源池化 按需使用 自助服务 虚拟化和网络化 高效率和低能耗 可扩展和可度量 任意设备和便捷访问 虽然目前业界对云计算没有完整权威定义,但当今云计算的具体服务模式,却显而易见的有以下三种方式: 基础设施即服务 Infrastructure as a Service,IaaS 平台即服务 Platform as a Service,PaaS 软件即服务 Software as a Service,SaaS 我说了这么多废话,大家好像也没看出与今天要探讨的虚拟化有多大关系,诸位且慢,请看下图一所示。(图一、虚拟化与云计算架构) 可见虚拟化是云计算的基础,离开了虚拟化,可以说云计算必然成了无源之水无本之木。二、虚拟化 那什么是虚拟化呢?较学术的解释如下: “一种对不同计算资源进行隔离、去耦合的过程。” 照我的理解,就是实现软件与硬件无关(也可以说是把硬件标准化),这样就达到操作系统和软件资源可在不同物理硬件之间移动和运行的目的。三、虚拟化架构 当今用于服务器虚拟化的体系架构,归纳起来可以说有如下图二所示的三种:(图二、常见的三种虚拟化架构) 这里面涉及到一个叫VMM的层,我们称其为虚拟机监控器(Virtual Machine Monitor),它主要是实现多个独立实例共享同一底层硬件资源。 最左边的,可以叫程序虚拟化,常见的就是Java虚拟机,它隔离特殊进程,为其创造运行环境,达到与操作系统无关,程序不必为特定的操作系统或硬件编写。 中间的这种,我们可以说是混合虚拟化,就是在操作系统底层(Ring0)加入相应驱动,但还与操作系统应用层(Ring3)有交互,也就是说虚拟化管理层是运行在主机操作系统之上,依靠主机操作系统来模拟硬件设备,以便在其上运行虚拟机,其优点是对物理硬件要求低,但是性能相对差。常见的例子有微软的Virtual PC/VirtualServer;VMware的VMware Workstation/VMware Server;VirtualBox等。 最右边的,可以说是真正的虚拟化,有的称其为裸金属架构。他是直接在硬件上跑虚拟化管理层,其优点是性能比较好。裸金属架构的虚拟化管理层,一般叫做Hypervisor,它一般运行在Ring1层(进一步解释见下一段落)。常见的有VMware ESX Server,微软的Hyper-V(微软2003年收购Connectix后获得的技术发展而来),思杰的XenServer(源于英国剑桥大学计算机实验室开发的一个Xen虚拟化开源项目)。 该体系架构最初有牛哄哄的IBM于上世纪60年代设计,主要是用于大型机的。事实上要实现虚拟化,还得处理器硬件支持。x86 处理器有 4 个特权级别:Ring 0 ~ Ring 3,只有运行在 Ring 0 ~ 2 级时,处理器才可以访问特权资源或执行特权指令;运行在 Ring 0 级时,处理器可以访问所有的特权状态。x86 平台上的操作系统一般只使用 Ring 0 和 Ring 3 这两个级别,操作系统内核等运行在 Ring 0 级,用户进程运行在 Ring 3 级。为了避免来宾操作系统控制系统资源,Hypervisor不得不降低自身的运行级别,一般运行在 Ring 1级(Ring 2 不使用)。x86处理器硬件起先并不带有虚拟化功能(主要就是实现Hypervisor运行在 Ring 1级),在2005年与2006年,英特尔与AMD分别在它们的x86架构上实现和硬件支持虚拟化。四、裸金属架构的区别 如上所述,即使是裸金属架构的虚拟化,它也有一个VMM的层,一般又叫做Hypervisor,并且一般运行在Ring1层。主要代表有VMware ESX Server和微软的Hyper-V。但他们两家也还有一些不同之处。如下图三所示。(图三、胖廋虚拟化比较) VMware ESX Server由于把底层物理硬件的驱动程序整合到Hypervisor管理层中,所以管理层显得比较胖,我们不妨称其为胖虚拟化。这种架构对底层物理硬件的要求比较高,稳定性和安全性的挑战比较高。 微软的Hyper-V,Hypervisor管理层仅用于管理CPU和内存,而不包含底层物理硬件的驱动程序,所以管理层显得比较瘦,我们不妨称其为瘦虚拟化。由于不包含硬件驱动,所以代码量比较小,安全性更高、稳定性也更好,更进一步的介绍请看下一章节分解。五、Hyper-V介绍 微软的Hyper-V架构如下图四所示。(图四、Hyper-V架构) Hyper-v架构相关术语 除了独立版本的Hyper-V服务器之外,一般的微软Hyper-V都需要一个父分区,其中运行支持Hyper-V的服务器操作系统或桌面操作系统。 父分区中的虚拟化堆栈可以直接访问物理设备,通过父分区,可以创建子分区并在其中运行来宾操作系统(Guest Operating System,Guest OS),各个子分区的虚拟内存空间都是相互独立的。Hypervisor层(图中Microsoft Hyper-V层)执行处理器中断。 子分区不能访问其他任何物理资源,它们通过虚拟设备的方式来访问硬件,对于虚拟设备的请求,通过VMBus或者Hypervisor层来转到父分区,交由父分区代为处理。 在父分区运行的虚拟服务端程序(VSP)通过VMBus处理来自子分区的设备请求。在子分区中运行的虚拟服务用户端(VSC)通过VMBus将请求交给VSP来处理。这些操作的过程,对Guest OS来说,都是透明的。 VMBus:运行在物理机共享内存里的虚拟机高速总线,通过VMBus,子分区里的所有硬件请求可以通过VMBus快速的递交给父分区,然后由父分区来完成相应硬件的调用。它是支持即插即用的总线,如在物理机里**的SCSI设备、网卡支持VMBus的显卡。那么,安装在Hyper-v的虚拟机将会自动的加载挂载在VMBus里的相应硬件驱动,从而供虚拟机使用。 VSP:全称Virtual Services Provider即虚拟服务提供程序,它是和VMBus相关的两个进程之一。它存在于父分区中,用来监听来自于VMBus数据的请求,然后把这些请求通过物理机里的I/O堆栈直接转到相应的硬件驱动程序上参与Hypervisor直接交接到相应的设备上去。VSP它支持多路复用技术,即可以监听来自多个物理机上多个虚拟机的硬件调用通信,如物理机上只有一个显卡和对应的VSP,但是VSP可以处理来自多个虚拟机上的显卡的请求。然后通过VMBus来进行相应转发。 VSC:全称Virtual Services Client即虚拟机服务客户端,它是和VMBus相关的另一个进程。它存在于子分区中,用来监听虚拟机里应用程序对虚拟机里的I/O堆栈所发送的设备请求,让后把请求转换为VMBus能够识别的数据格式,让后再发送到VMBus上,最后再转发给相应的VSP,VSP再转给相应的硬件驱动。从而完成虚拟机上应用程序对硬件的调用。 VM Worker Process(工作者进程):用来和每个子分区(虚拟机)进行一一绑定从而来进行虚拟机之间的隔离。 WMI Provider(windows 管理接口提供程序):提供对虚拟机进行管理的windows管理接口。 VM Services(虚拟机服务):虚拟机相对应的服务进程。 HyperCall Adapter(虚拟设备):支持VMBus的设备。Emulation(模拟设备):不支持VMBus的设备。 在Hyper-V的技术架构上,子分区分为三类: 1、运行Windows操作系统并有Hyper-V意识。 2、运行非Windows系统并有Hyper-V意识,需要HyperCall Adapter(虚拟设备),支持VMBus的设备。 3、无Hyper-V意识,可能运行Windows或非Windows操作系统;即Emulation(模拟设备):不自持VMBus的设备。 这三类分区的区别在于: 1类分区可以使用VSC和“Enlightenments”获得最好的性能和全部Hyper-V特性;通信过程见如下图五所示。(图五、全Hyper-V意识) 2类分区可以通过VSC和第三方驱动实现较高的性能和部分Hyper-V特性;通信过程见如下图六所示。(图六、部分Hyper-V意识) 3类分区只能通过模拟设备访问硬件资源,效率较低;造成其效率低,主要是因为其模拟器效率低下,通信过程见如下图七所示(不使用高速虚拟总线VMBus通信)。(图七、无Hyper-V意识) 什么叫Hyper-V意识?从当前微软给出的资料来看,经过“启蒙”(Enlightenments)的操作系统,可以和Hpyer-V结合度更高,获得最好的性能和全部Hpyer-V特性。这里个人理解,“启蒙”的含义主要就是来宾操作系统能否直接识别、支持Hyper-V的标准硬件(也就是说直接驱动);是否支持Hyper-V的某些核心技术;还有是否支持CPU等硬件的某些最新技术,如CPU支持二级地址转换( SLAT: Second Level Address Translation)。六、写在最后 本文首先从云计算、虚拟化入手,介绍了三种当今常见虚拟化技术架构,再分别描述了裸金属架构下两种实现方式的优缺点,最后稍详细的介绍了Hyper-V下的三种来宾系统情况。因作者个人的开发测试环境已经从Virtual PC/VMware Workstation转移到Windows8的Hyper-V下,效果极度完美,老是有人问及什么条件下才可尝鲜一把Windows8的Hyper-V,现写在下面,也算是结尾。 软件方面: 除了主板BIOS有无开启CPU虚拟化功能选项外;Windows8,要具有虚拟化,操作系统必须是64位的专业版或企业版。 硬件方面: 1、 需要一个 64 位处理器; 2、CPU支持虚拟化。包括虚拟化选项(具体来说是 Intel 虚拟化技术 (Intel VT) 或 AMD 虚拟化 (AMD-V) 技术)的处理器提供此功能。 3、硬件强制实施的数据执行保护 (DEP) 必须可用且已启用。具体地说就是,你必须启用 Intel XD 位(执行禁用位)或 AMD NX 位(无执行位)。 4、CPU支持二级地址转换( SLAT: Second Level Address Translation)。如果是Windows 2008R2/2012等开启Hyper-V不需要此功能。
  • 【虚拟化学习】虚拟化系列介绍(二)
    对服务器虚拟化技术的补充 在2013年3月9号发表的文章中谈到了虚拟化,主要介绍了程序虚拟化(常见的就是Java虚拟机);混合虚拟化(常见的有微软的Virtual PC;VMware的VMware Workstation;VirtualBox等)和裸金属架构虚拟化(常见的有VMware ESX Server,微软的Hyper-V(微软2003年收购Connectix后获得的技术发展而来),思杰收购的XenServer(源于英国剑桥大学计算机实验室开发的一个Xen虚拟化开源项目))。 后来有人问及还有全虚拟化,半虚拟化,操作系统虚拟化等,然后说我是不是搞错了,搞混了。其实我想说你们没有错,多种名词和说法可以,我的那种说法也是对的——问题的主要原因,是“横看成林侧成峰,远近高低各不同”,“仁者见仁,智者见智”,也就是说看法和角度不同而已。 下面我再对全虚拟化,半虚拟化,操作系统寄生虚拟化等给予说明。 程序虚拟化和混合虚拟化,一般都不能用在服务器、数据中心层面的,为什么:效率太低,依赖性太大,不用多说。 能用在服务器、数据中心层面的虚拟化技术,硬要分类,可以说有裸金属架构虚拟化(典型的代表就是常见的有VMware ESX Server,微软的Hyper-V,思杰的XenServer)和寄生内核虚拟化(典型代表是KVM,Kernel-based Virtual Machine,意为基于内核的虚拟机;2008年9月,红帽收购了名叫Qumranet的以色列公司得到KVM的虚拟化技术;VMWare现在也朝着内核寄生架构走,因为他的Hypervisor需要管理),两者区别简单表示如下图八所示。(图八、络金属架构虚拟化和寄生内核虚拟化) 可见,这种基于内核的虚拟化技术性能稍低前者,因为至少多了一层开销。 同时我也谈及VMware ESX Server由于把底层物理硬件的驱动程序整合到Hypervisor管理层中,所以管理层显得比较胖,我们不妨称其为胖虚拟化。这种架构对于底层物理硬件的要求比较高,兼容性和安全性的挑战比较高。 微软的Hyper-V,Hypervisor管理层仅用于管理CPU和内存,而不包含底层物理硬件的驱动程序,所以管理层显得比较瘦,我们不妨称其为瘦虚拟化。由于不包含硬件驱动,所以代码量比较小,安全性更高、兼容性也更好。 也就是说,从Hypervisor层来看,又可分为胖虚拟化和搜虚拟化。 另外,从支持的来宾操作系统和性能上来说,又可以分为半虚拟化,全虚拟化。下面给予说明。 半虚拟化(ParaVirtulization) 简介:它利用CPU的虚拟化技术来实现Hypervisor对底层硬件的共享访问,但是由于在Hypervisor 上面运行的来宾操作系统已经集成与半虚拟化有关的代码,使得来宾操作系统能够非常好地配合Hyperivosr来实现虚拟化。通过这种方法将无需重新编译或捕获特权指令,使其性能非常接近物理机,其最经典的产品就是微软的Hyper-V,思杰的Xen,可见对应上面的廋虚拟化。 优点:这种模式和全虚拟化相比,架构更精简,而且在整体速度上有一定的优势。 缺点:需要对来宾操作系统进行修改,所以在支持的来宾操作系统方面比较少。 全虚拟化(FullVirtulization) 简介:它与半虚拟化有一些类似,它也利用Hypervisor在客户操作系统和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使客户操作系统无需修改就能运行,速度会根据不同的实现而不同(它有借助CPU硬件的技术实现,也有软件完全模拟的部分),大致能满足用户的需求。这种方式有KVM,VMware ESX,可见对应上面的胖虚拟化。。 优点:无需修改就能支持几乎所有的来宾操作系统,也就是说兼容性不错。 缺点:因为某些部分有模拟的功能,所以I/O和性能方面相对前者较差。 两者的差别,可以用下图九合图十表示。(图九、半虚拟化)(图十、全虚拟化)原创作品,允许转载,转载请先联系后台管理员
  • 【虚拟化学习】虚拟化系列介绍(三)
    本文主要介绍网络虚拟化。一、为什么要有网络虚拟化 云计算已经扑面而来了,而云计算的一个重要基础就是把网路,存储,计算资源等虚拟化,池化后等,才能达到按需使用,自动智能,动态调节,高可用性,可管理性等等目的。所以,如果传统的接口线路,交换路由,访问控制等不进行整合,即使应用、桌面和服务器等都虚拟化了,但还受制于下面的网络而无法满足云计算,功亏一篑,实为憾事,所以网络也不得不虚拟化。 服务器虚拟化能让多个服务器实例在同一台物理主机上同时运行,并且各个服务器实例都是相互独立的;每台虚拟机都“以为”自己是在一台物理计算机上运作。网络虚拟化也有类似的功能,即多个虚拟网络在同一个物理网络上运行(可能有重叠的 IP 地址),但每个虚拟网络也“以为”只有自己在一个物理网络基础结构上运作。二、网络虚拟化与软件定义网络 个人理解“网络虚拟化”与“软件定义网络”(SDN,Software Defined Network)当然不是同一个概念,应该说前者包含后者,后者只是前者的一种实现方法,后者就是用软件来管理和制定虚拟网络。 当然,网络虚拟化这东西本身并不是突然冒出来的新鲜玩意,可以说他早已有之,VLAN,VPN等都可以说是网络虚拟化的一种表现或应用。三、软件定义网络的介绍 而SDN是软件定义网络的简称,其核心理念是使网络软件化并充分开放,从而使得网络能够像软件一样便捷、灵活,以此提高网络的创新能力。一般来讲,SDN前身是斯坦福的用于企业集中安全控制的一个叫Ethane 项目发展而来。2008年斯坦福大学其命名为OpenFlow,后经由斯坦福项目推广,当前SDN 已逐渐成为了学术界、工业界以及标准化组织广泛关注并讨论的热点。下图一是SDN的架构。 由上面的SDN 架构的逻辑视图可以看出SDN 的基本网络要素: 逻辑上集中的SDN 控制器,它是基于软件的控制器,负责维护全局网络视图,并且向上层应用提供用于实现网络服务的可编程接口; 控制应用程序,该程序运行在控制器之上,通过控制器提供的全局网络视图,控制应用程序可以把整个网络定义成为一个逻辑的交换机,同时,利用控制器提供的应用编程接口,网络人员能够灵活地编写多种网络应用,如路由、多播、安全、接入控制、带宽管理、流量工程、服务质量等; 转发抽象,转发抽象是SDN 控制器通过利用SDN提供的转发平面的网络抽象来构建全局网络视图。 由此可知SDN 的基本特征: 1、控制与转发分离。转发平面由受控转发的设备组成,转发方式以及业务逻辑由运行在分离出去的控制面上的控制应用所控制。 2、控制平面与转发平面之间的开放接口。SDN 为控制平面提供开放的网络操作接口,也称为可编程接口。通过这种方式,控制应用只需要关注自身逻辑,而不需要关注底层更多的实现细节。 3、逻辑上的集中控制。逻辑上集中的控制平面可以控制多个转发面设备,也就是控制整个物理网络,因而可以获得全局的网络状态视图,并根据该全局网络状态视图实现对网络的优化控制。四、巨头博弈和标准 网络虚拟化是IT巨头间一场微妙的博弈,涉及标准、利益和生态圈。 2011年9月份,一个以微软公司为首、Arista、英特尔、戴尔、惠普、Broadcom和Emulex的企业团队宣布了一个针对NVGRE(使用通用路由封装的网络虚拟化)的IETF(互联网工程任务组)RFC(请求评议)草案。这是一个网络虚拟化标准框架草案,通过这个框架,用户可以使用第三层通用路由封装(GRE),实现公有云和私有云中的多租户功能和虚拟机移动性。 另一方面,由思科、VMware、Citrix、红帽、Arista和Broadcom提出的VXLAN标准,实际上都使用封装策略来创建大量的VLAN子网。 NVGRE和VXLAN二者都旨在实现在云和专有网络**享负载均衡的多租赁网络。 Google和Facebook于是作为支持OpenFlow的领头羊,积极参与Open Networking Foundation(ONF)的标准化制定和推广活动。 传统网络提供商也不得不与时俱进,否则很可能被大客户们绕开自行开发。网络虚拟化新兴公司Nicira把握住了时代机遇,与Openstack(一开源云计算平台)深度整合,为包括eBay在内的很多巨头提供解决方案。已经在服务器虚拟化市场尝到甜头的VMware在2012年6月以12.6亿美金并购当时营业额仅1千万美金的Nicira。 好了,今天就到这,下一篇介绍一些个工作中已经在用的微软的网络虚拟化技术。原创作品,允许转载,转载请联系后台管理员。
  • 【虚拟化学习】虚拟化系列介绍(四)
    接上篇,前面都谈及太多行情和空洞的标准,下面基本上完全参考微软资料,给出个人已经学习,工作已经使用了微软的网络虚拟化技术介绍。四、微软的软件定义网络 在过去传统的IT中,网络由其物理拓扑结构,即服务器、交换机和路由器的连接方式定义。也就是说,一旦您完成网络建设建,之后进行任何变更都将过程复杂,麻烦臃肿。显然这类网络与无人值守数据中心或需要灵活支持不同工作负荷需求的云环境的理念背道而驰的。 微软软件定义网络的起源 众所周知,微软有有多年为 Bing、**mail 和 Windows Azure 等产品和服务运营大量数据中心的经验。这一经验让微软了解了数据中心网络设计中的几项重要原则: 1、自动化至关重要:微软发现绝大多数网络中断都是由于人为错误而导致的。因此,应以自动化的方式来配置并管理网络。 2、多租户环境要求确保网络的灵活性:在诸如 Windows Azure 等环境中,客户希望能够轻松处理其工作负荷。他们不希望为了迁移到云而变更 IP 地址或其他网络设置。即使多个租户在共享一个网络,云环境也需要能够为每个租户提供专有网络的体验。 3、集中控制可有效降低复杂度和提高可靠性:根据微软的经验,虚拟机的安置需由了解工作负荷需求、硬件容量和虚拟网络的中央管理实体推动。由于此中央管理实体负责终端主机策略的分发,因此,它也是负责协调支持虚拟机放置所需网络变更的最佳人选。这种控制方式可降低网络中策略不一致的可能性,减少SDN 策略广播的延迟,并简化配置和管理工作。 微软的软件定义网络的功能: 微软认为需要软件定义的网络 (SDN),网络环境可经由软件动态配置,适应不断变化的需求。能实现以下功能: 1、创建在物理网络之上运行的虚拟网络。 2、在数据中心控制内部流量。例如有些类型的流量可能需要被转发到一些特定的设备(或虚拟机)进行安全分析或监测,创建相应的策略来保证其所需的带宽或流量不超过一定上限。 3、创建可涵盖物理网络和虚拟网络的集成式策略。例如部署通用的安全配置文件,或者在物理交换机和虚拟交换机之间共享监测和计量基础结构。五、微软的软件定义网络组成部分 微软的 SDN 方案由几个不同的功能组成。 1、Hyper-V 具有在共享物理网络上创建多租户虚拟网络的功能,因而可提供相当的网络灵活性。每个租户可获得一个完整的虚拟网络,其中包括多个虚拟子网和虚拟路由。 2、VMM 在Hyper-V 网络虚拟化自动化配置 SDN 策略的过程中的枢纽。在 VMM 中,您可以按需定义并即时创建租户虚拟网络。VMM 将负责分配虚拟机的工作负荷,并将必要的 SDN 策略应用至主机,以创建这些虚拟网络。通过一同应用虚拟机放置决策和 SDN 策略更新,VMM 可提供较高程度的自动化和集中控制,充分满足我们对数据中心体验的要求。 VMM可让客户将数据中心内每个 Hyper-V 主机上的各个虚拟交换机统一成一个分布式的逻辑交换机,由 SDN 流量控制策略动态编程控制。例如,您可为一组虚拟机定义一个配置文件来包括所需的安全和带宽控制策略,VMM会在虚拟机启动时自动为其所在虚拟网络的虚拟交换机应用相应的配置文件。当虚拟机在虚拟网络间迁移时,相应的配置文件将随之自动迁移。本质上来说,管理员仅需为数据中心定义单一的逻辑交换机,使用 VMM 来自动完成对所有主机/虚拟机策略的部署,以确保 SDN 策略的一致性,并实现上文中描述的集中式控制。 3、可扩展式交换机。在 Windows Server 2012中的Hyper-V 可扩展交换机可为微软的合作伙伴提供一个扩展 SDN 策略的平台。这一扩展性最常见的使用案例在于将虚拟交换机与其余物理网络基础结构的集成。例如 NEC 将 Hyper-V 交换机与 OpenFlow 控制器集成。NEC OpenFlow 控制器精准定义了从源虚拟机到目标虚拟机的流量路由方式应经由网络完成;NEC 解决方案与 Hyper-V 网络虚拟化充分兼容,Hyper-V 网络虚拟化定义了虚拟网络内的源虚拟机和目标虚拟机。NEC 解决方案可让用户轻松配置虚拟设备,例如负荷均衡器、侵入检测系统和网络监测解决方案。如下图一所示。(图一:Hyper-V的网络可扩展)六、微软的具体实现细节 在 Hyper-V 网络虚拟化中的每个虚拟网络适配器都与两个 IP 地址相关: 客户地址 (CA) 由客户基于其内部网络基础结构所指定的 IP 地址。通过这一地址,客户可与虚拟机交流网络流量,如同未移到一个公有或私有云中一般。CA 对虚拟机是可见的,并且可由客户访问。 供应商地址 (PA) 由主机或数据中心管理员基于其物理网络基础结构所指定的 IP 地址。PA 出现在网络上的数据包中,这些数据包可与托管虚拟机的 Hyper-V 服务器进行交换。PA 在物理网络上是可见的,但在虚拟机上不可见。 CA 维护着客户的网络拓扑,该网络拓扑经过虚拟化,可采用 PA 的实施方式,从实际的基础物理网络拓扑中脱离出来。下图二展示了因网络虚拟化而在虚拟机 CA 与网络基础设施 PA 之间所建立的概念关系。(图二、通过物理基础结构实现网络虚拟化 ) 在该图中,客户虚拟机在 CA 空间中发送数据包,并通过自身的虚拟网络或“隧道”遍布物理网络基础结构。在以上示例中,通道被想象成带有绿色发货标签(PA 地址)的蓝色和红色数据包的“封套”,从左边的源主机发送到右边的目标主机。关键在于主机如何确定与蓝色和红色 CA 相对应的“发货地址”(PA 地址)、“封套”如何套在数据包上、目标主机如何打开数据包并将数据包正确发送到蓝色和红色目标虚拟机上。 这一简单的类比突显出网络虚拟化的重要方面: 1、将每台虚拟机的 CA 映射到物理主机的 PA。 2、根据映射,将虚拟机在 CA 空间中发送的数据包放置在一个含有 PA 源和目标对的“封套”中。 3、CA-PA 映射必须允许主机为不同的客户虚拟机区分数据包。 因此,网络虚拟化机制旨在将虚拟机使用的网络地址虚拟化。下一部分将描述地址虚拟化的实际机制。 通过地址虚拟化实现网络虚拟化。Hyper-V 网络虚拟化支持以下两种机制来实现 IP 地址虚拟化: 1、Generic Routing Encapsulation 第一种网络虚拟化机制将 Generic Routing Encapsulation (NVGRE) 用作通道报头的一部分。这种地址虚拟化机制的模式是专为大多数部署 Hyper-V 网络虚拟化的数据中心而设计的。在 NVGRE 中,虚拟机的数据包被封装在另一个数据包中。如图 3 所示,新的数据包报头含有合适的源和目标 PA IP 地址,另外还有存储在 GRE 报头密钥字段中的虚拟子网 ID。(图 3:网络虚拟化 – IP 地址重写) 包含在 GRE 报头中的虚拟子网 ID 可让主机为任何指定的数据包确定客户虚拟机,尽管数据包上的 PA 和 CA 出现重叠。这可让同一台主机上的所有虚拟机分享一个 PA(如图 3 所示)。 共享 PA 对网络可扩展性产生很大的影响。网络基础设施必须知悉的 IP 和 MAC 地址数量得以大幅减少。例如,如果每台终端主机平均有 30 台虚拟机,网络基础设施需要知悉的 IP 和 MAC 地址数量将减少到三十分之一,数据包中嵌入式虚拟子网 ID 还能轻易地将数据包与实际客户联系起来。 使用 Windows Server 2012,Hyper-V 网络虚拟化完全支持即开即用的 NVGRE;不需要升级或购买新的网络硬件,如 NIC(网络适配器)、交换机或路由器。因为在线 NVGRE 包是 PA 空间中的常规 IP 包,可与当前的网络基础结构相兼容。 2、IP 重写 第二种由 Hyper-V 网络虚拟化支持的虚拟化机制是 IP 地址重写。在此模式下,当数据包离开终端主机时,将用对应的 PA 地址,对源和目标 CA IP 地址进行重写。同样,当虚拟子网数据包进入终端主机时,先使用适当的 CA 地址对 PA IP地址进行重写,再将 CA 地址传送到虚拟主机。图 4 展示了使用 IP 地址重写的虚拟机数据包。除数据包格式外,IP 重写与 NVGRE 之间的主要区别在于 IP 重写模式需要每台虚拟机拥有独特的 PA,以便将虚拟机与使用重叠 IP 地址的不同客户区分开来。因此,IP 重写需要每台虚拟机 CA IP 地址有一个 PA,而 NVGRE 仅要求每台主机有一个 PA。(图 4:网络虚拟化 – NVGRE 封装) IP 重写主要用于特定的情况,即虚拟机在当前现有的硬件上的工作负荷会需要或消耗极高的宽带吞吐量(约为 10Gbps)。现有网络硬件减荷技术,比如大量传送减荷 (LSO) 以及虚拟机列队 (VMQ) 能如期在现有网络适配器上运作。这些减荷方法能为网络负荷高的情况提供极大的好处,尤其是在 10GbE 的环境下。同时,交换机上的多路径路由(如等价多路径 ECMP)可继续如期运作。 NVGRE 还是 IP 重写? 对于大多数 Hyper-V 网络虚拟化部署,推荐使用 NVGRE 虚拟化机制。NVGRE 与当前的数据中心网络硬盘设施兼容,并且随着人们意识到 NVGRE 可用于商业中,它将带来更多的益处。IP 重写主要用于特定的情况,即当前虚拟机需要 10Gbps 宽带,无法等到 NVGRE 感知硬件的出现。原创作品,允许转载,转载请联系后台管理员
总条数:510 到第
上滑加载中