我正在建立一个linux服务器,它有一个驱动器笼,可以让我热插拔大约6个驱动器.我追求的特点是:
>驱动器故障容差(所以……基本上是RAID)
>在线更换故障驱动器
>驱动器空间的高利用率(即,如果我有6个1TB驱动器,带有一个奇偶校验驱动器的5TB优于6个镜子上的1TB)
>在整个驱动器空间内灵活分配卷(所以… LVM)
>这是曲线球:我也希望能够尽可能地在未来用更大的驱动器替换驱动器,同时减少服务器上的停机时间.
如果我只想通过用较小的驱动器替换驱动器来增加空间,我可以将LVM与lvreduce一起使用(当然,我提供的是像Reiser或ext [2-4]那样的可收缩FS,以及当前的FS可以通过我想要拉动的驱动器数量来缩小.但这并没有给我任何冗余.
我能想到的第一个解决方案是获得冗余和更换驱动器的能力,就是将驱动器用作镜像对.一对将是md0,下一对将是md1等.然后,我将这些添加到单个卷组.当我想添加空间时,我会将其中一个md *设备从卷组中删除,拉出两个驱动器,添加两个更大的驱动器,制作一个新的md镜像,然后将它们添加到卷组中,展开FS,我已经完成了.
但这会将我的空间效率降低到50%,因为每个物理驱动器都有它自己的镜像.我只得到3TB ……这将使我需要更快地更换更大的驱动器.
当然,我可以将它们作为3驱动器RAID5集插入,而不是镜像对.每3个驱动器将给我2TB.所以,我总共得到了4TB,但现在我遇到了一个问题,为了从卷组中提取md设备,它需要更多的空间(拉一个需要2TB而不是1TB).这意味着我在FS中需要更多的松弛空间,否则我无法像这样交换驱动器.
所以,这就是我被困住的地方.我知道通过异构驱动器大小和在线驱动器更换获得冗余的唯一方法需要我在更高的空间效率和更高的松弛空间要求之间做出权衡决定,以便拉动驱动器(或驱动器组) ).
我有什么聪明的伎俩吗?