我在 m3.large EC2 机器上安装了 BCACHE,实例 SSD 作为缓存磁盘,弹性卷作为后备磁盘。但是一旦我重新启动 EC2 机器,BCACHE 就消失了,我无法再次访问曾经作为后备驱动器的磁盘。
如果我在重新启动之前分离 SSD(在没有缓存的情况下运行 BCACHE),那么在重新启动后 v 仍然存在,我可以再次将 SSD 附加到它。
问题是如何从 EC2 不干净的重启中恢复 BCACHE。
我在 m3.large EC2 机器上安装了 BCACHE,实例 SSD 作为缓存磁盘,弹性卷作为后备磁盘。但是一旦我重新启动 EC2 机器,BCACHE 就消失了,我无法再次访问曾经作为后备驱动器的磁盘。
如果我在重新启动之前分离 SSD(在没有缓存的情况下运行 BCACHE),那么在重新启动后 v 仍然存在,我可以再次将 SSD 附加到它。
问题是如何从 EC2 不干净的重启中恢复 BCACHE。
您应该尝试在关闭/重新启动时取消注册缓存设备,并在启动时重新创建并附加它们,否则,每次您决定关闭实例时都会让您感到痛苦。有一个脚本可以在第一时间自动启动和关闭
对于不干净的情况(强制停止或突然的实例崩溃),您需要
echo 1 > /sys/block/[Backing Device (EBS)]/bcache/running
例子:
echo 1 > /sys/block/xvdf/bcache/running
或者,如果您使用 writeback 并且您假设您的支持设备将始终正常启动,您只需将该行添加到您的启动序列中(在您的卷安装之前)
参考: