AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 43827
Accepted
Ernie
Ernie
Asked: 2009-07-22 15:45:05 +0800 CST2009-07-22 15:45:05 +0800 CST 2009-07-22 15:45:05 +0800 CST

扩展硬件 RAID-1 阵列

  • 772

我想请任何可能已经具备我即将获得的经验的人提供一些建议。

我们即将用一些更大的磁盘升级 POP 服务器中的 RAID-1 阵列。系统本身大约有 6 年的历史(我是最初构建它的人),运行 FreeBSD 4.9,RAID 控制器是 Adaptec 2400A。操作系统位于单独的驱动器上。由于成本、新硬件的不确定性以及旧 PCI 控制器的不可用,我们已经考虑并拒绝了完全更换控制器和驱动器的想法。

我搜索了有关此过程的文档,但没有找到任何文档。死树格式也没有提及它。

可以这么说,我的计划到目前为止是这样的:

  1. 通知用户。
  2. 对数据进行完整备份。
  3. 关闭服务器,更换阵列中的驱动器 2。
  4. 启动服务器,让阵列重建。
  5. 再次关闭服务器(可能在第二天),并更换驱动器 1 和阵列中的热备件。
  6. 希望这会使阵列的大小自动变大,或者使用它附带的磁盘上的存储管理软件来摆弄它。

我不喜欢以“希望”结尾的计划。这就是我问Serverfault的原因。“在测试平台上测试它”也不是一个真正的选择(这就是原来的“更换控制器”选项死亡的原因)。

当然,最后一个可能的选择是“核对驱动器并构建一个新驱动器,然后恢复备份”,但是在这种情况下很可能会丢失邮件,以及额外的停机时间。我宁愿我的计划按我应该的方式进行。

hardware-raid
  • 5 5 个回答
  • 762 Views

