2014年1月, 嵌入式开发

在SIMICS上开放虚拟化,使复杂的工作更轻松 - 与Michael Barabanov采访

由雅各布Engblom

Jakob-engblom-Intro-Picture

拥有正确的工具可以使任何工作变得更容易。在这次采访中,来自我们风河工程团队的Michael Barabanov描述了如何使用simics.他以不同的方式接近了一些工程问题,能够简化他的工作风河开放虚拟化和座子。这风河开放虚拟化是在Wind River Linux上建立的嵌入式系统的虚拟化解决方案和增强的KVM。基于Wind River开放虚拟化的系统容易扩展到数十台虚拟机跨越基于内嵌的多核主机,并使用硬件使用这种系统可以相当痛苦。然而,正如迈克尔在这次采访中描述的那样,当你的团队有他们需要在复杂的项目上工作的工具时,他们就可以以先前可能没有想到的方式成功。

michael-barabanov-smaller

JE:请介绍自己!

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

:你是如何第一次遇到SIMICS的?

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

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

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

:但管理程序和流程跟踪者不是当天的主要话题。我们想知道的是你一直在做的袜子和ovp?

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

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

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

:设置是什么样的?

MB:基本设置如下所示:单个ovirt引擎节点,它向Web浏览器提供基于Web的GUI,耦合与运行虚拟机的多个纵向节点。Web浏览器客户端在主机上运行而不是在SIMICS内部运行,因为在模拟系统的组件时几乎没有值。

ovirt-1

当它运行时,它在我的Linux主机上看起来如此(请点击放大)。请注意中间的ovirt引擎的Web界面以及运行的Simics Eclipse GUI,它在右侧显示“目标信息”视图中的Simics目标计算机列表。左侧列出了SIMICS检查点(如下所述)。

ovirt-screenshot.

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

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

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

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

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

MB:模拟设置还用于验证Wind River Linux和Open Virtualization实现和Ovirt Setup与上游代码兼容。为此,我们还编写了一些Fedora 18的安装,其中沿着Wind River 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的系统从实验室转移到部署
下一个用智能网关制作IOT Real