拍摄快照的正确方法

时间:2010-10-18 21:48:39

标签: amazon-s3 amazon-ec2 cloud

之前我曾问过这个问题,但我仍感到困惑。拍摄快照的正确和最快的方式是什么(我只使用EBS支持的Unix和Windows机器,所以我现在对此感兴趣)。一些想法:

  • 只需拍摄快照......这似乎有时会导致系统损坏。
  • 停止机器,拍摄快照,然后启动机器。我想这也意味着我需要等待每个单独的任务完成,这有点挑战吗?
  • 使用'reboot machine'标志设置拍摄快照。文档中很少说明需要重新启动的原因......

希望EC2专家可以帮助我。

3 个答案:

答案 0 :(得分:3)

如果可以接受一点数据丢失,只需在实例运行时拍摄快照。 如果这是不可接受的,请编写一些脚本魔法,以确保您的应用程序正在处理的所有内容都保存到磁盘,拍摄快照,然后让您的应用恢复工作。

对于我的工作,我发现最好在我的应用程序及其数据上保留一个单独的EBS卷,当我需要快照时,我只需停止应用程序片刻,快照并重新启动它。这样您就不必担心操作系统在快照期间正在做什么,而且还附带了额外的奖励,即能够将您的应用及其数据快速移动到更强大的硬件,并拥有更小的快照。 / p>

答案 1 :(得分:2)

快速回答 - 两个操作系统都具有安全卸载驱动器的功能。可以对未安装的驱动器进行快照,而不必担心损坏。

答案很长 EBS快照是时间点和差异(它不会"复制"您的数据本身),因此只要您的驱动器在开始时处于一致且可恢复的状态,您就会#39 ; ll避免损坏(因为快照是原子的)。

正如您所暗示的那样,无论整个驱动器启动时处于什么状态,它都是您的快照映像恢复时的状态(如果您在写入文件的一半时快照,那么顺便说一下,恢复时该文件将被写入一半。

对于Linux和Windows,可以通过卸载驱动器来实现一致状态。这将保证您的缓冲区刷新到磁盘并且不会发生写入。在linux和windows中都有命令列出哪些进程正在使用该驱动器;一旦您停止了这些进程或以其他方式让它们停止标记驱动器使用(每个程序/服务不同),您可以卸载。在Windows中,通过将驱动器设置为可移动驱动器,这非常简单。然后使用"安全删除硬件"要卸载的功能。在linux中,您可以使用" umount"命令。

还有其他更为狡猾的方式,但上述内容相当普遍。

因此,假设您在开始之前进入可恢复状态,则可以在快照启动后立即恢复使用驱动器(在解锁(或重新安装)并恢复使用之前无需等待快照完成)。此时您可以重新安装音量。

AWS快照的工作原理:

你的卷和快照只是一组指针,当你拍摄快照时,你只是将你写的任何块从那一点向前分开;它们实际上是与卷关联的新块,并且卷中该逻辑位置的旧块保持不变,以便快照在逻辑上保持不变。

这也是后续快照趋向于更快(它们是差异的)的原因。

http://harish11g.blogspot.com/2013/04/understanding-Amazon-Elastic-block-store-EBS-snapshots.html

答案 2 :(得分:0)

拍摄快照通常需要预定的停机时间。

步骤:

  1. 我要卸下驱动器。
  2. 启动快照并等待它完成。
  3. 然后重新安装它。
  4. Afaik,这是获得一致快照的唯一可行方式。

    如果您可以分享更多有关快照上的数据类型(例如数据库?)的信息,那么我可以扩展我的答案。

    我无法对基于Windows的实例发表评论,因为我对它并不熟悉,但为了避免冗余,请查看此博客条目,因为它解释了很多:

    简而言之,他们使用xfs文件系统,当他们冻结它以创建快照时,它们允许更新文件系统。根据评论,它似乎适用于大多数人。