用零填充重新格式化的驱动器是否会提高写入性能?


14

我有一个2 TB的驱动器,已满> 99%。我使用删除了分区,fidsk并使用格式化了分区mkfs.ext4

据我所知,驱动器上的实际数据仍然存在。分区表仍然被重新分配。

问题是:如果要清理磁盘,是否可以提高进一步写入操作的写入性能?清理后,我的意思是用零填充磁盘?

就像是

dd if=/dev/zero of=/dev/sdx bs=1 count=4503599627370496

8
以零开头没有好处,因为它将覆盖任何以零开头的内容。
摩押

7
如果它是SSD,答案将是“ hell no”,因为mkfs.ext4实际上使用TRIM来丢弃整个分区的内容,因此,手动在其上写入零会稍微降低性能。
user1686

2
@grawity我一直想知道是否有任何SSD可以自动将全零写入TRIM。
卡巴斯德(Kasperd)

@kasperd:好的后续问题!
liori 2015年

另一个可能的跟进问题:如果所说的磁盘是安装在SAN上的VM,该VM进行了低级别的磁盘复制,则可以提供帮助(因为如果在VM级别删除了数据,除非系统正在使用某些支持VM的API ,它将向SAN发出通知,所有这些删除的块都需要保留,而将它们设置为全零将导致一堆重复的块,这些块都指向全零的东西)
2015年

Answers:


36

不,它不会提高性能。

TL; DR:旋转磁性硬盘驱动器无法正常工作。

首先,当您将任何给定数据写入旋转式磁存储驱动器时,该数据将转换磁畴,这些磁畴实际上看起来可能与所写的位模式非常不同。这样做的部分原因是,当从磁盘读取的模式具有一定程度的可变性时,维护同步要容易得多,例如,一长串的“零”或“一个”值会使保持同步非常困难。(您阅读了26,393位或26,394位吗?如何识别位之间的边界?)随着时间的推移,在计算机数据位和可存储块之间进行这种转换的技术也不断发展。例如,查找“ 修改的频率调制”,“ MMFM”组代码记录行程限制编码的更通用技术。

实际的记录过程(例如HAMRPMR带阴影的等等)与此正交,因为它们描述了磁畴如何存储在物理介质上的机制。

其次,当您将新数据写入扇区时,只需将盘片相关部分的磁畴设置为所需值即可。无论先前的磁畴在该特定物理位置处处于什么状态,都可以执行此操作。磁盘已经在写头下旋转;首先读取当前值,然后在且仅当其不同时才写入新值,这将导致每次写入都需要旋转两圈(或每个盘片需要一个额外的磁头),从而导致写入延迟增加一倍或极大地增加了驱动器的复杂性,反过来增加了成本。由于硬盘顺序I / O性能的限制因素是每个位在读/写磁头下通过的速度,因此甚至无法为用户带来任何好处。(作为旁白,随机I / O性能的限制因素是读/写磁头可以定位在所需圆柱体上的速度,然后所需扇区到达磁头下方的速度。SSD可以如此快速地处理随机I / O工作负载的主要原因是,它们完全消除了这两个因素。)

正如指出的JakeGould,其中一个原因,为什么你可能要 改写了一些固定的模式(如全零)的驱动器将是,以确保没有先前存储的数据的残余可以恢复,无论是有意还是无意。但是,由于上述原因,这样做不会对驱动器的性能产生任何影响。正如liori指出的,可以想到的另一个原因是“提高性能”,这是为了帮助压缩存储的磁盘映像的未使用部分,但是即使这样也不能提高使用中系统的性能。


3
将分区/驱动器归零的另一个原因是,如果您打算进行原始分区/驱动器转储(例如,作为备份,为多台计算机制作OS映像,作为系统迁移技术等)。零压缩得很好,这可能与驱动器上存储的先前内容有所不同。
liori

@liori好点了,但这不是常见的最终用户方案,它与OP所描述的相去甚远。
2015年

那么光盘是非旋转的还是磁性的?
Max Ried

4

你这样说:

问题是:如果清理磁盘,是否可以提高进一步执行写入操作的写入性能?清理后,我的意思是用零填充磁盘?

100%不行。将零写入磁盘不会提高性能。您只会这样做破坏数据。所以知道了,你这样说:

据我所知,驱动器上的实际数据仍然存在。

从技术上讲是……在某些基本级别上,驱动器上先前存在的数据仍然存在。就是说,它目前尚不以易于访问或恢复的形式存在,但是如果您真正担心数据会被愿意努力恢复那些数据片段的人所破坏,则可能会感到担忧。保持。

因此,如果需要考虑安全性和隐私性,那么您可能需要将零写入驱动器以确保真正清除了所有可用空间。但是安全性和隐私性是您绝对会用零清除可用空间的绝对唯一原因,因为这样做绝对不会提高性能。


运行这样的工具是否recover不算“简单”?它将在刚刚存储的完整驱动器上打开大量文件mkfs
hobbs 2015年

0

我给大家的两美分礼物是我自己的经历,是的,但有一定帮助,但要谨慎。

我有很多SSD,根据我自己的测试,我建议在重写主表之前使用零填充,然后重新创建主表,而不是删除分区。

