raid-1拓扑结构中有3个具有2个2TB磁盘的3ware 9650se。
我最近用两个更大的(3TB)的磁盘逐一replace了磁盘。 整个移民进展顺利。 我现在面临的问题是,我不知道为了让系统知道这个驱动器的大小增加了,我还需要做些什么。
一些信息:
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
请注意,磁盘p2 & p3被正确识别为3TB,但raid1arraysu1仍然可以看到2TBarrays。
遵循LSI 3ware 9650se 10.2代码集指南(注意:代码集9.5.3用户指南包含完全相同的过程)。
我三重sync我的数据,并umount RAIDarraysu1 。 接下来,我使用以下命令从命令行删除RAIDarrays:
tw_cli /c0/u1 remove
最后我重新扫描控制器再次find数组:
tw_cli /c0 rescan
不幸的是,新的u1arrays仍然确定了2TB磁盘。
什么可能是错的?
一些额外的信息。 u1arrays对应于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:~#
在增加OS内的文件系统之前,您需要更新u1大小。 在3ware控制器通知之前,后者不会“看见”新的尺寸。
3ware中的单位容量扩展被称为迁移。 我确定它适用于RAID5和RAID6,并没有尝试使用RAID1。 以下是运行迁移命令的示例:
# tw_cli /c0/u1 migrate type=raid1 disk=p2-p3
当这完成时, fdisk -l /dev/sdb应该产生3TB,而vgdisplay <VG name>会列出一些空的空间。 从那里你会增加VG大小,然后增加相应的LV,最后增加LV内的文件系统。
编辑:我觉得你运气不好 – 请参阅用户指南中的第129页。
您可以将您的RAID1迁移到不同的arraystypes。
这里有一个select(它有一定的风险,所以确保你的备份是好的):
tw_cli /c0/u1 migrate type=single – 这会将你的u1单元拆分成两个单独的驱动器; tw_cli /c0/u1 migrate type=raid1 disk=2-3 – 这应该迁移您的单个单位回到RAID1与正确的大小 当然,还有其他方法可以解决这个问题,上面列出的方法是为了让您的数据始终保持在线状态。
好的,这个答案附加到grs's答案。 所以学分确实去了70%的答案。
笔记:
总结情况:
所以关键是一次删除一个驱动器,每次都重新创build一个新的arrays 。 总体:
拆分raid1数组。 这将生成2个磁盘arrays(在我的情况下是2TB)。
tw_cli /c0/u1 migrate type=single
指向raid1 /u1的宝贵的/dev/sdX应该仍然存在(并且工作!)。 你也会得到一个新的单位/u2是基于镜子的第二个驱动器。
删除不再使用的镜像磁盘(在我的情况下,它属于一个新的单元/u2 ,重启后必须获得新的/dev/sdX文件描述符)。
tw_cli /c0/u2 del
用未使用的磁盘创build一个新的单元。 注:我从BIOS做了这一步,所以我不知道这是如何应该如下所述。 在BIOS中,我做了“创build单位”而不是“迁移”。 有人请validation这一点。
tw_cli /c0/u2 migrate type=single disk=3
新的/u2单元应该“看”所有的3TB。
继续并将数据从2TB磁盘传输到3TB磁盘。
一旦新单元上的数据更新了所有对新的/ dev / sdX的引用。
剩下的2TB磁盘(现在应该是!)现在还没有使用,请继续操作并删除它。
tw_cli /c0/u1 del
用未使用的磁盘创build一个新的单元。
tw_cli /c0/u1 migrate type=single disk=2
新的/u1单元现在也应该有3TB的空间。
最后,深吸一口气,将2个单磁盘合并到新的扩展raid1中
tw_cli /c0/u2 migrate type=raid1 disk=2
/u1现在应该消失,单位/u2应该开始重build。
享受生活。 像,认真。
也许你的内核没有收到来自控制器的更新。
尝试通过键入来更新磁盘信息:
partprobe /dev/sdb
它将迫使内核重新读取分区表和磁盘属性。
另请尝试:
hdparm -z /dev/sdb
和/或:
sfdisk -R /dev/sdb
导致partprobe不总是工作…
这些只是添加到nass's 答案的一些笔记。 从这里回忆,所以这可能不是完全正确的,在这些步骤中有一些重新启动。
步骤1-2:🗸
第3步:从cli添加一个新的单元: tw_cli /c0 add type=single disk=3
第四步:我用dd if=/dev/sdX of=/dev/sdY bs=64K克隆磁盘。 要确定哪些是正确的设备,在步骤3之前,我尝试安装一些设备(例如, sudo mount -t ntfs /dev/sda1 /mnt/a )并浏览内容以查看哪个是来自unit /c0/u1源设备。 (可能有更好的方法来确定这一点。)
同样在步骤3之前,在ls /dev/sd*中注明哪个设备有一个现有的sdY1但没有sdY ,然后在步骤3再次检查了哪个sdY被创build了。 我还在步骤3之前/之后在每个设备上使用了sudo hdparm -I /dev/sdY来确认事情是否正确。 注意:重新启动可能会改变哪个设备是哪个设备,所以请避免在检查和dd之间进行。
步骤5-6:🗸
步骤7-8:从未使用的磁盘创build一个新的单元,然后迁移没有为我工作( Invalid disk错误或沿着这些线)。 相反,跳过第7步,直接进入第8步应该工作。
第9步:会做。 谢谢您的帮助!
从我的经验中得到一些其他的说明:
我使用了一个Knoppix Live CD来完成大部分的工作。 要安装tw-cli:
sudo nano /etc/apt/sources.list
添加deb http://hwraid.le-vert.net/ubuntu precise main在顶部。
sudo apt-get update
sudo apt-get install tw-cli 3dm2
我是在Windows安装的引导驱动器上做这个,从2TB的驱动器到4TB的驱动器。 有一件事我开始之前忘记检查是磁盘是MBR还是GPT。 事实certificate,这是MBR,这意味着我不能访问驱动器上的大部分额外空间,而无需转换为GPT。