我正在安装一个 Debian 服务器,我需要安装该服务器的镜像,这样当主服务器出现问题时,用户可以透明地连接到镜像。主服务器中的任何更改都应反映在第二个服务器中。大多数情况下,我必须同步 postgresql 和 mysql 数据库,但如果可能的话,还要同步整个系统。
我有什么选择?
编辑: 这就是我所寻找的: http://www.howtoforge.com/installing-a-web-email-and-mysql-database-cluster-on-debian-6.0-with-ispconfig-3
答案1
postgres 和 mysql 都有不同的集群方式。这不是一项可以轻易完成的任务,需要大量的经验和知识才能成功部署。
数据库多久更新一次?例如,是否仅在办公时间更新,如果这样,您的任务将更简单。
如果您希望镜像整个系统,一个简单的方法就是安装两台计算机,然后使用 dump(8) 和 restore(8) 将整个文件系统内容复制到备份节点,比如说,凌晨 4 点。
如果您想要热备用,事情会变得稍微复杂一些,因为您需要两者之间的一些合作,以及一个可以在发生故障时在主机之间切换的服务。Linux-HA 是一个很好的起点。还有 DRBD,它是通过网络的 RAID1,非常有趣,但同样,需要一些经验才能了解它。
如果您希望在集群中使用 mysql,请查看联合引擎,但这比 InnoDB 慢很多。那么,它有多重要。将您的第一个系统放在内部 RAID(1,5,6) 上是否足以应对磁盘故障,同时在它旁边有一个系统准备好在主板/CPU/RAM 发生故障时接管磁盘。
如果您愿意用外部软件污染您的内核,可以使用 zfsonlinux。这非常方便,您的第二个系统可以卸载文件系统,而第一个(实时)系统运行 zfs send pool0@YYYYMMDDHHmm | ssh ... 到备用系统。当您需要在备用系统上线服务时,只需安装文件系统,启动系统服务,然后修复第一个系统。然后执行相反的操作以将更改发送回去。