【发布时间】:2015-02-23 18:15:19
【问题描述】:
我想以无人监督的方式更新一个 ubuntu 盒子。如果更新失败,我将不得不飞到那里手动修复它:P 所以我的问题是:
如果在内核或用户空间包更新过程中出现断电,系统会保持一致吗?
示例场景:
- 是否使用 update-grub atomic 更新内核?
- 包 A1 和 B1 依赖于 C1。新版本 A2 和 B2 依赖于 C2 而不是 C1。更新了 A2 和 C2 然后断电。怎么了?我想这取决于 dpkg 在下载后如何应用更新。
跟进: 如果 dpkg 不能做到这一点,我有什么选择?像 docker 这样的东西似乎并没有解决这个问题,因为主机操作系统仍然需要更新。谢谢!
添加: 什么是无人监督的方式:我有数千个这样的盒子在不同的地方运行。有人随时可能无意中拔掉插头。对于升级,我的服务器向他们发送“升级到 XXX 版本”命令。他们自主执行命令。
【问题讨论】:
-
不,甚至不能保证系统会在更新后启动。
-
@hek2mgl ...我认为这也不是 Debian 独有的。可能有一些发行版不是这样的,但我认为它适用于绝大多数发行版......
-
@twalberg 如果可以提供这种级别的稳定性,Debian 会简单地实现它! ;)
-
我认为这只是一种权衡?大多数用户不需要这个保证。但理论上,您始终可以拥有两个副本,然后自动创建一个新配置文件,指定每个升级包的新版本。正在运行的进程会在重新启动后获取更改。
-
如果你在不同的地方有数千个,你就有冗余。而且,如果您希望有人拔插头,那就更糟了。您已经有了冗余,这就是您的安全网。