你如何设置你的虚拟机?

时间:2009-01-02 11:52:39

标签: installation virtualization

最近,虚拟化的热潮已经到达我的工作场所,开发人员在他们的计算机上试用虚拟机。早些时候,我听说过几个不同的开发人员在台式电脑中设置虚拟机是为了保持他们的开发环境清洁。

市场上有很多虚拟机软件产品:

我很想知道如何在工作中有效地使用虚拟化。我的问题是如何使用虚拟机进行日常开发以及出于什么原因?

12 个答案:

答案 0 :(得分:18)

我刚刚在家里制作了一台真正强劲的机器,这样我就可以同时运行多个虚拟机。我的情况可能是极端的,但这是我这样做的逻辑。

<强>测试

当我测试时,特别是桌面应用程序时,我通常会创建多个虚拟机,每个虚拟机应运行一个平台(Windows 2000 / XP / Vista等)。如果有32位和64位的风格,我也建立了一个。我还使用VM硬件设置(例如大量RAM,小RAM,1核,2核等)。我发现这种方式存在很多小错误,如果我没有使用这种方法,肯定会让它变成野外。

这种方法也可以很容易地使用不同的软件场景(如果安装程序的用户没有.NET 3.5 sp1会怎么样?如果他没有XXX组件会怎么样?等等?

<强>开发

当我开发时,我有一个运行我的数据库服务器的VM(SQL2000 / 2005/2008)。这有两个原因。首先,它更现实。在生产环境中,您的应用程序可能与db不在同一个框中运行。你开发时为什么不复制它?另外,当我不开发时(记住这也是我的家用机器),我真的需要运行所有这些数据库服务吗?是的,我可以手动打开和关闭它们,但是更容易切换虚拟机。

<强>客户

如果我想向客户展示我已完成的一些网络工作,我可以只将一个虚拟机放入DMZ,他可以登录虚拟机并使用网络项目,而我的网络/计算机的其余部分很安全。

<强>兼容性

Vista64现在是我的主机。我拥有的任何旧硬件/软件都无法与该操作系统很好地配合使用。我的解决方案是将Windows XP 32作为所有这些项目的VM。

答案 1 :(得分:9)

这是尚未提及的内容。

每当项目进入维护模式(也称为放弃)时,我都会创建一个包含构建项目所需的所有工具,库和源代码的VM。这样,如果一年后我不得不回到它,我不会在工作站上的任何升级工具或库中打赌。

答案 2 :(得分:6)

当我开始在我现在的公司工作时,大多数支持/开发/工作人员都会在桌面上运行带有1-3个虚拟机的Virtual PC进行测试。

几个月后,我整理了一份提案,现在我们使用运行虚拟机池(全天候全天候)的VMware ESXi服务器,它们具有不同的环境,供我们的支持人员测试客户问题并重现问题。我们安装了Windows 2000 / XP / Vista的虚拟机,每个安装了Office 2000/2002/2003/2007(这是12个虚拟机)以及一些更通用的测试虚拟机,一些运行Citrix的Server 2003/2008计算机,终端服务等。基本上大多数情况下,当我们遇到需要调试的新客户配置时,可能其他客户也有这种配置,我会为它设置一个VM。 (例如,我们目前只使用三个64位虚拟机 - 大多数是32位)

最重要的是,同一台服务器运行的XP VM用于构建安装程序(InstallShield,WiX)调试(VS 2005)和本地化(Lingobit)以及我们的开发人员用于自动化测试的第二个VM(TestComplete )。

开发和安装程序VM已分配了更高的优先级,并且都配置为具有1Gb内存的双CPU VM。其余的VM具有相同的优先级和256-1Gb RAM。

所有内容都在双四核Xeon上运行,其中8Gb RAM运行ESXi和硬件raid(4x1Tb RAID10)

投资仅略高于2.5万美元,我们将生产力提高了10倍(想象一下停机时间,而支持缺乏在桌面上安装旧版办公室以复制客户问题,或者我无法使用的时间我的桌面,因为我们正在构建安装程序)。下一步是将RAM加倍到16Gb,因为我们增加了更多内存饥渴的Server 2008和Vista VM。

我们桌面上仍然有奇怪的虚拟机(例如,我已经在VMware Workstation下运行了本地化版本的Windows,Ubuntu和Windows 7)但是常用/大量使用的配置已经卸载到我们可以使用的专用服务器上所有远程连接。更容易,更容易。

答案 3 :(得分:5)

虚拟化(使用快照或非永久性磁盘)对于在已知的干净配置中测试软件安装非常有用(即,从以前的软件安装中没有遗留任何内容)。

答案 4 :(得分:5)

如果出现问题,将开发框放在单个文件(使用虚拟机)上将使更容易备份和恢复

除此之外,您还可以在不同的计算机上携带便携式开发盒,因为您不会受限于您经常使用的那台特定计算机。

不仅如此,您还可以一次性测试不同的操作系统,并在您拥有的每个虚拟机文件上安装一个操作系统。

相信我,在完成上面提到的工作时,这将节省很多麻烦。

答案 5 :(得分:5)

虚拟机的另一个不错的用例是创建虚拟机器网络。例如,您可以启动运行应用程序堆栈不同层的计算机,每个计算机都运行在自己的VM中。把它想象成一个穷人的数据中心。

这些虚拟机也可以在您的物理网络上显示,因此您可以使用RDP或类似方式与它们进行远程终端会话。

你可以拥有一台运行这些虚拟机的强大机器(大量内存),同时从另一台机器(如笔记本电脑)远程访问它们,或者使用最佳屏幕的任何一台机器远程访问它们。

答案 6 :(得分:3)

我在Windows下使用VM来运行Linux。即使已经有一个针对Windows的emacs版本,在Linux中使用它只是因为某些原因感觉更令人满意。

答案 7 :(得分:3)

维护搁置的计算机

我的情况是,我所在地区的学校已关闭,但他们的财务系统必须维持长达2年,以确保所有未付账单都已支付。这曾经是通过维护mothballed学校的硬件来处理的,这些学校存在一些问题:

  • 这浪费了稀缺的硬件资源并占用了大量的物理空间。
  • 财务人员必须亲自到硬件上才能在每个系统上工作。

今天,我将每个封闭式学校安置在一个物理主机内的虚拟盒子上。每个单独的系统都由rdp访问主机的IP号,但是有自己的端口号,并且每个学校的原始安全性都得到维护。

财务人员现在可以在没有必要前往实际所在位置的公立学校工作,服务器房间有更多的物理空间,并且所有的公立学校的备份是一个简单的自动化过程。

每个封闭式学校都在自己的vbox中,系统之间无法交叉污染数据。价值数千美元的硬件也可以用于重新部署。

虚拟化似乎是解决此问题的完美解决方案。

答案 8 :(得分:2)

当我面前的任务是测试WebSphere Application Server的集群环境时,我使用了VMWare Server的虚拟化方法。在设置VMWare服务器之后,我创建了一个新的虚拟机并完成了我需要的所有软件安装,例如WebSphere App Server,Oracle,WebSphere Commerce等,之后我关闭了VM,并将虚拟硬盘映像复制到两个不同的文件,一个作为克隆VM,另一个作为备份。

创建了一个新VM并分配了一个复制的磁盘映像,因此我现在启动并运行了两个系统,这使我能够测试集群环境的相同场景。我通过VMware拍摄了VM的快照,如果我搞砸任何活动,我会将更改恢复到所拍摄的快照,从而进入以前的状态并提高我的工作效率,而不必找出要反转的内容。如果我需要恢复到一个非常旧的状态,而不必从头开始,也可以使用备份磁盘映像。

VMWare和Microsoft的Virtual PC / Server中存在的快照功能足以让您考虑虚拟化,因为您认为可能会进行重大更改,这可能不容易恢复。

答案 9 :(得分:2)

据我所知,没有像Mac上的Parallels,而是工作而不是测试。

集成(具有“一致性”,您的VM未在主机系统的“窗口”中运行,来宾系统中的所有程序在主机系统中都有适当的窗口)非常出色,让您填写所有(<差距>全部!)差距:
当我的同事点击“mailto:” - 网页上的链接,在Mac上使用Firefox浏览时,我的同事配置了Windows中的Outlook(没有像Outlook for MacOsX)弹出窗口! 在另一个方向,如果他发送PDF,他会在Outlook(在Windows中)双击附件,在Mac-buildin PDF查看器中打开PDF文件。

VirtualBox还提供了这种窗口分离的可能性(至少当Linux在Linux上的VM中运行时),这对于工作非常有用。

当然,对于测试等,没有什么比干净利落的环境更好了。

答案 10 :(得分:2)

我们有一个专用于在我们的开发环境中托管虚拟机的物理服务器。虚拟机定期启动和拆除,用于测试已知标准操作环境中的软件。

当我们希望应用程序在与开发环境不同的域上运行时,它也非常有用。

此外,我所工作的组织正处于规划阶段,以创建一个大型虚拟测试场。这将是一个庞大的机器网络,坐在它自己的网络上,所有组织的内部员工,承包商和第三方供应商将能够在实施到生产环境之前将其软件用于测试目的。虚拟机将反映生产环境中的物理机。

这听起来不错,但每个人都有点怀疑:这是一个政府组织......官僚主义和繁文缛节可能会把这变成浪费时间和金钱。

答案 11 :(得分:1)

如果我们使用虚拟机(vpc 2007,Virtual Server 2005,VMWare应用程序等......)

1.我们可以在一台服务器上运行多个操作系统(windows98,2000,XP,Vista,Windows Server 2003,2008,Windows 7 / linux / solaris)

2.我们可以降低硬件成本和数据中心空间

3.我们可以降低功率和功率交流冷却成本。

4.我们可以减少管理资源,

5.我们可以降低应用成本

6.我们可以运行ADS / DNS / DHCP / Exchange / SQL / Sharepoint服务器/文件服务器......等等