我计划在64位Dell服务器上托管一个32 GB内存的web应用程序。我计划把Ubuntu10.04LTS放在那里。问题是,我们的web应用程序使用了一个模拟器,它只能在32位模式下编译和运行。所以,现在我正在考虑两种可能的解决方案:
我想知道这两种技术的利弊。如果有更好的选择,我会很高兴听到的。
我已经在这里搜索了类似的线程,并发现这是密切相关的:我应该在64位Debian服务器上运行32位和64位的生产应用程序吗?
然而,在那里提供的解决方案不能使我完全满意。
最后,我必须承认,我对虚拟化一无所知。上面提供的选项2是基于我对系统的了解。然而,我非常渴望了解虚拟化。
发布于 2011-11-27 18:39:22
ia32-libs
包包含大量的x86_32库集合。如果您的程序只能使用这些库运行,那么您已经设置好了。gcc-multilib
和binutils-multiarch
包中也有32位的开发工具。
如果您需要更进一步,在chroot中运行一个32位系统。Debian和Ubuntu提供了一些工具,使安装变得简单,主要是施罗德和脱靴带。设置一个schroot并在其中安装您的32位系统.。调用schroot
负责调用setpersonality()
,这尤其使uname()
返回i686
而不是x86_64
。当您尝试在64位系统上直接运行uname
时,让它返回一个意想不到的值可能会使您的应用程序感到困惑。记住关闭chroot中的服务(我所链接的指南解释了如何),并在chroot中进行安全升级(您不会在那里运行任何服务,但是库中可能会有but )。
虚拟机在这里是没用的。您将遇到色度的所有维护问题,再加上VM的维护问题,再加上分离的问题(内存使用、磁盘使用、…)。,加上VM中的单独Apache实例,再加上主机上的重定向,以及可能存在的性能问题。
发布于 2011-11-27 20:25:38
如果我是您,我将使用32位版本(这比在64位系统上修改32位库更容易)运行PV (从而最小化VM的“惩罚”)。为此,我将使用一台基于AMD -Opteron的机器(英特尔仿真32位,AMD确实在本地执行)。
https://serverfault.com/questions/335192
复制相似问题