我刚刚升级并重新安装了家庭服务器。我做的一件事是从软件 RAID 升级到 RAID 卡。
完成此操作并开始复制备份后,我注意到我的第一个约 1TB 备份占用了新阵列上约 1.4TB 的空间。由于空间使用量增加了 400GB,我猜我做错了什么。
我的设置
我的操作系统安装在单独的 32GB SSD 上。阵列中使用的所有驱动器均为 WD Red 2TB WD20EFRX。
我以前的设置是在 Ubuntu 14.04 桌面上,带有 3x2TB RAID-5 阵列(剩余 4TB 可用)。我使用的是主板 BIOS 中的软件 raid 功能。我使用 GNOME 中的磁盘实用程序对阵列进行了分区和格式化。我不确定我使用了什么格式。这很可能是默认格式。
我的新设置是在 Ubuntu 14.10 Server 上。阵列现在是 6x2TB RAID-5 阵列(理论上还有 10TB 可用)。我现在使用的是 RocketRaid 2720SGL“假硬件”RAID 卡。
设置过程
我安装了驱动程序和 WebGUI,然后初始化驱动器并通过 RocketRaid WebGUI 创建了新的 RAID-5 阵列(我在评论中看到它比卡的 BIOS 功能更受推荐)。由于不确定更高级的设置,我选择了默认的扇区大小 512B。构建过程顺利进行了一整夜。
然后我使用 fdisk 对阵列进行分区。由于磁盘的大小,fdisk 警告我需要选择 GUID 分区表 - 我照做了。我将阵列格式化为 ext4(根据我的研究,这似乎是推荐的选择)。对于扇区大小、扇区起始和扇区结束,我选择了提供给我的默认值。
使用 fdisk -l 现在看起来像这样
Device Start End Sectors Size Type
/dev/sdb1 2048 19534315486 19534313439 9.1T Linux filesystem
在构建阵列时,我最初考虑选择 4K 而不是 512B。然而,当我研究我使用的驱动器时,我发现一些关于使用 4K 扇区大小的争论,所以我决定不这样做。
我将原始阵列备份到 3 个不同的外部 1TB 驱动器上。我已将约 980GB 的目录块从原始阵列复制到第一个外部驱动器(外部驱动器的格式为 ext4)。从此外部驱动器恢复时,我通过 USB 将驱动器连接到服务器并将其安装到 /media/usb。然后我使用此命令将备份从第一个外部驱动器复制到我的新阵列。
rsync -av /media/usb /media/array/drive-one
这复制了外部驱动器上的所有内容(应该是 980GB)。这些文件现在在我的新阵列上占用了 1.38TB。
那么,这与我配置扇区的方式有什么关系吗?或者也许与我从备份中复制文件的方式有关?
答案1
6*2TB RAID5 将为您提供 8TB 数据和 4TB 奇偶校验以及 10GB 数据和 2GB 奇偶校验
前者为您提供双磁盘故障保护,而不建议使用后者,因为它为您提供单磁盘故障保护,没有任何进一步的冗余。此外,根据 UI,您将看到真实的使用情况(包括奇偶校验)或伪造的使用情况(不包括奇偶校验),因此您所看到的对我来说看起来并不异常。
理想的 RAID5 设置是 5 个磁盘+1 个热备用磁盘。 其背后的逻辑是,您同时购买所有磁盘,因此它们将(可能)在同一时间发生故障,并且如果其中一个磁盘发生故障,热备用磁盘将接管(这就是为什么它被称为“热”:它已打开电源,但不执行任何操作,直到其他磁盘之一发生故障)让您有时间订购新磁盘并继续正常操作而不是“降级模式”操作......
现在轮到你能使用第 6 个磁盘作为热空闲的但作为驾驶为您提供更多平等,但你也可以用它来增加存储空间这意味着牺牲双硬盘故障保护。和那这就是为什么它不被鼓励... ;-)
看看这个RAID 计算器请点击此处并通过数字来获取更多信息。
了解更多信息:维基百科 RAID 解释(阅读所有内容,包括历史)以及一篇关于RAID5