我有一个独立的 linux IDS 系统,我一直在组装。它在本地运行 MySQL,以及 ntop、nagios、base、snort、apache 等。我希望能够对包含旧系统所有内容的系统进行备份,以便我可以从静态图像中快速 dd系统,然后将其恢复到上一个状态。
据我所知,我无法 DD 实时系统,这让我不知道如何从服务器备份所有内容。
我过去从未使用过 rsync,我认为这可能是解决方案,但我不确定我是否可以在实时 mysql DB 上使用它。
我很确定这将需要一种分层的方法,但任何输入都会有所帮助。
编辑:
被监控的系统大部分时间都是低流量的,而 apache 仅适用于应用程序的 Web UI,因此它并不像看起来那样过载
你知道,我非常喜欢关闭服务器并使用 Clonezilla 或 Norton Ghost 之类的东西来对那个傻瓜进行成像。
即使是周五晚上 11 点,一个月一次……你懂的。
几个小时的“计划停机时间”值得数小时和数小时的崩溃恢复。
就像我告诉我的助手一样,“我不是因为我很聪明才这么说。我这么说是因为我曾经很愚蠢并且以艰难的方式吸取了教训!”
谢谢你的更新。好的,所以这台服务器没有停机时间。
是否可以建立一个“热备用”,您可以在克隆驱动器所需的 2-3 小时内使用它?
是否可以选择在周日凌晨 3 点关闭网络?
当然必须有某种方式来安排一些停机时间?
我只是想在这里给你一个“简单”的解决方案。:-)
对于 mysql,您可以使用mysqldump将数据库内容转储到文件中。除此之外,您通常只需要备份配置文件(
/etc
以及您修改的任何其他目录)、任何其他数据目录、日志文件和已安装包的列表。您应该能够通过全新安装操作系统、安装列表中的软件包以及替换数据和配置文件来恢复系统。我在您的情况下看到了两种选择:
您可以在实时数据库上使用 rsync,但可能会导致数据损坏。停止 db,运行 rsync,然后重新启动它。您还可以转储数据库并 rsync 该文件。
我非常喜欢使用dirvish进行备份。它基本上只是一个 perl 脚本,可以轻松地使用 rsync 进行备份。
对于 mysql 数据库,您确实需要使用 mysqldump 实用程序或专门为此目的设计的工具。使用 rsync 复制数据库文件不是一个好主意。
通常可以将文件系统内容同步到另一个位置,就是这样。增量备份应该非常快(几分钟?取决于 rsync 可用的带宽以及备份的频率),因此您甚至可以在几乎没有效果的情况下将有问题的服务关闭(我确实注意到“无停机时间”要求)。
这种做法的常见问题是不能很好地处理快照的 MySQL 数据库。您可以通过使用 Kamil 的转储到 SQL 文件并备份该文件的建议或进行某种“热备份”来解决此问题。后一种方法的优点是 rsync 更喜欢它——为每个备份创建一个新的 SQL 转储往往会导致 rsync 每次都复制整个数据库,这对于大型数据库来说是一个漫长的过程。使用“热备份”,您可以利用 rsync 仅复制数据更改的能力。Innobase(InnoDB 的创建者)出售一个商业产品来对整个数据库进行热备份。我发现只要你没有大量的数据库写入,你就可以摆脱
LOCK TABLES
, rsync 二进制文件,并且UNLOCK TABLES
. 当你恢复 MySQL 认为你有一个服务器崩溃并且恢复得很好(你确实想mysqlcheck
在恢复后运行)。另一种备份服务器的方法,有点像 Dave 的第一个建议,是备份一个备用的 raid 设备。这是一种与我的第一个答案非常不同的方法,因此我将其放在另一个答案中。
您可以做的是使用带有镜像的软件 raid (mdraid) 设置您的服务器。然后,当您要拍摄快照时,断开一个raid 设备(
mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1
),dd
服务器断开设备的内容,然后将其重新附加到raid(mdadm --re-add /dev/sdb1
)。RAID 同步将复制设备关闭时更改的所有数据。当您恢复时,您可以
dd
将相同的数据存储到两个 RAID 设备(无论如何它都是镜像)。恢复的映像在最坏的情况下看起来好像服务器在事务期间断电,因此无论如何您都应该使用日志文件系统和事务数据库。在这种情况下,您可能希望使用 3 驱动器系统,以便您的系统可以在备份期间处理灾难,在这种情况下,您可能想要拥有 3 路镜像并断开第三个设备进行备份,甚至将其安装在热开关托架上,然后按照此线程中的说明将其物理移除(如果您想这样做,请通读该线程 - 原始发布者对特定命令及其顺序存在一些问题)
我在用着
rsync --delete --times --recursive --perms --owner --group --verbose --progress --stats -e ssh [email protected]:/backup1/ /backup1/
在该服务器上的第二台服务器上,我有 lvm 配置,因此很容易运行备份,只需拍摄快照,您可以点击链接
http://www.howtoforge.com/linux_lvm_snapshots
看看 www.microlite.com 上的 backupEdge
(可惜他们没有windows版本)
克隆不是生产系统的可行备份方案。
查找 Curtis Preston 的“Unix Backup and Recovery”一书。许多商业应用程序以及像 Amanda 这样的开源应用程序都可以备份实时系统。不过,会有一个学习曲线。
通常,备份内容最具挑战性的方面是恢复。首先开始计划恢复。如果您无法为备份而关闭系统,那么您也无法恢复它。