Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
1)什么是虚拟化
虚拟化技术很早就提出来了,但是真正走向市场是从2005年以后,那时候AMD和Intel公司都开始推出支持虚拟化技术的CPU。简单的说,虚拟机就像一个软件容器,可以安装操作系统和应用软件,像一台物理机一样运行,其有如下特点。
- 操作系统和软件无法辨别其主机是否是虚拟机。
- 多台虚拟机器像应用程序一样可以运行在主机上
2) 虚拟化技术的优势
2.1) 提高硬件的利用率
根据调查数据,通常测试实验室的硬件的使用率是很低的,平均只有10%,通过虚拟化技术可以使利用率提高到80%。
* IDC 的数据中心趋势调查,2007 年。
2.2) 低碳生活
降低数据中心的成本(省电/空间),能源成本降低 80%。大部分机器5-15%时间处于使用状态,而空闲状态耗电量为满负荷60%以上。
2.3) 高管理性
通过虚拟化技术,计算机的管理(虚拟机)的管理变得更加简单,创建、修改一个计算机的操作可以瞬间内完成。这种高管理型有助于推动基础设施服务化(Infrastructure as Service)的发展。目前,有很多云计算的基础设施都是大规模使用了虚拟技术。
大家可能对SaaS都比较熟悉,这里我解释一下IaaS和PaaS。
基础设施作为服务(IaaS):计算机资源通过服务的方式提供出来,包括处理能力,存储和网络能力等等。
平台作为服务(PaaS):平台和工具能通过平台或API方式提供出来,提供更加高层次服务,例如数据库存储服务,J2EE服务,.NET平台等。
3. 虚拟化给软件测试带来的好处
通过虚拟化技术,软件测试可以获得很多好处,以下就是一些例子;
3.1)测试实验室(Test Lab)的建立
- 空间
- 时间
- 电力
如图所示的一个例子:168 台式机,被12个服务器主机代替。省空间,省电,方便管理,大大降低了测试实验室建设的成本。
大部分的测试环境对测试机器的性能要求都不是很高(性能测试除外),那么对于这种情况,虚拟机是非常适合的解决方案。虚拟机可以用于测试实验室(Test Lab)的构建,支持自动化测试,也可以为远程的测试和开发人员提供机器服务。
举例来说,一个网站的测试,需要10个手工测试人员进行,那么我们可以创建10个虚拟计算机,那么只需要1-2个主机就行了,并且支持远程工作,那么这些手工测试人员可以在家里进行工作。
3.2) 软件快速部署和连续集成
虚拟机的管理是非常方便,这大大促进了快速部署(Fast Deployment)和连续集成(Continual Integration)。举例来说,在连续集成的时候,往往需要大量机器,并且快速恢复到某个系统的初始状态。虚拟化技术的高管理性能够很好满足这些需求,同时成本比物理机器要低很多。
3.3)测试用例失败后的调查
在测试用例失败后,通过保存机器状态,可以方便问题的调查。如果使用物理机器,这些机器就需要被占用,一直到问题调查完毕。而且,调查的状态具有不可恢复性。如果使用虚拟化技术,计算机状态可以被保持到到文件;在需要调查问题时,随时可以把虚拟机文件恢复到虚拟机进行调查;同时机器的状态可以随时保存,随时恢复,这给一些不容易重现的问题提供了有利的调查方法。
3.4)虚拟硬件的使用
虚拟化不仅仅可以模拟软件,也可以模拟硬件,包括网卡,光驱,USB接口等等。特别是USB接口的虚拟化,使得在很多USB设备驱动的测试提供了便利。另外一个例子是虚拟光驱,Vista开发出来后,安装以前的方法要制作DVD光盘来进行最后的验证。按照传统的做法,需要180张DVD光盘,需要花2个星期。而使用虚拟化解决方案,制作ISO 映像,只需要2天时间。
4 虚拟化过程中一些好的实践
4.1 仔细设计网络拓扑结构
对于一些对网络特别要求的实验室,需要仔细设计网络Top结构,特别是IP地址的数量
4.2 选购主机,注意扩展性
主机的选购需要考虑内存的扩展能力,内存大小很容易成为增加虚拟机的一个瓶颈。当机器映像很多的时候,磁盘空间也容易出现紧张。网络速度也是需要考虑。
4.3) 仔细考虑一些特殊需求的测试
a) USB/驱动 b) 3D效果 c)能源管理 d)性能测试结果的分析应该考虑到虚拟的使用的范围和局限性。
4.4) 自动保持闲置的虚拟机
实验室中有长期不用的虚拟机,可以定时自动保存起来,需要时以后可以再恢复。这样可以提高系统的效率,降低能耗。保存和恢复机器都是需要时间的,其性能和网络的存储位置有很大关系。
总结,虚拟化作为一个重要的技术,不仅仅可以节省成本,而且可以帮助我们保护蓝天,何乐而不为呢?