如何以最less的停机时间移动多个Apache Rails应用程序

我有一个服务器托pipe大约80个小轨应用程序。 我们最近升级了磁盘空间,所以现在我们必须将所有的站点移动到这个新的磁盘上。 主机是VMware ESX服务器,所以所有的磁盘都是虚拟的。

我们有一个虚拟主机和每个文件的Apacheconfiguration文件。 在这个文件中,我们定义了一个开发,testing,验收和生产环境,每个环境都在自己的领域。 生产环境可以有多个域。 这些网站目前位于'/'分区的目录(我知道这个主意不好),需要移到新分区。 网站运行一个Sqlite数据库,所以也必须复制。

我们希望将这些网站移到不同的磁盘上。 最简单的事情是closuresApache,复制文件,并在旧位置重新安装磁盘。 这将导致显着的停机时间,因为它需要复制大约100GB的数据。

有没有办法将新磁盘与旧文件同步,然后立即交换它们? 或者,也许自动移动网站一个接一个,最大限度地减less每个停机时间? 我最大的担心就是如果在操作过程中写入的话,就会损坏Sqlite数据库。

两种解决scheme

  • 如果您的文件系统允许,您可以创build快照并将其解压到新磁盘上。 XFS允许这个(也许JFS,我不知道)。 如果需要,可以将分区扩​​大到新磁盘的大小。

  • 你可以先用正常的cp命令把你的磁盘拷贝到磁盘上,然后把旧的磁盘拷贝到磁盘上。 当你准备好切换你关机的Apache。 旧的磁盘到新的磁盘,如:

    rsync -Cavz --delete <OLDDISKPATH> <NEWDISKPATH> umount <OLDDISKPATH> mount --move <NEWDISKPATH> <OLDDISKPATH> 

    并开始Apache,你完成最less的停机时间。