使用 LVM 将 NAS 迁移到硬件 RAID1,不会丢失数据

使用 LVM 将 NAS 迁移到硬件 RAID1,不会丢失数据

我正在尝试弄清楚如何将 RAID 1 添加到我的 CentOS NAS 服务器。今天,我在非 RAID 配置中有 2x3TB 磁盘。我使用 LVM 来管理一些逻辑卷以对我的数据进行分区。我没有使用接近全部 6TB 容量,但我希望将来可以扩展空间。我还使用 CrashPlan 定期进行异地备份,但我想确保磁盘故障不会意味着需要数天的停机时间来恢复数据。

所以我的计划是再购买 2 个 3TB 磁盘来设置 RAID 1。我想将新磁盘与旧磁盘配对,因为旧磁盘已经使用了几年,更容易出现故障。

今天我使用了大约 1.6 TB 的 6TB 容量,所以我认为我可以做一些移动,并将丢失数据的风险降至最低。有人能给我一份指南或帮助确保这些步骤可行吗?我知道有些事情可能会出错,所以我会准备备份,但我想确保这些步骤在低风险下可行,以节省一些时间。

  1. 首先,我将 6TB LVM VG 整合为一个 PV。因此,如果 /dev/sdb1 和 /dev/sdc1 是我的旧驱动器,我将缩小部分 LV(resize2fs、lvresize),将所有内容移至 sdb1(pvmove),并从 VG 中删除 sdc1(vgreduce)。
  2. 接下来,我将添加一个新驱动器,并在 BIOS 设置中为 sdc1 和新驱动器(称为 sdd1)创建 RAID 1。我们将其称为 rda1(我不知道使用什么命名,只是为了让我的步骤更清楚)。
  3. 将 rda1 添加到我的 VG (vgextend)
  4. 将所有 LV 移动到 rda1 (pvmove)
  5. 从 VG 中删除 sdb1(vgreduce)
  6. 添加另一个新驱动器,并在 BIOS 中为 sdb1 和新驱动器 2 (sde1) 创建 RAID 1。我们将其称为 rdb1。
  7. 将 rdb1 添加到我的 VG (vgextend)

最后,我真的很想在两个 RAID 之间重新分配数据,这样数据就不会全部都放在一个 RAID 上。我手动将一些 LV 移到另一个 RAID 磁盘有意义吗?我是否可以以某种方式添加条带化并让数据均匀分布,还是必须重新创建 LV 才能做到这一点?

以下是我当前设置的快速概述(我还有一个安装了操作系统和 LVM 的 SSD,但我仅展示数据驱动器):

$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg_media
  PV Size               2.73 TiB / not usable 19.00 MiB
  Allocatable           yes
  PE Size               32.00 MiB
  Total PE              89424
  Free PE               19792
  Allocated PE          69632
  PV UUID               D0Z3Fn-40Yr-akkx-TsLH-n5iM-LQNc-vdLbMf

  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               vg_media
  PV Size               2.73 TiB / not usable 19.00 MiB
  Allocatable           yes
  PE Size               32.00 MiB
  Total PE              89424
  Free PE               40272
  Allocated PE          49152
  PV UUID               4A1tD5-Rj2I-IdZX-2FPS-4KmS-WnjT-TcAGPf

$ sudo vgdisplay
  --- Volume group ---
  VG Name               vg_media
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               4
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               5.46 TiB
  PE Size               32.00 MiB
  Total PE              178848
  Alloc PE / Size       118784 / 3.62 TiB
  Free  PE / Size       60064 / 1.83 TiB
  VG UUID               wneSMl-nllf-9yaO-GGv2-iDGv-n4vK-mVfGjk

$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_media/library
  LV Name                library
  VG Name                vg_media
  LV UUID                AOs1yk-sVQE-f6sI-PstX-txtm-mu2d-mgJj4W
  LV Write Access        read/write
  LV Creation host, time srv.mattval.us.to, 2013-05-13 02:37:31 -0700
  LV Status              available
  # open                 1
  LV Size                1.00 TiB
  Current LE             32768
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/vg_media/photos
  LV Name                photos
  VG Name                vg_media
  LV UUID                2DWA1Q-MYTH-1bqq-QgW3-7LiJ-3jNe-v9WXlK
  LV Write Access        read/write
  LV Creation host, time srv.mattval.us.to, 2013-05-13 02:37:48 -0700
  LV Status              available
  # open                 1
  LV Size                1.00 TiB
  Current LE             32768
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

  --- Logical volume ---
  LV Path                /dev/vg_media/projects
  LV Name                projects
  VG Name                vg_media
  LV UUID                027kQC-dSSJ-Bo40-Xmpa-8ELo-hbGD-jZITBJ
  LV Write Access        read/write
  LV Creation host, time srv.mattval.us.to, 2013-05-13 02:38:01 -0700
  LV Status              available
  # open                 1
  LV Size                1.50 TiB
  Current LE             49152
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:4

  --- Logical volume ---
  LV Path                /dev/vg_media/docs
  LV Name                docs
  VG Name                vg_media
  LV UUID                El10u0-yYeW-XekC-TP7t-xF9t-qLgz-aFU8AQ
  LV Write Access        read/write
  LV Creation host, time srv.mattval.us.to, 2013-05-13 02:38:15 -0700
  LV Status              available
  # open                 1
  LV Size                128.00 GiB
  Current LE             4096
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:5

实际使用的大小为文档=100GB、库=500GB、照片=350GB、项目=620GB

答案1

不是硬件,但可以考虑的一个简单选项是将逻辑卷转换为 RAID1,并lvconvert --type raid1 -m 1 vg/lv可选地指定应使用哪个 PV,这样您就可以正确地将新驱动器与旧驱动器耦合。这使用与 mdadm 相同的内核驱动程序。

优点:

  • 更大的灵活性,允许线性/条带化 LV 用于丢弃/批量数据(如缓存或下载的 ISO 映像),以及 RAID1 和/或 RAID5 用于其他您想要的
  • 如果您的 RAID 控制器发生故障,它们将在其他地方工作。我说的其他地方是指,如果您将磁盘插入其他地方,它们将被任何最近的Linux发行版。它肯定不能在 Windows 或 *BSD 下工作,但这对于您的 NAS 来说不是问题。

缺点:

  • 服务器负载稍大(我没有性能数据。)

LVM 与 mdadm:

专业版 mdadm:

  • mdadm 使用更为广泛,经过一代又一代管理员的测试,有许多教程......
  • LVM 缺少一些 mdadm 功能(重塑),您现在不需要这些功能。这是一项正在进行的工作。

PRO lvm:

  • LVM 更加灵活,你现在可能不需要它
  • 迁移到 LVM RAID 非常简单

表现:

LVM 与 mdadm RAID:

  • 表现应该是一样的,但是……
  • 有一个已知的错误,其中 LVM RAID 上的某些操作明显比 mdadm 慢:错误 1332221- lvm raid1 的 fsyncs 性能不佳

软件 RAID 与 FakeRAID

  • 不知道,但这很大程度上取决于 RAID 控制器。

解决:

如果您想要经过验证的解决方案,mdadm raid 和 LVM 将是一个不错的选择。

如果您想要无忧的迁移和灵活性,LVM RAID 是您的最佳选择。

答案2

Serverfault 适用于专业的系统管理员,他们会在执行此类操作之前备份整个数据集。此时 - 如果您有时间 - 许多人会直接擦除、重新配置/重新格式化并恢复。这样您就有了一个已知的稳定设置。

相关内容