【问题标题】:Correct way to take a snapshot拍摄快照的正确方法
【发布时间】:2014-06-02 09:47:11
【问题描述】:

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

  • 只需拍摄快照...这似乎有时会导致系统损坏。
  • 停止机器,拍摄快照,然后启动机器。我想这也意味着我需要等待每个单独的任务完成,让脚本有点挑战?
  • 使用设置了“重启机器”标志的快照。文档中几乎没有说明为什么需要重新启动...

希望各位 EC2 专家可以帮助我。

【问题讨论】:

    标签: amazon-s3 amazon-ec2 cloud


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      正如您所暗示的那样,无论整个驱动器在启动时处于何种状态,这就是您的快照映像在恢复时的状态(如果您在写入文件中途进行快照,那么,天哪,当您恢复时,该文件将被写入一半)。

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

      还有其他更偷偷摸摸的方法,但以上是相当普遍的。

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

      AWS 快照的工作原理:

      您的卷和快照只是一组指针,当您拍摄快照时,您只需从该点开始将写入的任何块分开;它们实际上是与卷关联的新块,卷中该逻辑位置的旧块被单独保留,因此快照在逻辑上保持相同。

      这也是为什么后续快照往往会更快(它们是差异的)。

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

      【讨论】:

        【解决方案3】:

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

        程序:

        1. 我会卸载驱动器。
        2. 启动快照并等待它完成。
        3. 然后重新挂载它。

        Afaik,唯一可行的一致快照方法。

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

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

        简而言之,他们使用xfs 文件系统,当他们冻结它以创建快照时,他们允许对文件系统的更新通过。根据 cmets 的说法,它似乎对大多数人都有效。

        【讨论】:

        • 我有一个 Win2k8 和一个 Fedora 应用程序。两者都使用本地 SQL DB。这些系统是完全独立的,这意味着所有组件都位于亚马逊为实际操作系统发布给我的同一个 EBS 卷上。每隔一段时间也会生成少量文件。这些不是严肃的生产类型的盒子,而是更多的游乐场环境。所以我很乐意接受一些数据丢失/问题,只要可以打开快照图像并在我完成的地方或多或少地继续。我只是不清楚仅通过拍摄快照从哪里得到问题?
        • 我更熟悉 Windows,所以让我谈谈我对那个环境的理解......当我启动我的 Windows 快照时,它会继续正常工作。但是,我收到“系统意外关闭”的 Windows 错误,并要求说明原因。这很烦人,但是如果有人刚刚重新启动盒子,系统的行为并没有什么不同。 SQL DB 或多或少处于相同的状态,上次关闭的文件都在那里等等。
        • 等等,这是实例存储吗?或者这是一个基于 EBS 的实例
        • 这都是基于 EBS 的。我不将实例存储用于任何项目。
        • 我用链接扩展了我的答案。
        猜你喜欢
        • 2022-01-14
        • 1970-01-01
        • 2013-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-03
        • 1970-01-01
        • 2018-12-03
        相关资源
        最近更新 更多