考虑笔记本电脑的以下场景:大多数时候,笔记本电脑位于办公桌上的扩展坞中,但偶尔会被取出。对接和断开对接可以在笔记本电脑运行时或关闭时进行。
现在,笔记本电脑很容易以多种方式丢失数据:旋转磁盘对震动很敏感(笔记本电脑尤其容易受到冲击),而 SSD 可能会在没有事先警告的情况下自发故障。最终,笔记本电脑可能会在路上丢失或被盗。
为了应对这些风险,我一直在考虑将外部驱动器连接到扩展坞,并使用 LVM 在两个磁盘上配置镜像集。
如果内部磁盘出现故障,我只需更换一个新磁盘并恢复镜像集即可。由于 Linux 对磁盘“移植”到另一台计算机上的容忍度很高,因此即使笔记本电脑被盗并且我必须买一台新的,这也可以工作,只有很小的限制。恢复系统比使用传统的外部备份要容易得多。
明显的缺点:首先,如果笔记本电脑与外部硬盘一起从您的办公桌上被盗,这种设置将无济于事。此外,USB 可能是磁盘性能的瓶颈。最后,无论出于何种原因,此设置都无法防止逻辑数据损坏。让我们暂时把这些放在一边。
此设置的一个特殊特征是故障转移和恢复场景现在已成为日常发生的情况,要求它们完全自动化:
如果外部磁盘不可用,操作将照常进行。在热拔出场景中,系统应不受限制地继续运行。在冷拔出场景中,两个磁盘之一的缺失不应妨碍系统正常启动(即无需干预)。
如果外部磁盘再次可用(无论是在热坞站还是冷坞站场景中),系统应识别并立即开始重新同步和恢复镜像集,而无需任何人为干预。
在重新同步期间,系统应准备好处理关闭(并在重新启动时恢复)或断开连接(并在再次连接时重新开始)。
这样的设置可行吗? Linux 中的 LVM 是否能够自动执行这些步骤,或者可以编写脚本吗?