我在 AWS 上的 3 个实例上运行 MongoDB 集群
每个实例都附加了 2 个 EBS
- / [8GB]
- /data [50GB]
要备份集群,MongoDB 建议创建/data
驱动程序的快照
我创建了一个自动化工具,该工具用于在特定时间AWS-SDK
为安装的每个卷创建快照。/data
我想知道使用 AWS-SDK 或使用 AWS 控制台(手动)创建快照是否会导致实例运行缓慢或在过程中变得不可用?
我知道创建根卷的快照可能会导致系统重新启动,但如何创建连接到另一个目录下正在运行的实例的卷的快照呢data
?
答案1
快照进程不应该对实例可见。真正的问题出现在您尝试从“不干净”的快照中恢复时。如果某个进程正在写入卷(或者更确切地说,写入卷上文件的打开文件描述符),则实例内核缓存中的写入请求可能不会写入磁盘,或者可能仅部分写入。这些文件在从快照创建的卷上看起来已损坏。
因此,AWS 建议在拍摄快照之前卸载所有卷。 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html
(显然,您无法在正在运行的实例上卸载 /。您可以停止实例来制作快照,但我会尝试找到另一种方法来备份它。大概您只需要该磁盘上的 mongodb 配置文件,这些文件通常位于 /etc、/var 和 /opt 下。)