虚拟专用服务器(VPS)入门

 

为什么要拥有服务器硬件?在过去的15年里,每当服务器出现故障,或者需要对各台Web服务器、邮件服务器和数据库服务器进行升级,我就重复在问自己这个问题。我原本可以选择向托管服务商租用专门硬件,或者使用共享主机。但是我的要求所需的资源其成本将远高于采用租赁方案后分摊下来的费用。于是,我只好拥有、维护和更新自己的服务器。

这种状况一直持续到了去年秋天,当时我试用了虚拟专用服务器(VPS):在高端服务器上运行的拥有根访问权的虚拟化服务器,专门为了满足你这个用户的需要。虽然数年来你可以向众多公司租用VPS,但是选择方案在2010年特别多。软件已成熟,可靠服务已可用;相对绝大多数网站执行的那种常规Web和数据库任务的性能而言,其成本现在具有相当大的优势。

竞争很重要。因为竞争不但促使价格降下来,还确保如果某个主机服务商未能满足你的要求,你在选择另一家服务商时有众多选择。从一种服务迁移到另一种服务并非易事,但也不是什么可怕的任务。亚马逊推出弹性计算云(EC2)后,我先关注了虚拟化主机服务;此后进入这个领域的提供商逐年增多,提供的服务也不大复杂。去年11月,我终于决定试水;到去年年底,我扔掉了自己拥有或帮助管理的所有服务器硬件,一并扔掉的还有相当大的压力和成本。性能更好,备份更简单,我晚上也睡得更安稳了。四个月下来,我遇到过几次小麻烦,但总的来说运行相当顺畅。

本文将逐步介绍为什么应该选择VPS,而不是专用服务器或共享主机;介绍如何选择你所需要的服务和方案,可能会出现什么岔子,以及如何应对备份和灾难。如果你在运行几台对外的服务器,时常但无规律地需要应对繁重需求,或者需要为遍布各地的工作小组或个人维护共享服务器,就应该学会如何评估一个或多个VPS主机是不是适合自己。

我直接使用过Rackspace的云服务器(Cloud Server)和Linode同名的Linode。我还试用过亚马逊的EC2,我经常使用这项服务,处理一项经常性的数据库构建工作。在文章末尾的图表中,你能看到其他服务在价格和功能方面相比如何,但我无法提供坊间传闻。

无法逐一罗列所有的服务提供商,也没有这个必要。将有些提供商排除在外,是因为其价格高得离谱。比如说,Ubiquity Server Solutions对Linux VPS收取的费率两倍于本文中提到的其他公司,又没有什么明显的理由。

VPS与专用主机托管和共享主机托管的比较

 PS是在一个共享硬件上运行的虚拟机器。一台功能通常很强的多核主机经配置后,可以提供专用内存池;共享核心、单核或多核;以及硬盘存储空间。主机通常提供一系列的GNU/Linux操作系统,供客户选择。有些主机还提供一个或多个版本的Windows Server。(苹果允许使用Mac OS X Server虚拟化,但只能用在苹果硬件上,还要求为硬件和每个虚拟化实例单独购买许可证。苹果终止了机架Xserve服务器,因而我们不太可能看到任何大规模的虚拟化。)

与VPS连接的存储系统具有持续性:如果你的虚拟机或运行虚拟机的主机硬件崩溃或断电,重启后,可以在上一次停运的地方继续运行,当然硬盘故障除外。亚马逊是唯一的例外,我会单独讨论。可能还需要恢复文件系统,这视操作系统而定。由于Linux中有ext3日志功能,我还没有发现除了简略的启动修复之外还需要什么操作(不过,备份虚拟机相当容易,我们会在下一篇文章中讨论)。

VPS在几个重要方面有别于租赁专用硬件设备或使用共享服务器场地

如果你向提供商租赁专用机器,无异于被这个硬件绑住了手脚。这在过去还是个特别的优点,因为别人无法使用你的处理器周期资源,你想执行什么任务,可以执行什么任务。

然而,要是专用硬件出现了故障,主机服务商就得找出备用部件,必须移除、重新指向或恢复驱动程序。有些主机服务商承诺手头备有这种部件。如果你的要求超出了专用设备的限制,就得安排迁移到另一个物理硬件上的事宜。如果你突然需要10个一模一样的专用主机,这安排起来很费时间。

提供专用硬件的主机托管服务商可能并不为备份主机提供简单的解决方案,备份主机可能完全是你的责任。这就使得恢复同样很困难,或者需要支付按小时计费的昂贵的“远程操作服务费”。

至于共享主机托管,你与其他用户共享同一台机器。你不知道有多少人的网站或其他服务在系统上运行,也不知道你在某个时间可以使用多少的计算功能。众多的节制系统试图牢牢控制每个用户,但是这好比一群人在拥挤的房间里,只要有个人大声喧哗,别人就无法谈话。

如果你自己使用过多的资源——无论出于正当原因,还是由于编程上的错误,可能会被踢开、被建议升级到专用硬件,或者受到节制,结果任务完成不了。共享主机通常不断地增量备份,但这得不到保证:你得承担一部分风险,确保自己也有备份。

(现在开始出现了一种共享主机替代方案,Rackspace的Cloud Sites就是典例。它比共享主机方案要贵不少,你也无法获得根访问权。但是你的文件和脚本散布在能够自动扩展的一组机器上。基本费用相当于一台专用计算机。它奇特地结合了虚拟化和共享主机,适用于不需要调整后台服务器的流量较大的网站。如果某网站大多数时候每天的页面浏览量平均为5万人次,但偶尔猛增至100万人次,那它很适合采用这种方案。还有内容分发网络(CDN),可用于分发静态页面、组件、图像及其他媒体,按每GB量收费。)

VPS消除了硬件方面的任何顾虑:无论主机服务提供商作出什么决定,其选择对你来说是看不见的。你获得了专用服务器的一些优点,因为VPS看起来就像一个设备,与一组特定的硬件相连接。如果主机有闲置周期,许多服务器允许你在峰值时期的处理器使用率高于保证的极限值,因而在那个方面提供了小小的优势。最近,我在Linode运行的一台MySQL服务器在几小时内保持着400%的处理器使用率。

你仍要负责维护操作系统的运行,可能会把什么事情弄糟。但是你也可以将系统快照作为备份来保存,万一犯了重大错误,可以迅速恢复到快照。如果主机硬件出现故障,VPS服务可以迅速将你迁移到另一个系统上(我已经碰到过这种事)。

一旦你创建了合自己心意的VPS,几乎所有VPS服务都允许你复制。遇到了流量激增的情况,你可以启动额外的一横一样的镜像。有些服务还提供工具,以便在这类服务器或循环DNS之间均衡负载。亚马逊在这方面显得尤其灵活,它设计的系统让用户可以启动1000台服务器,然后停用这些服务器,用户只需要为运行期间的使用量付费。