![]() Joe Brockmeier 在本文中将讨论 freeVSD,Linux 中的一种“虚拟服务器守护程式”,他允许多个虚拟服务器在同一个物理的机器上运行。每个虚拟服务器都有自己单独的 Web 托管环境。他通常用于托管工作,但您也能够将其部署为允许一台机器充当几个研发者的研发试验平台。 在生产部门中,系统管理员通常因太忙而没有足够的时间来处理研发者可能发出的每个请求。管理员没有时间去修改 Apache 的配置文档,或按研发者希望的速度重新启动 MySQL 守护程式。而且,向 Web 研发者赋予对服务器(甚至主要用于测试的服务器)根用户的访问权通常都是不切实际的,这是因为某一个研发者所作的修改可能会影响到其他研发者,进而导致整体生产力下降。唉,让每个研发者都拥有单独的测试机器通常也不太可能。 然而,假如您正在使用 Linux 环境,您就能够将机器配置为让多个研发者同时享有管理访问权,而不会影响其他研发者所在的环境。这被称为 freeVSD(Virtual Server Daemon,虚拟服务器守护程式),他还允许一个 Linux 服务器有多个“虚拟”服务器。使用 freeVSD 能够让公司进一步充分利用其资源,同时让每个研发者或一组研发者仍拥有自己的环境。虽然研发 freeVSD 的主要目的是托管公司,您仍然会发现他对生产环境可能也大有好处。 freeVSD 是什么? 当您听说“虚拟服务器”时,您可能会联想到 VMware 之类的软件,他会虚拟出一个完整的 x86 机器,您能够安装任何希望使用的操作系统。 freeVSD 并没有达到这个程度。他只是允许您赋予每个虚拟服务器他自己的 HTTP 服务器、IP 地址和文档系统等等。这些服务器仍然在原来的操作系统下运行,但他们并不共享同一个文档系统,而且每个虚拟服务器都能够有自己的管理员(伪根用户),这种用户几乎享有和真正的根用户相同的特权。这是通过创造性地使用 举例来说,假如您在一台机器上有四个虚拟服务器,您就能够重新引导一个单独的 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 站点上列表中的服务,而他能够正常运行,请您一定要将这个消息告诉其他研发者,让他们知道您已成功运行了这个服务。 安装 freeVSD 我在这里不会浪费时间讲述安装过程的每个步骤,因为您将发现 freeVSD 文档中已很周详地描述了这些步骤。但是,我会快速地简述一些基本信息。 要安装 freeVSD,您需要有一台只安装了 Red Hat 6.2 或 7.x 的服务器。您还需要在 /home 目录下(或您决定保存 vsd 目录的任何地方)有至少 750 MB 的可用空间,连同 32 MB 的 RAM 和两个 IP 地址。这当然仅仅是安装的最小系统需要。对于任何重要的研发测试,我都不会推荐这种安装配置。 您能够选择从源代码或从 RPM 进行安装。假如您安装了 Red Hat 6.2 或 7.x 的标准版本,那么您就可能希望从 RPM 进行安装。一定要阅读安装指示,因为按正确的顺序安装 RPM 很重要。 在安装后,要了解 freeVSD 守护程式(vsd)是否已安装好并已运行,请运行 安装之后,不会有任何虚拟机器就绪,直到您自己创建一个:在安装之后运行的只有侦听请求等的 vsd 守护程式。 假如您打算使用 freeVSD,我建议您花几天时间去进行准备和运行工作。除非您在机器上只安装了 Red Hat 6.2 或 7.x 的标准版本,否则您很可能希望在机器上安装 freeVSD 之前对系统进行一些干净完全的安装工作。假如您正在使用一个完全不同的分发版,您能够在 Red Hat 之上安装 freeVSD 机器,也能够为了让 freeVSD 在其他的分发版上运行而准备奋战。(假如您的确打算这么做,那就一定要通知使用 freeVSD 的其他人,让他们知道您的使用情况怎样。)假如您特别具备社区精神(而且笔记做得很好),您甚至还能够考虑根据您的使用情况撰写一篇简短的使用指南。 创建虚拟服务器 安装 freeVSD 之后,您就能够创建虚拟服务器了。您可能不知道虚拟服务器的最大数量是多少 — 根据 freeVSD 文档所示,大约为 250 个。这个数字应该足够了。假如这还不够,您只要添加另一个 Linux 主机就行了! 要创建虚拟服务器,我们将使用 所以,要创建虚拟服务器,使用的命令应该和下面的差不多:
这里只是扼要地描述一下, 要完成操作,请运行 在创建了虚拟机器之后,您就能够使用 管理虚拟服务器 freeVSD 的管理命令很多,我不会试图在这里一一赘述。在这一部分,我们将看看您需要了解的一些常用命令。您将在 /usr/local/sbin 中找到使用 freeVSD 的实用程式。 您能够使用一些基于 Web 和 基于 Windows 的 GUI 工具来管理 freeVSD,但是出于本文的目的,我将重点描述命令行工具。假如您希望了解 PHP Web 管理工具,您能够在 freeVSD Web 站点(请参阅 参考资料)找到相关的信息。 删除虚拟服务器。我们已讨论了怎样使用
请注意,您需要运行 vsd_vsbatch.pl 来进行修改。这将从 /home/vsd/vs 目录删除虚拟服务器的文档系统并关闭帐户。所以,假如您碰巧在虚拟服务器中有重要文档,在删除帐户之前就一定要将这些文档备份起来。
启动和停止虚拟服务器。要启动或停止虚拟服务器,请使用
要停止上面这个服务器,能够使用:
假如要重新启动他,您能够使用:
假如您省略了虚拟服务器名,命令就会对任何虚拟服务器生效。 安装软件包。您能够用管理员身份在虚拟服务器中编译程式的源代码,从而实现在虚拟主机上安装软件包, 也能够将 RPM 从主机服务器安装到虚拟服务器的目录结构中来实现安装软件包的目的。虚拟服务器不支持从 RPM 安装软件包。举例来说,假如您希望将软件包安装到虚拟服务器“fluffy”上,您能够使用:
重新启动服务。要在服务器上重新启动服务,而不是重新启动服务器本身,请使用:
这样将重新启动“fluffy”上的服务 — 和“vsboot — reboot”所做的差不多。 更改用户密码。假如您需要在虚拟服务器上修改用户密码,您能够不必登录到虚拟服务器中就完成修改,使用的命令如下所示:
总结 本文是对 freeVSD 的一个相当简短的概述。您已看到了,在某些研发环境中,使用 freeVSD 可能很有用:您能够将一个健壮的服务器转换成有着相同服务的多个一模相同的研发服务器以供随意使用,也能够将每个服务器定制为适合研发者的需求。一旦您将 freeVSD 定制为适合您的需求后,就能够马上轻易地衍生出很多新的虚拟服务器了。由于 freeVSD 是,怎么说呢, 免费的,那么就试着用用,看看他是否适合您的工作室。 |
喜欢本文,那就收藏到: |