Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 拍摄快照的正确方法_Amazon S3_Amazon Ec2_Cloud - Fatal编程技术网

Amazon s3 拍摄快照的正确方法

Amazon s3 拍摄快照的正确方法,amazon-s3,amazon-ec2,cloud,Amazon S3,Amazon Ec2,Cloud,我以前问过这个问题,但我还是很困惑。拍摄快照的正确和最快捷的方法是什么(我只使用EBS支持的Unix和Windows机器,所以这是我现在感兴趣的全部)。一些想法: 只要拍下快照。。。这似乎有时会导致系统崩溃 停止机器,拍摄快照,然后启动机器。我想这也意味着我需要等待每一项任务的完成,这使得scirpting有点挑战性 拍摄设置了“重新启动计算机”标志的快照。文档中几乎没有说明为什么需要重新启动 希望您的EC2专家能帮助我。如果可以接受一点数据丢失,请在实例运行时拍摄快照。 如果不能接受,请编

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

  • 只要拍下快照。。。这似乎有时会导致系统崩溃
  • 停止机器,拍摄快照,然后启动机器。我想这也意味着我需要等待每一项任务的完成,这使得scirpting有点挑战性
  • 拍摄设置了“重新启动计算机”标志的快照。文档中几乎没有说明为什么需要重新启动

希望您的EC2专家能帮助我。

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


对于我所做的工作,我发现最好将我的应用程序及其数据保存在一个单独的EBS卷上,当我需要快照时,我只需停止应用程序片刻,创建快照,然后重新启动它。这样,您就不必担心操作系统在快照过程中会做什么,还可以将应用程序及其数据快速移动到功能更强大的硬件上,并拥有更小的快照。

拍摄快照通常需要计划的停机时间

程序:

  • 我会卸载驱动器
  • 启动快照并等待它完成
  • 然后重新安装它
  • Afaik是实现一致快照的唯一可行方法

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

    我不能对基于Windows的实例发表评论,因为我对它一点也不熟悉,但为了避免冗余,请查看此博客文章,因为它解释了很多:


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

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

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

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

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

    还有其他更鬼鬼祟祟的方法,但上述方法是相当普遍的

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

    AWS快照的工作原理:

    您的卷和快照只是一组指针,当您拍摄快照时,您只需将写入的任何块从该点向前发散;它们实际上是与卷关联的新块,而卷中该逻辑位置的旧块将被单独保留,以便快照在逻辑上保持不变

    这也是为什么后续快照的速度会更快(它们是不同的)


    我有一个Win2k8和一个Fedora应用程序。两者都使用本地SQL数据库。这些系统是完全独立的,这意味着所有组件都位于Amazon为实际操作系统发给我的同一EBS卷上。每隔一段时间也会生成少量文件。这些不是严肃的生产类型的箱子,但更多的是一个游乐场环境。所以,我很乐意接受一些数据丢失/问题,只要快照映像可以打开,并且可以在我完成的地方或多或少地恢复。我只是不清楚仅仅通过拍摄快照会在哪里出现问题?我更熟悉Windows,所以让我介绍一下我对该环境的理解。。。当我启动Windows快照时,它仍能正常工作。但是,我收到Windows错误“系统意外关闭”,并请求说明原因。这很烦人,但是如果有人重新启动了这个盒子,系统的行为也没有什么不同。SQL数据库或多或少处于相同的状态,上次关闭的文件都在那里等等。等等,这个实例是存储吗?或者这是基于EBS的ISTANCE这是基于EBS的。我没有将实例存储用于任何项目。我用链接扩展了我的答案。