我有一台 Linux 服务器,上面有许多 2 TB 的磁盘,目前所有磁盘都位于 LVM 中,总共约有 10 TB 的空间。我将所有这些空间都放在 ext4 分区上,目前大约有 8.8 TB 的数据。
问题是,我的磁盘经常出错,即使我在错误出现时立即更换它们(也就是说,我用 dd 将旧磁盘复制到新磁盘,然后将新磁盘放入服务器),我经常会在磁盘上看到大约 100 MB 的损坏数据。这让 e2fsck 每次都发疯,而且通常需要一周时间才能让 ext4 文件系统恢复正常状态。
所以问题是:您建议我使用什么作为 LVM 上的文件系统? 或者你会建议我做什么(我并不真正需要 LVM)?
我的文件系统的概况:
- 许多文件夹的总大小不同(有些总计 2 TB,有些总计 100 MB)
- 几乎有 200,000 个大小各异的文件(其中 3/4 大约为 10 MB,1/4 在 100 MB 到 4 GB 之间;由于我的 ext4 分区几天内完全被破坏,因此我目前无法获取有关文件的更多统计信息)
- 读多写少
- 我需要容错(我停止使用 mdadm RAID,因为它不喜欢整个磁盘上出现一个错误,而且我有时会遇到磁盘故障,我会尽快更换,但这意味着我的文件系统上可能会出现损坏的数据)
主要问题是磁盘故障;我可能会丢失一些文件,但我不能同时丢失所有文件。
如果我继续使用 ext4,我听说我最好尝试制作更小的文件系统并以某种方式“合并”它们,但我不知道该怎么做。
我听说 btrfs 不错,但是当数据未被复制时,我找不到任何线索来了解它是如何处理丢失部分磁盘(或整个磁盘)的mkfs.btrfs -d single
。
欢迎就此问题提出任何建议,提前致谢!
答案1
这不是文件系统问题,而是磁盘的物理限制。以下是一些数据:
SATA 驱动器的不可恢复读取错误率 (URE) 通常为 10^14。这意味着每 12TB 中将有 1 个字节不可恢复地丢失即使磁盘工作正常。
这意味着如果没有 RAID,即使没有驱动器发生故障,您也会丢失数据- RAID 是您唯一的选择。
如果您选择 RAID5(总容量 n-1,其中 n = 磁盘数量),这仍然不够。对于由 6 x 2TB HDD 组成的 10TB RAID5,每年发生一个驱动器故障的概率为 20%,并且如果单个磁盘发生故障,由于 URE,您将有 50% 的机会成功重建 RAID5 并恢复 100% 的数据。
基本上,由于磁盘容量高且 URE 相对较高,您需要 RAID6 来确保安全,即使单个磁盘发生故障。
读这个:http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162
答案2
帮自己一个忙,为你的磁盘使用 RAID,甚至可以使用带有 mdadm 的软件 RAID。还要考虑为什么你“经常在磁盘上出错”——除非你使用廉价的桌面级 SATA 驱动器而不是 RAID 级磁盘,否则这并不正常。
此后,文件系统不再那么重要 - ext4、xfs 都是不错的选择。
答案3
我使用 ZFS 的运气不错,你可以检查一下你使用的任何发行版是否都支持它。公平地说,这可能意味着重建整个系统,但它确实提供了良好的性能和容错能力。
答案4
您实际上应该使用 RAID 5、6、10、50 或 60。以下是一些可帮助您入门的资源:
关于 RAID 的背景信息
- http://en.wikipedia.org/wiki/RAID
- http://www.techrepublic.com/blog/datacenter/choose-a-raid-level-that-works-for-you/3237
操作方法和设置
- http://www.dedoimedo.com/computers/linux-raid.html
- http://www.linuxplanet.com/linuxplanet/tutorials/6514/1
- http://dtbaker.com.au/random-bits/ubuntu---howto-easily-setup-raid-5-with-lvm.html
查看我的 delicious 链接以获取更多 RAID 链接:http://delicious.com/slmingol/raid