我的公司运行的小型NAS盒子,我们分配到企业和家庭使用个人或商业networking。 这些机器运行Ubuntu Server 10.04,并设置为从闪存驱动器启动。 大部分存储和共享位于4个驱动器的RAID5arrays上。 我们使用dd克隆闪存驱动器,然后将其交换出来,以便快速轻松地修复与操作系统相关的问题。 我们的一些客户甚至不能在几分钟内重新启动盒子。 所以我们想知道如何开始创build一个“热插拔”的闪存驱动器。 我正在考虑从RAID5arrays上运行一个只有基本共享,ssh和FTP的小型操作系统,并使用USB信号运行一个脚本,指示机器将引导加载程序切换到这个“微小”的操作系统。 所以,当机器运行在这个临时的操作系统上时,我们用主操作系统将闪存驱动器切换出来,然后再次运行USB信号来切换引导加载程序。 所以我想我的问题是,如果有软件已经这样做了,如果不是,我应该采取什么样的方式来开始?
所以…这实际上是一个整洁的问题。
我会先告诉你为什么它不起作用,那么我会告诉你它是如何工作的。 🙂
您的“操作系统”(更具体地说是您的内核)为您的设备提供了所有必要的接口。 包括你的磁盘arrays。 它还保留一个描述符列表,告诉进程在哪里发送数据。
因此,当您谈论“热插拔”您的“操作系统”时,实际上是要求在操作期间更换内核(以及所有相关的库和configuration)。 您可以有一个操作系统,另一个存储在设备上。 但是在操作过程中你不能热切换一个标准的内核。
但是,你可以看看一个叫做ksplice的新技术。 它的目标是提供一个无需重启的内核。 我不熟悉你目前的实现,也不知道ksplice目前是多么稳定,但它应该让你开始正确的道路。 Canonical甚至是他们的主要支持者之一!
祝你好运!
如果问题出在o / sconfiguration上,那么驱动器什么也不做。 你不能改变一个正在运行的操作系统的状态,而不是至less重新启动服务。
关于用USB上的新驱动replace故障驱动,例如可以这样做。
如果在LVM2中将USB磁盘创build为卷组,则可以使用pvmove命令来实现此效果。
这个过程将是:
我将再次提到,这完全不能解决由服务器状态引起的潜在问题,这可能是大多数问题的根源所在。
此外,此function无助于您修复未启用LVM的现有套件。 只是你现在送出去的东西。
如果您想首先提供高度可用的解决schemedevise。 build立一个冗余的NAS。 你可以使用drbd来做到这一点。 然后,您可以安全地进行故障转移,以便根据需要在问题框上执行尽可能多的脱机工作。