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 / 问题 / 941626
Accepted
Antonio López
Antonio López
Asked: 2018-11-27 02:24:27 +0800 CST2018-11-27 02:24:27 +0800 CST 2018-11-27 02:24:27 +0800 CST

使用 mdadm 向后调整/重新排列 RAID1 的痛苦方式

  • 772

在基于 Debian 的两磁盘 RAID1 (mdadm) 服务器(不涉及 LVM)中得到以下场景:

分区(镜像 /dev/sdb 相同):

  • 未分配的空间(以前是 Windows 的 /dev/sda1)。
  • /dev/sda2 linux-raid /dev/md0 (/)
  • /dev/sda3扩展:
    • /dev/sda5 linux-raid /dev/md1(交换)
    • /dev/sda6 linux-raid /dev/md2 (/home)
    • /dev/sda7 linux-raid /dev/md3 (/usr/local/share/data)

理想情况下,为了磁盘空间,我想实现:

  • /dev/sda1 linux-raid /dev/md0 (/)。
  • /dev/sda2 linux-raid /dev/md1 (/home)
  • /dev/sda3扩展:
    • /dev/sda5 linux-raid /dev/md2(交换)
    • /dev/sda6 linux-raid /dev/md3 (/usr/local/share/data)

遵循(乍一看)更简单的方法,我也愿意尝试:

  • /dev/sda1 linux-raid /dev/md0 (/) (希望mdadm --grow /dev/md0 --size=max命令能够自动处理占用之前未使用的空间)
  • /dev/sda3扩展:
    • /dev/sda5 linux-raid /dev/md1(交换)
    • /dev/sda6 linux-raid /dev/md2 (/home)
    • /dev/sda7 linux-raid /dev/md3 (/usr/local/share/data)

我认为所有这些都必须离线完成(即通过实时发行版)。

我不确定(关于第一种方法)是我是否必须首先完全关闭 RAID1 阵列,然后逐个硬拷贝分区,然后重新创建 RAID1,或者还有另一种更简单的方法。

我想知道您对这两种/其他方法的经验/建议。

partition
  • 1 1 个回答
  • 335 Views

1 个回答

  • Voted
  1. Best Answer
    silmaril
    2018-11-27T05:58:07+08:002018-11-27T05:58:07+08:00

    (几乎)应该可以进行实时迁移,前提是您不需要调整卷的大小。

    • 在 /dev/sd[ab]1 上创建一个新的 md:
      • mdadm --create device=servername:root --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
    • 在这个 md 上同步你的 /
      • mount /dev/md/root /mnt/target
      • mount /dev/md0 /mnt/source
      • rsync -avr /mnt/source /mnt/target
    • chroot new root 编辑 fstab 并重新安装引导加载程序:
      • mount -t proc /mnt/target/proc
      • mount -t sysfs /mnt/target/sys
      • mount -t udev /mnt/target/dev
      • chroot /mnt/target
      • [使用新的根设备编辑 fstab]
      • [重新安装引导程序]
    • 重新启动系统(并祈祷你没有忘记任何事情)

    重新启动后,您应该在新的根 md 设备上(检查 /proc/mounts),然后您只需重复该过程即可将 /dev/md0 分区用于 /home 挂载点。

    至于合并 sd[ab]6 和 sd[ab]7,则取决于您在其他分区上有多少可用空间,因为您需要删除并重新创建它们。

    就我个人而言,我建议利用这个机会迁移到基于 LVM 的系统: * 创建新 md * 在 md 上创建新 VolumeGroup * 在 VG 上创建新卷“root” * 继续前面的步骤。

    然后逐步将释放的 md 设备空间添加到卷组中,为下一个分区创建卷,复制数据并为下一个分区重新启动进程

    • 1

相关问题

  • 主分区与扩展分区

  • 在 Ubuntu 上将 Windows 磁盘分区与 Linux 分区合并

  • 用于 Web 应用服务器的 FreeBSD 磁盘分区(Apache/MySQL/PHP)

  • 调整分区大小通常会扩展文件系统上已用空间的现有大小吗?[关闭]

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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