我最近将我们的实例移至 EBS 实例 (CentOS),但对于“停止”实例时会发生什么情况,我仍有些困惑。我的某些服务已启用运行级别 345,但当我启动已停止的实例时,服务并未启动。当我向实例发出停止命令时,究竟发生了什么情况?如何让我的服务在再次启动实例时自动启动?
答案1
停止 EBS 支持的 AMI 与关闭它相同,并且不是某种冻结休眠状态。
- 启动已停止的实例后登录并运行命令
uptime
。您将看到服务器仅启动了一小段时间。 - 保持现有的 ssh 会话处于活动状态,然后从 EC2 管理控制台关闭服务器,您将看到与执行该命令时相同的“服务器正在关闭...”通知
shutdown
。
还:
- STOP 命令保留根 EBS 卷以及任何附加的卷。
- 与已停止实例关联的根卷在管理控制台中仍将显示为“正在使用”
- EBS 支持的实例可以受到保护以防止意外终止。
- 默认情况下,EBS 卷会被 TERMINATION 销毁,但并非必须如此。在大多数情况下,这是一个可配置选项。
启动后,检查所有系统登录/var/log
以查找尝试启动服务时出现的任何错误,并执行dmesg
命令查看启动时发生的情况。
答案2
您的意思是将 EC2 实例的系统文件放在持久 EBS 卷上,而不是使用在停止或重新启动实例时消失的实例文件系统?
如果是这样,当您关闭实例时,EBS 卷上的文件将被保留,但实例提供的其他文件系统上的文件(这些文件曾经是 / 和 /mnt,但我不确定 EBS 实例会发生什么)将会消失。
我猜想您的服务无法在启动时启动,因为它们依赖于未存储在 EBS 卷上的文件。服务日志应该可以帮助您调试问题。
答案3
当您启动 EBS 支持的实例时,所有已安装的服务都应启动。我每天都会启动/停止几个实例 (LAMP 服务器),apache、mysql 和所有东西都会正常启动。
有几次我确实需要重启实例才能启动一些服务。我认为这是因为连接到 EBS 时出现延迟,因此无法及时访问相应的文件。