重新安装Linux:如何避免停机?

我的网站运行在一个专用的Debian LAMP服务器上。 我想更新系统(假设我有一个很老的Debian版本,我想从头开始重新安装所有的东西)

我可以使用什么策略在我重新安装所有内容时不让我的网站停机?

附录

当然,我知道我可以在此期间购买另一台服务器,并在完成后更改DNS。 但是这使我的工作翻了一番。

是否有些服务可能在有限的时间内充当代理angular色? 也许CloudFlare是什么,但caching一切不只是图像。

是否有些服务可能在有限的时间内充当代理angular色?

如果您的网站是纯静态的,或者至less在设置为只读时有些用处。 然后,你暂时支付一些networking托pipe,然后使用像wget或类似的工具来蜘蛛的静态部分的网站。

您可以在云中设置代理,将squid设置为您的站点的代理,暂时调整DNS,以便所有访问都通过代理,然后configurationSquid在离线模式下运行。 你可能想要编写一些能让浏览器通过代理访问所有重要页面的东西,所以一切都进入caching。

如果您不想要任何停机时间,那么真正唯一的select是在单独的硬件上构build新的安装,并且当您满意的时候可以正常工作,请更改您的DNS设置以指向新的服务器。

如果您没有其他物理服务器,则可以考虑在升级物理服务器时在云服务器上运行您的应用程序。

让第二台服务器承担负载,使用负载平衡器或仅在更新期间重新指向IP。 实际上,如果您使用负载均衡器,则可以在之后将两台服务器都closures。

这是假定该网站不依赖于数据库。 所以,鉴于你给我们的有限的事实,这是我简单的答案。

如果真正讨伐新的硬件(合理的,如果你真的,真的没有预算),我会这样做:

  1. 安装虚拟化系统。 这可以是Xen如果Debian的安装是旧的,但不够老,不能有Xen。 如有必要,使用VirtualBox甚至QEMU。
  2. 在真实的系统分区或逻辑卷上安装虚拟化的Debian Squeeze系统。 这样以后可以将这个虚拟机升级到主操作系统。 如果您使用的是VirtualBox或QEMU,最简单的select是安装到单独的硬盘上。 把它全部投入到这个虚拟机。
  3. 在虚拟机上安装所有服务并相应地testing一切。
  4. 当需要切换的时候,编辑你的grub.conf并引导到新的系统中。 虚拟机(现在的物理服务器)可能不得不重新configuration自己,因为“硬件”的变化,但Linux是擅长的。 记得在新的硬盘上安装grub(如果有的话)。

你有没有考虑升级到最新版本的Debian? 在大多数情况下,Debian升级非常好。 如果你现在的发行版本已经足够老了,不能在镜像上广泛使用,你可以使用archive.debian.org直到你达到目前的一半。

我将从一台虚拟机开始。 build立一个系统,然后移动你的当前网站。 这应该让你知道什么是给你的应用程序移植到新版本时遇到麻烦。 如果在某个时候你还没有其他的服务器机器,那么你将不得不把它升级到升级版本,但是事先知道你的问题在哪里,这是朝着减less停机时间迈出的一大步。