2014年1月, 嵌入式开发

Simics上的开放虚拟化,让复杂的工作变得更容易——Michael Barabanov的采访

由雅各布Engblom

jakob-engblom-intro-picture

拥有正确的工具可以使任何工作变得更容易。在这次采访中,来自我们风河工程团队的Michael Barabanov描述了如何使用西米奇他以不同的方式处理一些工程问题,并且能够用风河开放虚拟化oVirt。的风河开放虚拟化是基于Wind River Linux和增强KVM的嵌入式系统的虚拟化解决方案。构建在Wind River Open Virtualization上的系统可以轻松扩展到跨多个基于intel的多核主机的数十个虚拟机,并且仅使用硬件来处理这样的系统可能相当痛苦。然而,正如Michael在这次采访中所描述的,当您的团队拥有他们需要的工具来完成复杂的项目时,他们可能会以您以前没有想到的方式获得成功。

michael-barabanov-smaller

杰:请介绍一下你自己!

MB我叫迈克尔·巴拉巴诺夫,是风河公司的一名高级技术人员。我的背景是实时系统、管理程序、Linux和Android。目前,我是风河开放虚拟化团队的一员。

你第一次接触Simics是什么时候?

MB:如果我没记错的话,大约在2007年,我第一次使用它调试风河Hypervisor的早期版本。我立刻对后见之明印象深刻,甚至用Python写了几个上下文跟踪器。

:编写进程跟踪器是一种非常高级的用法,我想你是少数几个这样做过的人之一。我猜这是为了跟踪风河管理程序进行调试?

MB:这是正确的;我需要区分系统管理程序和客户执行上下文,以便能够同时调试两者。

但是Hypervisor和进程跟踪器并不是今天的主题。我们想知道的是你在oVirt和OVP上做了什么?

MB目前,我使用Simics来模拟一个基于oVirt虚拟化基础设施的多台机器构成的云环境网络。Simics帮助我调试运行网络集群的相当复杂的软件,并向其他人演示各种用例。

:构建运行oVirt和风河开放虚拟化的Simics设置的目标是什么?

MB当一个项目中有多个开发人员时,确保每个人都有一个可用的硬件目标是具有挑战性的。这是双重的(三重的?)所以如果我们谈论云软件的开发和调试。最初,我希望能够在我的笔记本上调试整个集群。我从libvirt和KVM开始,但是嵌套的虚拟化设置是一个挑战。Simics对精确模拟计时和虚拟化扩展的支持起到了重要作用。

设置是什么样子的?

MB基本的设置如下所示:一个oVirt引擎节点,它为web浏览器提供一个基于web的GUI,与多个运行虚拟机的oVirt节点相结合。web浏览器客户端运行在主机上,而不是Simics内部,因为模拟系统的组件没有什么价值。

ovirt-1

当它运行时,它在我的Linux主机上看起来是这样的(请点击放大)。注意中间的oVirt引擎的web界面,后面运行的Simics Eclipse GUI在右边的“target Info”视图中显示Simics目标机器的列表。Simics检查点(如下所述)列在左侧。

ovirt-screenshot

有什么Simics功能帮助你建立这个设置吗?

MBSimics的超模拟技术使得oVirt的启动和运行速度更快,因为Simics可以跳过系统中许多编程的等待时间和超时时间。

我使用检查点要在设置过程中感兴趣的点保存配置状态,可以避免手动重复设置操作或不得不编写脚本。检查点被设置在“刚刚在oVirt引擎设置之后”,“刚刚在oVirt节点注册之后”,“刚刚在存储域创建之后”,“在虚拟机创建之后”,以及类似的系统设置历史点。

Simics与pcap的集成使我能够检查多个协作机器之间的网络通信。由于Simics的确定性,我可以可靠地捕获集群中软件的执行跟踪,然后使用wireshark和其他工具来了解在特定运行期间发生了什么。

那真是太好了。关于您的用例,您还有什么可以告诉我们的吗?

MB模拟设置还用于验证风河Linux和开放虚拟化实现和oVirt设置是否与上游代码兼容。为此,我们还准备了Fedora 18的一些安装,这些安装在Simics中与风河Linux开放虚拟化节点一起以各种配置运行,如下所示。

ovirt-2

有了这个设置,与参考上游配置相比,很容易验证风河设置的行为。

水流是这样的:

ovirt-3

在每个步骤中,我更改了一个软件组件,从而对设置执行逐步验证。如果发现某个东西坏了或很奇怪,很容易回到之前的步骤,做同样的事情,比较行为。通过模拟,并排运行这两个设置真的很容易。尝试使用物理硬件做同样的事情将需要在所使用的计算机上重新安装软件堆栈,或者为所使用的每种类型的软件堆栈提供一台物理计算机。这是可能的,但效率不高。

你在工作中使用过Simics调试器吗?

MB:不是为这个特殊的项目,但是的,我以前用过它,例如调试在Linux内核上下文中运行的Wind River Real Time Core组件。

你能告诉我们关于你未来使用Simics的计划吗?

MB我不能分享太多的细节,但是我希望继续使用Simics来模拟更复杂的多系统和多网络设置,以及在单个节点上调试内核和用户空间。

谢谢你的时间,这真的很有趣。

MB:谢谢雅克布。

请注意。这篇博文展示了我们在风河公司如何使用Simics更有效地工作的一个例子。另一个例子是《Simics》的习惯教授网络和设备驱动程序开发(参见第10章Simics Unleashed -虚拟平台的应用)。有关如何使用Simics模拟网络的更多信息,请参见我的以前的博文

以前的VxWorks基于mil的系统从实验室转移到部署
下一个通过智能网关实现物联网