在 Linux 中将 2 个磁盘(raid 1)替换为 3ware 控制器下的一对更大的磁盘

在 Linux 中将 2 个磁盘(raid 1)替换为 3ware 控制器下的一对更大的磁盘

我有一台 3ware 9650se,带有 2x 2TB 磁盘,采用 raid-1 拓扑。

我最近将磁盘逐个替换为 2 个更大的磁盘(3TB)。整个迁移过程非常顺利。现在的问题是,我不知道我还需要做什么才能让系统知道这个驱动器的大小增加了。

一些信息:

root@samothraki:~# tw_cli /c0 show all

/c0 Model = 9650SE-4LPML
/c0 Firmware Version = FE9X 4.10.00.024
/c0 Driver Version = 2.26.02.014
/c0 Bios Version = BE9X 4.08.00.004
/c0 Boot Loader Version = BL9X 3.08.00.001

....

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    OK             -       -       -       139.688   Ri     ON     
u1    RAID-1    OK             -       -       -       **1862.63**   Ri     ON     

VPort Status         Unit Size      Type  Phy Encl-Slot    Model
------------------------------------------------------------------------------
p0    OK             u0   139.73 GB SATA  0   -            WDC WD1500HLFS-01G6 
p1    OK             u0   139.73 GB SATA  1   -            WDC WD1500HLFS-01G6 
p2    OK             u1   **2.73 TB**   SATA  2   -            WDC WD30EFRX-68EUZN0
p3    OK             u1   **2.73 TB**   SATA  3   -            WDC WD30EFRX-68EUZN0

请注意,磁盘p2p3正确识别为 3TB,但 raid1 阵列u1仍然看到 2TB 阵列。

按照以下指南操作后LSI 3ware 9650se 10.2 代码集(注意:代码集 9.5.3 用户指南包含完全相同的程序)。

sync将数据和umountRAID 阵列增加了三倍u1。接下来,我使用以下命令从命令行删除 RAID 阵列:

tw_cli /c0/u1 remove

最后我重新扫描控制器以再次找到数组:

tw_cli /c0 rescan

不幸的是,新的u1阵列仍然识别出 2TB 磁盘。

可能出了什么问题?

一些额外的信息。该u1阵列对应于dev/sdb/,而后者又对应于更大的 LVM 磁盘的物理卷。现在我更换了两个驱动器,分区表似乎为空。但 LVM 磁盘工作正常。这是正常的吗?!

root@samothraki:~# fdisk -l /dev/sdb 

Disk /dev/sdb: 2000.0 GB, 1999988850688 bytes
255 heads, 63 sectors/track, 243151 cylinders, total 3906228224 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

root@samothraki:~# 

答案1

您需要u1在操作系统中增加文件系统之前更新大小。操作系统不会“看到”新大小,直到 3ware 控制器通知它。

3ware 中的单元容量扩展称为迁移。我确信它适用于 RAID5 和 6,但没有尝试过 RAID1。以下是要运行的迁移命令的示例:

# tw_cli /c0/u1 migrate type=raid1 disk=p2-p3

完成后fdisk -l /dev/sdb应产生 3TB 并vgdisplay <VG name>列出一些空空间。从那里您可以增加 VG 大小,然后增加相应的 LV,最后增加 LV 内的文件系统。

编辑:我觉得你运气不好 - 请参阅第 129 页用户指南.
您可以将 RAID1 迁移到不同的阵列类型。

这是一个替代方案(它有一定的风险,所以请确保您的备份良好):

  1. tw_cli /c0/u1 migrate type=single- 这会将您的设备拆分u1成两个单独的驱动器;
  2. tw_cli /c0/u1 migrate type=raid1 disk=2-3- 这应该将单个单元迁移回具有正确大小的 RAID1

当然,还有其他方法可以解决此问题,我上面列出的方法适用于您希望数据始终在线的情况。

答案2

好的,这个答案附加到grs's答案中。因此,70%的答案都归于此。

笔记:

  • 如果这个答案适合您,请立即获取备份。
  • 如果您拥有 UPS,请立即将其连接到有问题的电脑上。
  • 以下步骤是在 Linux 中的 DATA 磁盘阵列上执行的。可能需要进行一些修改才能在 OS/启动阵列上运行。
  • 以下步骤需要多次重启,但我没有说明,因为我花了几周的时间才完成此过程,期间我尝试了无数次,但都失败了。不过,好在电脑开机时,我没有再停机,也没有丢失数据(即我不需要依赖备份)。

情况总结:

  • 无法在 3ware 9650se 系统上从 raid1 迁移到 raid1。
  • 无法分割磁盘并期望 /c0/uX 将自动更新其阵列大小。
  • 您必须删除一个单元并重新创建它才能检测更大的磁盘。

因此,关键是一次删除一个驱动器并每次重新创建一个新阵列。 全面的:

  1. 拆分 raid1 阵列。这将生成 2 个具有旧磁盘大小的阵列(在我的情况下为 2TB)。

    tw_cli /c0/u1 migrate type=single
    

    /dev/sdX指向 raid1 的precious/u1应该仍然存在(并且工作!)。并且您还将获得一个/u2基于镜像的第二个驱动器的新单元。

  2. 删除不再使用的镜像磁盘(/u2在我的情况下它属于一个新单元,并且必须/dev/sdX在重新启动后获取一个新的文件描述符)。

    tw_cli /c0/u2 del
    
  3. 使用未使用的磁盘创建一个新single单元。注意:我从 BIOS 执行此步骤,因此我不确定这是否应按照我下面所述的方式执行。在 BIOS 中,我执行的是“创建单元”而不是“迁移”。请有人验证这一点。

    tw_cli /c0/u2 migrate type=single disk=3
    

    /u2单位应该“看到”所有3TB。

  4. 继续将数据从 2TB 磁盘传输到 3TB 磁盘。

  5. 一旦数据进入新单元,就更新所有对新 /dev/sdX 的引用。

  6. 剩下的 2TB 磁盘(应该!)现在未使用,因此继续将其删除。

    tw_cli /c0/u1 del
    
  7. single使用未使用的磁盘创建一个新单元。

    tw_cli /c0/u1 migrate type=single disk=2
    

    /u1设备现在也应该有 3TB 的空间。

  8. 最后,深吸一口气,将 2 个单独的磁盘合并到新的扩展 raid1

    tw_cli /c0/u2 migrate type=raid1 disk=2
    

    /u1现在应该消失并且单位/u2应该开始重建。

  9. 享受生活。认真地享受。

答案3

也许您的内核没有收到来自控制器的更新。

尝试通过键入以下内容来更新磁盘信息:

partprobe /dev/sdb

它将强制内核重新读取分区表和磁盘属性。

也可以尝试:

hdparm -z /dev/sdb

和/或:

sfdisk -R /dev/sdb

因为 partprobe 并不总是有效......

答案4

这篇文章的要点是联系 LSI 支持以获取迁移脚本。

我很确定在 2 端口和 4 端口配置中我都有相同的控制器,当我想从 1 Gig Raid 1 更新到 2 Gig 时,我用 2 Gig 替换了其中一个磁盘,然后在重建后替换了另一个磁盘。

此时,我仍有一个 1 Gig Raid 1,但位于 2 Gig 磁盘上。然后,我将一些驱动器尺寸细节作为支持请求发送给 LSI,他们又向我发送了 (非常技术)脚本,该脚本在执行时为我完成迁移。

我始终不明白为什么没有 LSI 的支持就无法完成这次迁移,但最终结果还是不错。

相关内容