我在一台机器上build立了一个数据库和networking服务器,我想把系统镜像到另一台机器上。 原来的数据库运行的是Ubuntu 9.1,新的系统安装了Ubuntu 11.04(但可以擦除,这是一个全新的盒子)。 我在想象,我将两个系统都连接到我的路由器上,让他们以某种方式知道对方,然后数据就会从一个移动到另一个。 我能做些什么来开始这个过程?
编辑:我想我使用错误的单词“镜子”。 我想要做的是将工作系统复制到新系统上。 然后,我想周期性地复制数据以确保两者保持同步。 定期复制是次要的; 最初,我只是想将数据从一个移到另一个(包括mysql数据库,网站,所有补丁等)。 之后我会担心后面的副本。
编辑2更清晰,我想我想做的最好的描述是做一台机器的时间机备份,然后恢复到另一台。 理想情况下,我会跳过去外部硬盘的中间步骤。
只是做一个直观的镜子,使用dd。 它是一个比特stream复制器。 相当标准的东西。
这是一些更多的信息,让你开始:
http://thetechshop.org/showthread.php?177-Using-dd-and-netcat-to-clone-mirror-a-drive
http://wiki.linuxquestions.org/wiki/Some_dd_examples
http://www.linuxquestions.org/questions/linux-newbie-8/learn-the-dd-command-362506/
http://www.codecoffee.com/tipsforlinux/articles/036.html
保持同步是一个不同的故事。 如果满足您的需求,您可以每隔一段时间重做一次。 或者你可以做一些rsync组合来保持webroot同步,然后使用许多可用的方法之一进行mysql同步。 这是一个完全不同的可以独立研究的蠕虫。 我确信有一些关于服务器故障已经存在的旧问题。
UPDATE
根据你的意见和更新,你应该专注于让一个盒子完全工作。 把mysql dump和web root文件移到Ubuntu 11中,然后configuration它,使其function相同,使其处于稳定工作状态。 为了让这些文件结束,使用SCP,它可以让你轻松地通过SSH传输文件。 或者你可以尝试得到完全工作形状的Ubuntu 9的盒子。
那么当你select的服务器在一个好的地方时,你可以使用DD和netcat,或者使用ssh或者任意数量的方法来做一个一点一滴的镜像拷贝到另一台机器上。
那么…为了将来的同步,你可以使用rsync的webroot和configuration文件。 并select你自己的方法为mysql,你可以脚本转储,scp传输和导入,或者你可以去更复杂的东西,这取决于你的需求是什么。
你可以做到这一点,虽然我没有出售,你将不得不这样做对你是完全有用的。 它主要取决于你的networking中的DNS的掌握,现在你想使用的一切。
实际上我一直在为自己设定类似的东西。
要知道的关键是,一旦你有足够的configuration两个框(所有必要的Apache模块等)。然后,你有一些事情,你需要保持这一切工作:
Web根目录 – 你已经有了一些文件,Apache的configuration文件会调用你的DocumentRoot–这就是你的网站上托pipe的文件的存储位置。 你需要同步这个目录。 默认情况下,这应该是/ var / www /(但是如果你进入虚拟主机,那么你必须给其他位置,我把我的/ www / [域名] /。
数据库 – 你说你有一个数据库涉及..显然你需要相应的复制。 假设你在MySQL上,你可以使用mysqldump来获取数据库。 谷歌周围学习如何备份和恢复与mysqldump。
configuration文件 – 如果你的情况非常简单,那么你可能只需要做一次。 您的网站是通过configuration文件(可能取决于几个)在您的Web服务器软件(我认为是Apache)中configuration的。 如果您在Apache 2.x上使用虚拟主机,那么您可能会在该服务器上托pipe的每个站点都有一个configuration文件。 您可能需要/想要同步。 请记住,在机器上replace它之后,至less必须“重新加载”你的apacheconfiguration。
所以,我看到它的过程将涉及使用像rsync的东西来复制文件。 你可以让ssh调用执行某些事情,终止你也需要的事情(可能在接收端调用一些脚本来完成你可能需要的任何事情)。
现在,正如我已经解释过的那样,使用副本运行的机器将完全是一面镜子,如果任何人改变了它上面的任何数据,就会在下一次同步时崩溃。 如果你想让多台服务器托pipe同一个站点,以达到负载平衡的目的,那么我想你会希望拥有一台单独的数据库服务器,以便你的networking服务器能够与之交谈,并且你想使用类似NFS的东西将web根目录的一个副本提供给服务器。 然后,您可以考虑configuration一个反向代理,为您透明地为服务器进行负载平衡。 “磅”是一个相当简单的反向代理,你可以使用。
对于最初的镜子:
对于定期更新: