我家的Linux服务器有一个四驱动软件RAID 5,每个SATA驱动器有两个分区,分别命名为sd [abcd] [12]。 / dev / md1是从sd [abcd] 1build立的,/ dev / md2是从sd [abcd] 2build立的。 每个驱动器是500GB,每个分区是250GB。 我使用LVM将md1和md2合并到一个卷组中。
将这些驱动器升级到每个1TB的过程是一个很好的过程。 我没有更多可用的SATA端口。 我考虑过把其中一个驱动器取出来,用一个新的1TB驱动器取代它,分区有两个250GB的分区和一个500GB的分区,然后重buildarrays。 对每个驱动器重复一次,然后在sd [abcd] 3上创build一个新的RAID5。 这看起来“不够优化”:滥用同步/恢复过程似乎不是正确的方法来做到这一点。
使用外部USB机箱,坚持使用新的1TB磁盘,分区,将其添加到md1和md2arrays,重新同步,然后从arrays中删除一个旧磁盘,重复每个磁盘?
有多个arrays分布在相同的磁盘上真的没有什么理由,所以如果这个过程消除了,那就好了。
感谢您的build议!
首先,将驱动器划分成几个RAIDarrays并将它们与LVM合并在一起是没有意义的。
USB速度非常慢,CPU密集型,所以顺序连接四个驱动器,复制这么多的数据需要很长时间。 我宁愿只换一块硬盘。
我的配方是(如果你的数据非常重要,而且你非常偏执,那么在这个操作过程中你可以添加一个USB驱动器作为热备份,但是这将花费更多的时间):
mdadm grow包含扩展分区的RAID 在此之后,您将有四个1TB磁盘和一个1TB分区,每个磁盘都join一个带有LVM的RAID5。 完美的结果。
你可以按照你的build议重新同步和replace舞蹈,但是一旦你完成了将md1&2中的所有文件拷贝到md3上,然后核对md1&2分区并扩展md3分区以使用新的空间。 要做到这一点,您需要使TB驱动器上的第一个分区成为md3的一部分,以便以后不必重新定位数据。
我build议在沙箱里做这样的工作。
我写了一篇关于如何设置文件而不是分区的沙盒的较长文章: 我可以在Linux软件RAID中“primefaces地”交换一个raid5驱动器吗?
如果您当前的HD使用量less于1TB,那么我会试着做以下事情: