我有一个带有许多2TB磁盘的Linux服务器,目前所有的LVM都有10TB的空间。 我在ext4分区上使用了所有这些空间,目前有大约8,8TB的数据。
问题是,我经常在我的磁盘上得到错误,即使我错误出现,即使我replace(也就是说,我将旧的磁盘复制到一个新的与dd的新磁盘,然后我把新的一个在服务器中)我经常得到大约100 MB的损坏数据。 这使得e2fsck每次都变得疯狂,而且通常需要一个星期的时间才能使ext4文件系统再次处于正常状态。
所以问题是: 你会推荐我在LVM上用作文件系统吗? 或者你会推荐我做什么(我真的不需要LVM)?
我的文件系统的configuration文件:
主要问题是磁盘故障; 我可以丢失一些文件,但我不能同时损失一切。
如果我继续使用ext4,听说我应该尽可能地制作更小的文件系统,并以某种方式“合并”它们,但我不知道如何。
我听说btrfs会很好,但是当数据不被复制( mkfs.btrfs -d single
?)时,我无法find如何pipe理丢失一部分磁盘(或整个磁盘)的方法。
有关这个问题的任何build议将受到欢迎,提前致谢!
这不是文件系统问题,这是磁盘的物理限制。 这里有一些数据:
通常将SATA驱动器指定为10 ^ 14的不可恢复的读取错误率(URE)。 这意味着即使磁盘工作正常, 每12TB 1个字节也将不可恢复地丢失 。
这意味着没有RAID,即使没有驱动器出现故障,您也将丢失数据 – RAID是您唯一的select。
如果您selectRAID5(总容量n-1,其中n =磁盘数量),则还不够。 10TB RAID5由6 x 2TB硬盘组成,每年有一个硬盘故障的可能性为20% ,而且由于URE,您将有50%的机会成功重buildRAID5并恢复100%的数据。
基本上,磁盘的容量和URE相对较高,您需要RAID6才能保证安全,即使再次出现单个磁盘故障。
阅读: http : //www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162
帮你一个忙,为你的磁盘使用RAID,甚至可以用mdadm做软件RAID。 另外想一想为什么“经常在你的磁盘上出错” – 这是不正常的,除非你使用便宜的桌面级SATA驱动器而不是RAID级磁盘。
之后,文件系统不再那么重要了 – ext4,xfs都是不错的select。
我已经与ZFS运气不错,你可以查看是否可以在任何发行版上使用。 公平的警告,这可能意味着重build整个系统,但它提供了非常好的性能和容错性。
我逐渐添加更大尺寸的新磁盘
由于您在使用LVM方面很有趣,并且您想要处理多个驱动器,所以简单的答案就是使用属于LVM的镜像function。 只需将所有物理卷添加到您的LVM中。 当你创build一个逻辑卷时,通过--mirrors
选项。 这复制您的数据。
另一种select可能是设置几个RAID1对。 然后将所有RAID1卷作为PV添加到您的VG。 然后,只要你想扩大你的存储空间,就买一对磁盘。
你应该真的使用RAID 5,6,10,50或60.这里有一些资源让你开始:
有关RAID的背景信息
如何&设置
看看我的美味链接更多的RAID链接: http : //delicious.com/slmingol/raid
如果你真的担心数据损坏,我会推荐一个校验和的文件系统,比如zfs和btrfs – 但是请注意,btrfs仍然被认为是在开发中,而不是生产就绪。
从磁盘读取(甚至是成功读取)的数据是正确的。 块有校验和,但它们是简单的校验和,并不总是能够发现错误。 像ZFS这样的较新的文件系统将更强大的校验和附加到文件,并可以(并据报道)捕获和修复硬盘或RAID控制器没有注意到的数据错误。
正如@ c2h5oh所说 , 不可恢复是非常重要的 – 这意味着磁盘已经尝试过,并且无法重新读取扇区。
根据我的经验,一旦磁盘开始产生不可恢复的读取错误(URE),一些数据将永远丢失,您唯一的希望就是使用GNU ddrescue立即备份所有数据,这样可以重试失败的扇区以及跳过不可恢复的扇区。
假设你有备份,它们可能由于URE而失败,并且肯定会有一些损坏的文件,所以你将不得不拼凑来自同一文件系统的各种备份的全套数据。
其他推荐ZFS的答案值得一读,因为它的持续数据清理和RAIDfunction将有助于保证将来的数据更安全 – 尽pipe仍然不能取代备份,这也可以防止用户和pipe理员的错误。
如果不需要快照,我只会使用LVM – 它不能很好地与RAID集成,不包含数据清理/数据校验和,而且您仍然需要备份,所以像ZFS这样的东西可能是更好的select。 有关LVM问题和风险的更多信息,请参阅此答案 。