5 个回答

  • Voted
  1. Best Answer
    cas
    2009-07-22T16:29:43+08:002009-07-22T16:29:43+08:00

    注意:仅当您可以在系统中物理安装更多驱动器而无需先卸下旧驱动器时,才可能进行以下操作。

    我已成功用于此类任务的一种方法是在现有文件系统仍在使用时使用 rsync 创建和填充新文件系统,然后在方便的时间安排切换到新 fs。这最大限度地减少了停机时间并最大限度地减少了下班后的工作,因为大部分复制可以在系统仍在正常运行时完成。

    总停机时间只是进行最终 rsync 和重新配置所需的时间(下面的步骤 8-12)。

    在 linux 上,您甚至可以使用 ionice 为 rsync 作业提供低 IO 优先级,以最大程度地减少性能影响,因为 rsync 需要多长时间并不重要。我希望freebsd 也有类似的能力。

    一般程序是这样的:

    1. 警告用户会有短暂的中断(足够长的时间让您关闭机器并安装新磁盘)。如果您的服务器具有热插拔托架,则无需执行此步骤。

    2. 在预定的时间,安装新磁盘并使用它们创建新的 RAID 阵列和文件系统。

    3. 将其挂载为 /mnt

    4. rsync 你的旧文件系统到它

    5. 根据需要重复第 4 步。您可以无限期地延迟接下来的步骤,直到您有合适的时间窗口来完成工作。

    6. 安排一些停机时间并警告用户。

    7. 在中断之前立即再次运行 rsync。

    8. 关闭所有正在写入相关文件系统的进程(例如 MTA 和 pop/imap 守护进程等)。如果这是根 fs 或者如果有许多守护进程使用 fs,那么这意味着重新启动到单用户模式。

    9. 现在旧的 fs 是静态的(没有更新),做一个最后的 rsync。这不会花很长时间,因为新的 fs 几乎已经是最新的了。在此之后,新 fs 现在将是旧 fs 的完整最新快照。

    10. 重新配置任何必要的东西,以便使用新的 fs 而不是旧的 fs。如果是root fs,则意味着将MBR写入新磁盘,编辑fstab等。如果它只是一个数据分区,则卸载新 fs,然后卸载旧 fs,并将新 fs 安装在它的位置。编辑 fstab 以反映新设置。

    11. 仔细检查你没有忘记任何东西:)。修复并重复直到完成。

    12. 现在重新启动您关闭(或只是重新启动)的进程。

    您可以在闲暇时退役并移除旧驱动器。

    我已经使用这种方法的变体将服务从一台机器移动到另一台机器,例如用新的文件服务器替换老化的文件服务器时。基本思想是通过在后台进行大部分复制来尽可能减少用户可见的停机时间。

    • 3
  2. Qwerty
    2009-07-22T16:08:52+08:002009-07-22T16:08:52+08:00

    RAID 不应该像您想的那样神奇地扩展您的 HDD 分区(根据我对 RAID 的理解)。由于您首先将驱动器 1 镜像到驱动器 2(新驱动器),因此它将镜像旧的驱动器,该驱动器会更小。您将不得不使用gparted或其他东西来调整它的大小。

    为了像这样升级 HDD 作业,我在UBCD4Win磁盘上使用DriveImageXML 。

    我的 Admin Wiki 中有详细的升级过程:

    注意:它也可以与映射的网络驱动器结合使用。

    我的维基的步骤:

    • 使用 UBCD4Win 光盘启动目标框。
    • 运行 DriveImageXML。
    • 将 HDD A 上的所有分区一一备份到单独的磁盘或映射驱动器。
    • 卸下硬盘 A。
    • 安装硬盘 B。
    • 使用 Windows 磁盘管理器将 HDD A 分区重新创建为所需的新大小。如果需要,重新启动。
    • 使用 DriveImageXML 恢复备份。它将允许您将文件恢复到更大的 HDD。
    • 运行 FixMBR 来修复 MBR。
    • 尝试启动到您的操作系统。
    • 如果您无法启动到您的操作系统,请尝试安全模式,然后尝试恢复模式。
    • 检查磁盘管理器以确保一切正确。
    • 由于驱动程序或 Windows 无法识别分区,您可能需要在启动到操作系统后重新启动。只需继续修复磁盘管理器中的任何分区问题。
    • 在确定之前测试机器是否正常工作和运行。

    注意:建议在恢复之前将镜像重新创建为 0 字节空镜像(如果需要),这样可以节省您的时间。

    此方法仅适用于从较小到较大的 HDD 驱动器升级。DriveImageXML 不会还原到大小不同或较小的驱动器。强烈建议新驱动器在所有情况下都更大

    在您的情况下,它将是:

    • 制作 DriveImageXML 图像备份并存储在某处
    • 删除 RAID 中的旧驱动器
    • 在 RAID 中安装两个新驱动器
    • 将 RAID 归零
    • 将 DriveImageXML 映像应用到新的 RAID

    使用 DriveImageXML 执行此操作似乎涉及一个额外的步骤,但该过程允许您进行可靠的备份,这很重要。

    最后一个问题:DriveImageXML 无法备份隐藏分区。

    • 1
  3. Mark Henderson
    2009-07-22T15:51:11+08:002009-07-22T15:51:11+08:00

    我有几个 2400A,好消息是你很幸运!

    2400A 是 Adaptec 第一个支持“在线扩展”功能的 ATA 单元。我认为您正在运行一个三磁盘阵列,留下一个备用通道?

    在我看来,您的建议可能会奏效。老实说,我从未尝试过这种方式(我只添加过相同容量的新磁盘),但阵列的“自动”调整大小可能不会发生。但是您将能够启动您的 Adaptec 管理软件并在那里调整其大小以使用所有空闲空间。

    请注意 - 请在尝试任何操作之前确保您有 100% 的完整备份。RAID 不是备份的替代品,因此如果出现任何问题,您将获得根深蒂固。

    实际上,如果您进行 100% 备份,那么您很可能只需将阵列核爆到王国来,更换所有三个磁盘,创建新阵列并恢复备份(如您所述)。总体上可能会更快(但当然是更多的停机时间)。

    • 0
  4. SpaceManSpiff
    2009-07-23T01:37:43+08:002009-07-23T01:37:43+08:00

    您可以将 2 个新驱动器添加到控制器吗?如果是这样,请将它们添加为新阵列,将它们与当前 RAID1 一起运行,然后将所有数据迁移到新阵列。一旦数据在新的 RAID1 上,您就可以删除当前的 RAID1,因为您说您的操作系统在另一个驱动器上。

    另一种方式更多的是在它的切面。设置任何访问 RAID 1 的服务软件(邮件等),不要在启动时先启动

    完全关闭服务器

    将当前 RAID 1 映像到另一台服务器

    • 这需要能够正确查看 RAID 的映像软件

    • 还有另一台有足够空间的服务器。尽管您可以为此使用 USB 驱动器

    移除当前的 RAID 1 驱动器

    安装新的 RAID 驱动器并在 bios 中配置 RAID

    将驱动器映像回新的 RAID 并同时或在映像恢复后使用另一个实用程序扩展它。

    启动操作系统并查看它是否正确显示。

    如果是这样,请再次启动软件

    如果它失败,不起作用等。您应该能够将旧的 RAID 1 驱动器重新放入并很快再次运行。

    • 0
  5. dyasny
    2009-07-23T05:11:14+08:002009-07-23T05:11:14+08:00

    我不会冒险用这样的动作生产机器。控制器不会自动扩展逻辑磁盘,但是重建后,您可能可以在新添加的备用空间上创建第二个raid1

    我投票支持备份->测试->新阵列->恢复

    • 0

相关问题

  • NCQ:每个驱动器的最大安全标签数是多少

  • 英特尔 D865GLC 上的硬件突袭

  • Raid-1 中的磁盘是否在 RAID 之外运行?

  • 突袭分析软件

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve