EC2 Ubuntu 服务器在关闭时会清除所有磁盘内容。在发生不幸的事故后,我决定阻止命令 -livehalt
和。poweroff
shutdown
最好的方法是什么?我考虑过将这些命令(at
/sbin
)重命名为类似 的名称HALT_RENAMED___ERASES_ALL_DISK_CONTENTS
。除了上面列出的三个文件之外,还有其他文件需要处理吗?
我注意到,
halt
和poweroff
仅仅是指向的链接reboot
。重启也应该重命名吗?
亚当
答案1
我强烈建议使用基于 EBS 的实例并定期创建 EBS 卷的快照。如果出现潜在硬件问题,可以停止/启动基于 EBS 的实例(这会导致它们在不同的硬件上启动,除非你运气不好)
我推荐使用快照,因为 EBS 卷没有与 S3 相同的冗余。它们比普通硬盘更可靠,但我曾遇到过 EBS 卷故障,而我的快照挽救了局面。
ec2-modify-instance-attribute --instance-initiated-shutdown-behavior stop 对非 EBS 实例不起作用。
答案2
如果您使用的是 EC2 实例,并且有需要保留的数据,则应使用 EBS 卷来保存数据。否则,您有责任整合一个流程,定期上传到 S3 或其他备份策略,以便在重启时恢复。我有近十几个 EC2 实例在运行,并使用这两种策略的组合。
在 EC2 实例上安装的 / 驱动器旨在在完全关闭时清除,这就是halt
和shutdown
的poweroff
作用。驱动器将在重新启动期间保留,但当实例完全关闭时,它将被销毁,这正是亚马逊在 EC2 使用条款中告诉您的,也是为什么他们建议使用 EBS 来保留它的原因。
唯一的其他选择是使用 EBS 支持的实例,这样可以持久保存,但您需要为 EBS 卷的存储付费。这会将整个实例放在 EBS 卷上,而不仅仅是需要持久保存的数据。
答案3
您可以更改关机行为:
ec2-run-instances \
--instance-initiated-shutdown-behavior stop \
答案4
不可能。
认真说 - 你不应该依赖 EC2 服务器来保持状态。这有据可查。
您无法阻止虚拟机关闭。如果服务器发生故障怎么办?不会发生 - 亚马逊已经发生过这种情况。系统崩溃了。
基本上,您在这里是在追捕幽灵。您无法阻止虚拟机关闭。