稍后我将解释原因,但是步骤将是dddd来填充整个SSD,使用bs = 1M,比bs = 1快得多,并且忘记了count参数使它一直结束(这将给您以下错误:到达终点,因此请不要担心看到此类错误,必须将其显示出来);完全填充后,使用gparted或根据需要编写主表(MBR / GPT / etc)的任何方法,这将“修剪”所有磁盘,然后创建具有所需格式的分区等。

为什么用零填充?简短的答案是,我的经验是,当我用零填充一些SSD时,修复了2-24个无法读取的块,而不再有无法重新使用的块。

现在,当我使用新的SSD时,我要做的第一件事是将其完全填充为零,以确保我不会再遭受无法读取的1KiB块的常见随机错误。

我的经验:使用软件读取/测试整个SSD(它告诉您读取每个“扇区”需要花费多少时间),我得到了很多成对的“ 512byte secttor”(1KiB块),它们是不固定的,以及它们的位置随机变化,失败次数从2到24等,等等。用零完全填充后,重新创建主表(可以进行修剪),不会再有不可读的扇区。

我的崩溃测试:充满了零以从此类错误中恢复,我让一个SSD可以使用,几个小时后,仅写入了不到1 TB的数据(120GiB SSD),它惨死了,它不允许任何不能再访问它了,主板BIOS看不到它,访问它时USB机箱冻结,因此Windows都看不到,Linix fdisk也看不到它。

这是一次“死”测试,我同时购买了多个固态硬盘,相同的固态硬盘...我所有未归零的东西都死了,其余的都重新分配了很多块,但再也没有任何不可读取的错误。

当然,我的结论是,无论品牌和容量如何,所有SSD都不可靠。

因此,以我的经验,对他们来说,第一件事就是迫使他们至少填充一次,用零比随机填充更好(更快)。

而且,大多数SSD写入零时都会进行内部修整(garbe回收算法等)。

同样,如果您第一次填充它们一次,则任何会产生写错误的块都会被重新分配。最好不要有重要数据发生这种情况,如果丢失数据(全为零)则将其写入零是无关紧要的,但是如果数据对操作系统“至关重要”,则情况非常糟糕。

大多数SSD重新分配都会这样做,但是会丢失导致写入错误的块上的数据,只有“企业”(每个GiB的成本> 10欧元)会在正确重新分配之后重试写入。某些SSD也会在此类故障块上松开所有其他“扇区”(例如进行“丢弃”)。

因此,最好先尝试一下,在完全填充后,检查SMART数据以查看仍然可以进行多少重新分配。

进行多少重新分配并不重要,大多数SSD来自制造商,其中一些块已经重新分配,找到一个零的块小于1%,因此重要的是比率,重新分配与将来可能的重新分配。

根据我的经验,在5年内有数百个SSD失效之后,有的在使用的第一个小时内就消失了,有的在一周之内就消失了,有的在一个月内就消失了。但是我所做的全部零填充工作确实可以持续2到3年,每天写入13GiB,写入3 * 365 * 13 GiB = 13.9TiB,远低于制造商所说的(> 100TiB)。

但是速度很重要,如果在Windows上,大多数情况下(在Linux上良好的2xHDD LVM2条带化可以提供相同的启动时间,但在> 25年内不会失败),因此使用价格为每千兆字节0.21€(120GiB = 25€)的SSD是值得(对于Windows),其中2或3年后可以更改;我希望技术能够提高可靠性。

对于Linux,我不再希望SSD能够可靠地工作,但是对于Windows(Vista,7和10),则必须进行系统分区(在某些情况下,使用Windows Vista,启动时间要短10倍,而不是30分钟以上的启动时间)在我的旧笔记本电脑上启动时间超过4分钟)。

是的,根据我的经验,必须用零填充。

但是,仅当您收到SSD并将其用于任何用途之前。

提示:如果SSD无法很好地进行垃圾收集,并且操作系统没有告诉它全部清除,则最好用零填充,最后这就是SSD丢弃块时内部的情况。同样写零将清除电子,这就是为什么它有助于恢复失败的读取块。

而且,每次您更改数据时,尝试进行克隆,SSD都会告知写入正常,在无法读取的扇区(它们可以写入正常但无法读取)上,也没有旨在支持这种条件的操作系统,他们只要写好就可以读取数据;不要将可读性与读取的不同数据混淆,而不是写入了什么数据。

这就是我对SSD和HDD的经验。对于Windows启动和应用程序,我使用SSD,但是自从SSD死于不到3年以来,总会在普通HDD上完成克隆,但是gor Linux我使用2倍或3倍的2.5英寸优质硬盘,在正常使用时获得的时间与SSD所提供的时间相似,但持续时间更长(> 25年)。

我不愿意为1000GiB固态硬盘固态硬盘支付10年以上的费用超过1000欧元,而我愿意每2或3年为25G的130GiB支付25欧元。价格每年100欧元(企业)很重要,而每年10欧元(Yucon,三星等)很重要,只需做一下数学即可。


只要有保留的扇区仍然可用,强制覆盖坏扇区确实是一种“修复”它们的可靠方法。
五彩纸屑
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.