我有一个两块磁盘,RAID 1,由 mdadm 设置。长话短说,事实证明这台服务器有一个真正的 RAID 控制器,因此硬件 RAID 比软件 RAID 更可取。此外,软件 RAID 意外断开与磁盘 2 的连接,使其进入降级模式。所以我们想试试硬件 RAID。
不过,在采用这种方法之前,我们想撤消 RAID,让操作系统只在单个磁盘上运行。我的问题是,如何才能有效地做到这一点?
我猜我需要编辑我的 /etc/fstab 文件,该文件当前已将 / 挂载在 /dev/md0 上。我还猜想 grub 需要以某种方式更新?我不确定我还需要做什么或按什么顺序完成所有这些操作。我的第一个想法是从实时 CD 启动,并将日期从磁盘 1 dd 到磁盘 2,以获得精确镜像(RAID 镜像已降级一段时间),然后从那里开始。
我正在运行 Ubuntu Server。感谢您的任何建议。
答案1
您的选择实际上仅限于备份盒子并在重建的 RAID 阵列上恢复它——通常初始化硬件 RAID 将擦除您的磁盘。
即使没有,您也必须解除配置md
,或者拆开驱动器并运行硬件 RAID 阵列内降级的软件 RAID - 坦率地说,备份所有内容并重新开始可能是最不痛苦的选择......
答案2
最好的、最安全的做法是运行完整备份,然后擦除并重新格式化卷。然后恢复数据。
答案3
对于 RAID-1,使用 linux mdadm 软件 raid 几乎肯定比使用任何硬件 raid 控制器要好得多。使用带有 mdadm 的简单 JBOD HBA。(例如,LSI 有一个非常好的 8 端口 SAS 6Gbps - 当然也有 SATA 6Gbps - 价格约为 200 美元。)
HW raid 的唯一真正优势是它具有非易失性(电池备份或较新的基于闪存)写入缓存。并且它必须是非易失性的(以防止崩溃或电源故障),否则它并不比 linux 的磁盘缓存更好。并非所有 hw raid 卡都安装了电池备份或闪存,甚至并非所有卡都有它作为选项。
即便如此,你也可以通过使用 SSD 作为带有 mdadm 的写入缓存来获得相同的效果。例如缓存和Facebook 的闪存缓存是该想法的两种实现。它们是新的,所以我还不想冒险在生产系统上使用它们(另一方面,Facebook 可能已经在其闪存缓存的极高负载下进行了广泛的实际测试)
(顺便说一句,如果你说的是 fakeraid - 那种你在廉价卡中得到的或内置于主流主板的 raid,那么忘掉它吧。使用它远不如 linux 的软件 raid 好)
但看来你确实有一个需要解决的问题。
听起来好像你的某个磁盘有问题(这种情况下,请尽快更换),或者可能是插入的 SATA 端口有问题。尝试将磁盘插入另一个端口。
还要检查所有电缆是否已牢固插入,以及您的电源是否适合您的系统(大多数都可以,但是例如,如果您有一块高端显卡,功耗为 200W 加上主板和 300W PSU 上的多个驱动器,那么您将需要更好的 PSU)。
希望有帮助。
为了提供更好的答案,您需要提供更多详细信息,例如:
- 什么样的系统(尤其是主板,如果它是白盒克隆而不是名牌服务器)
- 什么样的磁盘控制器
- 错误消息示例 — 例如,当内核将磁盘踢出阵列时会说些什么。
PS:作为对您问题的直接回答,撤消 raid-1 很容易。只需编辑 /etc/fstab 以便它直接挂载分区。并重新配置 grub 以适应。例如,如果 /dev/md0 由 sda1 和 sdb1 组成,那么您只需挂载 /dev/sda1(或 sdb1)而不是 /dev/md0。这是软件 raid 1 的真正优点之一(不知道您是否可以使用 hw raid 卡执行相同操作 - 它们倾向于使用奇怪的专有格式)。然后,您应该能够将另一个驱动器插入 hw raid 卡,将其设置为降级 raid-1,以 root 身份重新启动到 /dev/sda1,格式化降级 raid,挂载它,将您的文件系统 rsync 到它,确保您已将 grub MBR 安装在它上面。复制 /etc/fstab 后,您可能需要对其进行编辑。然后重新启动以使用降级的 raid 作为你的根文件系统。
如果(且仅当)该操作有效,您可以关机,将另一个驱动器从非 raid 插槽中拉出并将其插入 hw raid 卡并将其添加到 raid-1 阵列。然后重新启动,您就完成了。
注意:如果“raid”卡是假的,就不要这么做。它不是真正的硬件 raid,但是具有硬件 raid 的所有缺点(甚至更多),而没有任何优点。软件 raid 要好得多。
Rick Moen 在 Linux SATA 和 RAID 控制器上有一个很棒的页面http://linuxmafia.com/faq/Hardware/sata.html. 它将解释为什么 fakeraid 比无用更糟糕。