我有一台 ThinkServer RD230-4011,它最初有 4x 300Gb 驱动器,使用内置 SAS 8708EM2 卡分为 2 个 RAID 1 阵列,例如:
DISK 0 (300 Gb) | VD 0 (RAID 1, 300 Gb)
DISK 1 (300 Gb) |
DISK 2 (300 Gb) | VD 1 (RAID 1, 300 Gb)
DISK 3 (300 Gb) |
现在我终于需要更多空间了,所以我开始将所有驱动器逐个替换为 600 Gb 驱动器,并让 VD 重建。这很顺利。我计划的下一步是将驱动器 #2 脱机,然后将其添加到 VD 0 并迁移到 RAID 5,例如:
DISK 0 (600 Gb) | VD 0 (RAID 5, 1200 Gb)
DISK 1 (600 Gb) |
DISK 2 (600 Gb) |
DISK 3 (600 Gb) | VD 1 (RAID 1, 300 Gb, degraded)
然后将数据从 VD 1 迁移到 VD 0,并进行另一次扩展,例如:
DISK 0 (600 Gb) | VD 0 (RAID 5, 1800 Gb)
DISK 1 (600 Gb) |
DISK 2 (600 Gb) |
DISK 3 (600 Gb) |
我发现我的 RAID 控制器不支持 OCE,但为时已晚,因此尽管我可以通过添加驱动器来重建,但现在我陷入了这样的困境:
DISK 0 (600 Gb) | VD 0 (RAID 5, 900 Gb)
DISK 1 (600 Gb) |
DISK 2 (600 Gb) |
DISK 3 (600 Gb) |
注意虚拟驱动器中缺少的容量。那么我该如何使用驱动器中的新容量?我 SOL 了吗?这是托管中唯一一台我无法轻松迁移所有数据以从干净的 VD 开始的服务器。如果需要从 webbios 执行此操作,我可以计划一些停机时间,但当然,使用 megacli 的实时解决方案可能是首选。
谢谢各位大师。
答案1
以下是 LSI 支持的建议。
从 RAID 5 中移除一个 600 GB 磁盘。然后 RAID 5 将进入降级状态,您可以使用移除的驱动器创建一个容量为 600 GB 的新单磁盘 RAID 0 VD。现在将所有数据从降级的 RAID 5 复制到新创建的 RAID 0。之后,您可以删除 RAID 5 VD 并使用它们将单磁盘 RAID 0 VD 迁移到 4 磁盘 RAID 5 VD。
我不太喜欢将数据从一个 RAID 卷复制到另一个(第一个卷将被降级,第二个卷将是单个磁盘),并依靠它来启动我的 XenServer 实例。然后删除 VD 并创建一个新的,再次迁移所有数据。
没有别的办法了,是吧?
答案2
在你的情况下,没有复制就没有办法。对于 raid1(!!!!) 有一种方法,需要停机时间(!!!!),并且至少拔下 SR,它不能是启动卷(!!!)。
如果您从 SSD 启动,或者至少有多个非 raid0/5/6/10 或其子代的 lun,则可以删除该 lun 并创建一个新的 lun,而无需初始化它(!!!)。如果它已初始化,您将丢失所有数据。
对于您来说,明智的做法是将控制器替换为可以进行扩展的上层控制器。这样您的停机时间将减少到几分钟。
XenServer 的存储堆栈被开发人员弄得太乱了,任何系统管理员都无法解决这个问题。在“正常”系统上,人们可以做其他可以在线工作的事情,例如在两个降级的 raid5 之间进行 lvm 镜像或 pvmove 到临时 iSCSI 卷。这里没有爱。
如果再次出现此问题,请更换控制器并将旧控制器卖给 eBay。