Joe Brockmeier 在本文中将讨论 freeVSD,Linux 中的一种“虚拟服务器守护程序”,它允许多个虚拟服务器在同一个物理的机器上运行。每个虚拟服务器都有自己独立的 Web 托管环境。它通常用于托管工作,但您也可以将其部署为允许一台机器充当几个开发者的开发试验平台。
在生产部门中,系统管理员通常因太忙而没有足够的时间来处理开发者可能发出的每个请求。管理员没有时间去修改 Apache 的配置文件,或按开发者希望的速度重新启动 MySQL 守护程序。而且,向 Web 开发者赋予对服务器(甚至主要用于测试的服务器)根用户的访问权通常都是不切实际的,这是因为某一个开发者所作的修改可能会影响到其它开发者,进而导致整体生产力下降。唉,让每个开发者都拥有独立的测试机器通常也不太可能。
然而,如果您正在使用 Linux 环境,您就可以将机器设置为让多个开发者同时享有管理访问权,而不会影响其它开发者所在的环境。这被称为 freeVSD(Virtual Server Daemon,虚拟服务器守护程序),它还允许一个 Linux 服务器有多个“虚拟”服务器。使用 freeVSD 能够让公司进一步充分利用其资源,同时让每个开发者或一组开发者仍拥有自己的环境。虽然开发 freeVSD 的主要目的是托管公司,您仍然会发现它对生产环境可能也大有好处。
freeVSD 是什么?
当您听说“虚拟服务器”时,您可能会联想到 VMware 之类的软件,它会虚拟出一个完整的 x86 机器,您可以安装任何希望使用的操作系统。
freeVSD 并没有达到这个程度。它只是允许您赋予每个虚拟服务器它自己的 HTTP 服务器、IP 地址和文件系统等等。这些服务器仍然在原来的操作系统下运行,但它们并不共享同一个文件系统,而且每个虚拟服务器都可以有自己的管理员(伪根用户),这种用户几乎享有与真正的根用户相同的特权。这是通过创造性地使用 chroot
实现的。当然,这样做可能会有一些严重的安全性隐患 — 所以,如果您真的安装了 freeVSD,那就一定要阅读分发包中的 security.txt 文件所给出的建议并加以实施;还要查看 freeVSD FAQ(请参阅本文后面部分的 参考资料,那里有相关的链接)中与安全性有关的信息。
举例来说,如果您在一台机器上有四个虚拟服务器,您就可以重新引导一个单独的 Apache 实例,而不会影响其它服务器。如果需要,其中一个开发者甚至可以有与其它开发者完全不同的 Apache 配置。如果某个享有管理员访问权的开发者意外地清除了一个虚拟服务器上的一半文件系统,其它虚拟服务器将不会受到影响。开发者甚至可以按照向常规 Linux 服务器添加用户的相同方式向虚拟服务器添加用户 — 但添加的用户只会被目标虚拟服务器识别,真正的 Linux 主机或者其它任何虚拟服务器都无法识别该用户。其实,它完全是另外一个供开发者使用的 Linux 服务器。
最好的一点是,在 GNU General Public License 的许可之下,您可以免费获取 freeVSD(这也是它名称的由来......)(请参阅 参考资料),这样您不用支付任何许可费用,就能够部署一个或五十个,甚至上千个使用 freeVSD 的服务器。
使用 freeVSD 可能会碰到的一些问题
现在,freeVSD 特别针对 Red Hat 6.1 和 Red Hat 7.x 进行了修改。根据 freeVSD 站点上的说法,Red Hat 7.x 仍然处于“实验”阶段,所以,您试图在更新的 Red Hat 发行版上安装 freeVSD 时可能会碰到一些问题。我正在一台安装了 KRUD 7.2(请参阅 参考资料)的服务器上使用 freeVSD。KRUD 7.2 是一种几乎与 Red Hat 7.2 相同的分发包。我不得不从源代码安装 freeVSD,因为从 RPM 安装不合适。
按照 freeVSD 文档的描述,配置文件应该在 /etc/vsd 中,但(至少我的情况是)它们实际上是在 /usr/local/etc/vsd 中。我还是选择了从源代码安装,您的实际情况也会有所不同。
支持的服务
由于虚拟服务器运行的方式与真正的 Linux 服务器有一点不同,所以有一些程序在虚拟服务器下将不能运行 — 或者说不能正确运行。freeVSD 并不能处理您可能希望在服务器上使用的每个程序,所以,在决定您希望开发者访问的目标时,一定要将这个因素考虑进去。
举例来说,DB2 不在测试过的能够使用 freeVSD 的应用程序之列,所以它可能不会在 freeVSD 虚拟服务器上运行。您仍然可以在原来的操作系统下运行 DB2,但它可能不会在任何虚拟服务器下运行。这并不是说 freeVSD 只支持一个或两个应用程序,我只是要指出某些应用程序可能无法在虚拟服务器上运行。也可能它们能够完全正常运行 — 只是还没有经过测试。您可以在 freeVSD 站点(请参阅 参考资料)找到经过测试的应用程序的一个列表。
最常用的 Linux 应用程序 — Apache、MySQL、PostgreSQL、PHP、Perl、BIND、Sendmail 还有很多其它应用程序 — 都经过了测试,能够在 freeVSD 下顺利运行。不能仅仅因为一个应用程序没有经过测试就断定它不能在 freeVSD 下运行,关于这一点我已经说得够多了。如果您测试了一个不在 freeVSD 站点上列表中的服务,而它能够正常运行,请您一定要将这个消息告诉其他开发者,让他们知道您已经成功运行了这个服务。
[1] [2] [3] 下一页