use*_*405 9 encryption performance hard-drive partitioning
我刚买了一个新的外置硬盘。我想用 VeraCrypt 在它上面创建一个加密分区。我用类似的驱动器做了同样的事情。我只是将一个文件复制到它上面,速度约为 100 MB/s。另一个驱动器在加密后的速度要低得多,可能是 10 MB/s。我不知道驱动器的原始速度是多少。
这是否意味着加密分区比未加密的加密慢,即使在安装它之后也是如此?它是否真的在复制时加密了新复制的文件,从而大大减慢了复制操作?
小智 3
我使用 USB 3.1 Gen 2 Type C 硬盘(能够以 10Gib/s 写入,也就是略高于 1GiB/s)进行的测试是:
哦,是的,我非常幸运我可以拥有(仅几天)一块带有 4 个插槽的主板和 4 个微处理器,每个微处理器有 16 个内核,所以总共有 64 个内核......还有 RAM,哇!它是 32GiB 的 ram,分为 4 个部分,每个部分靠近每个处理器插槽,每个部分有 4 个存储体,每个存储体上有一个 2GiB ram 4Sections*4Banks/section*2GiB/Bank=32GiB...我接触过的最快的 PC。
换句话说:
我已经使用其他加密软件(非常昂贵)进行了测试,该软件模拟整个 SAS 控制器(是的串行 SCSI)并且还模拟连接到它的整个 HDD...因此在 Windows 上您可以启用和禁用其写入缓存...软件写入小文件与写入大文件一样快(如果在 Windows 上启用了此类写入缓存)。
我正在谈论 Windows 写入缓存,因此我将向不知道如何启用/禁用它的人解释如何启用/禁用它:
请记住,如果写入缓存已打开,请在要求安全删除后,在没有 Windows 通知您可以安全弹出它的情况下,不要拔出它。
好吧,该缓存仅影响在设备上完成的写入操作,因为该设备是物理设备,这意味着写入 HDD 的加密数据,而不是写入 NTFS 结构的未加密数据。
那么会发生什么呢?Windows 在没有写入缓存的情况下写入 NTFS 结构,然后 VeraCrypt 进行加密(是管道式)并将加密数据发送到 HDD,然后 Windows 看到设备已打开写入缓存,因此稍等一下即可写入数据...但是修改NTFS结构是在没有缓存的情况下完成的...所以实际上Windows要求VeraCrypt在短时间内多次加密相同的结构(当写入小文件时)...所以VeraCrypt必须加密很多次将被放置在磁盘的完全相同的簇上的东西。
与未加密相比,这会导致非常非常巨大的速度减慢。
过错又该归咎于谁呢?部分原因是 Windows NTFS 不缓存结构更改,部分原因是 VeraCrypt 不模拟设备。
VeraCrypt(来自 TruCrypt 等)的这种工作方式会导致另一种罕见的情况,例如 SmartDefrag 无法查看并对其上的文件进行碎片整理(Piriform Deflagger 可以,因此可能是 SmartDrefrag 上的糟糕算法)...BootIce 也可以看到它们作为 IFS: 而不是 HD#: 或 RM#:...某些分区管理应用程序甚至无法看到它,等等。
另一个副作用(对于 Linux 用户):实际上,如果您在 Windows 上尝试,则无法将 VeraCrypt 分区格式化为 Ext4...至少我尝试过的所有允许创建(我的意思是格式化)Ext4 分区的分区工具看不到 VeraCrypt设备(这是很正常的,因为 VeraCrypt 不模拟设备)。
其中...对于某些备份(在Windows上),我仍然使用VeraCrypt和启用压缩的NTFS...并且我不启用物理设备写入缓存(没有意义),为什么我想缓存加密数据的写入。 .. 我想缓存 NTFS 修改,而不是发送到 HDD 的数据... VeraCrypt 为此使用了良好的写入缓存,那么为什么要使用双缓存... 可怕的是 Windows 不在 RAM 上缓存 NTFS 更改,只缓存“簇”发送到磁盘。
如果您认为将 veraCrypt 加密引擎放在更低的层(最接近 HDD 物理写入)会获得一些好处……错了!问题是这样的:
这就是问题所在...步骤 5 和后续步骤...如果 NTFS 有写入缓存,则它们将无法完成...但 VeraCrypt 不提供该级别的缓存选项...要做到这一点,需要模拟一个完整的设备。
因此,存储文件文件夹列表的集群会被多次发送到 VeraCrypt,每个文件一次;而不是在目录中设置所有文件后仅发送一次。
用简短的话来说:问题是多次加密同一个文件夹列表...认为它是在写下每个字母后加密整个文本,而不是在写完后加密整个文本...这使得事情顺利进行非常慢(当短时间内对同一文件夹进行大量更改时,例如添加大量小文件)。
更不用说,这个问题还影响文件删除......将超过一万个文件放在未加密磁盘上的文件夹中(打开写入缓存),删除它们只需要不到一秒(如果写入缓存关闭则需要更多时间)超过一小时),现在做同样的事情,但是加密分区并打开写入缓存(是的,激活),删除这么多文件会导致文件夹文件列表加密一万次,在同一个磁盘上也需要很多(非常接近,就好像没有加密而没有写入缓存一样)。
所以,总的来说:加密会使操作变得更慢,这不仅是由于 CPU 速度慢或其他进程的 CPU 使用率高等原因造成的,还因为 NTFS 结构更改缺少写入缓存,从而导致多次加密将存储在同一位置的信息。
希望我可以让人们了解加密...并希望 VeraCrypt(我所见过的安全性最好的)能够在加密之前激活 NTFS 写入缓存...这很容易做到,只是加密不同任何集群的一点点,如果在结束之前对该集群进行另一次写入,则只需忽略以前的未加密数据...因此加密仅进行一次...换句话说...加密之前的动态缓冲区。
不好的部分是...断电、突然关机等...将使丢失信息的大小变得更大...就好像您使用具有 1GiB 缓存的 HDD 而没有电池等...这始终是速度或确保写入完成之间的竞争...我更喜欢速度,让我解释一下原因...
如果复制一百万个小文件(全部在同一个文件夹中;建议您,Windows 真的很讨厌这样做)只花费 10 分钟(在所有级别上启用写缓存),而不是一周(在所有级别上写缓存关闭)...你自己算算……这些数据是现实生活中的时间,是我自己在过去对 NTFS 系统进行的异常测试中获得的(FAT32 更快)。
数学是:只需要十分钟与一整周需要电力的风险有多大?我会失去多少?如果缓存打开,我可能会丢失 1/600 的数据(或多或少);如果缓存关闭,我只能丢失当时正在处理的文件...但在这两种情况下,我都需要进行比较(完全比较,因为文件名可以位于目录上,但内容可能不同),所以我需要几乎相同的时间来确保所有内容都被很好地复制...我宁愿浪费 10 分钟,也不愿花一周的时间来比较并看看有什么遗漏或不同的内容等。
一般来说,如果松散对你来说不是一个选择......刚开始你不会使用 Windows,FAT32、NTFS 等......至少不会使用 Linux 和 Ext3/4(日志)和电源发电机等
所以,请 VeraCrypt 尽快放入 NTFS 的写入缓冲区。
最后注意:FAT32 受到相同概念的影响...它不仅仅是 NTFS...它是 Windows 在创建或删除文件时要求更改目录的方式。
进行此测试以查看速度如何完成...在 lop 中创建一万个零大小的文件...记下前 100 个所需的速度/时间,以及在中间或后一个 100 个所需的时间。结束...你真的会每分钟看到一个文件(在一些不那么高速的CPU中)...啊!在内存驱动器上执行此操作(以确保 HDD 不会影响速度)。
现在结束...我无法抗拒在 Linux 上进行相同的测试(通过驻留在 VeraCrypt 卷上的 Ext4 分区)...记住在 Linux 上所有都是设备...所以 VeraCrypt 向内核呈现一个设备。 ..所以写缓存可以在两个级别上打开,Ext4级别和物理集群写入...并且默认情况下Linux将它们全部打开。
在 Linux 中,它确实飞得很快……正如预期的那样,因为在两个设备上都打开了写入缓存,通常安装在 /media/veracrypt# 上的设备和物理 /dev/sd$# 上的设备(如果谈论的是)加密物理分区)。
但是,嘿,VeraCrypt 没有用于 Ext4 更改的写入缓冲区,不,是 Linux 拥有它...更重要的是...未发送到磁盘的时间段一旦另一次发送到磁盘就会重置写到它;一些Linux有一个上限,并且将数据发送到磁盘超过了这个限制,但其他Linux没有,也无法将数据发送到磁盘多年,例如,当一个集群每秒写入两次时,每秒写入一个完整的数据。那一年,这一年的簇永远不可能被写入物理磁盘。
因此,在 Linux 上,Linux 是否不会多次发送文件夹列表(如果在短时间内对其进行更改,例如在同一文件夹上创建大量文件,如复制时等),因此 VeraCrypt 会在所有文件都设置在文件的文件夹列表中之后,仅进行一次加密...等等。比添加每个文件后加密整个目录文件列表要快得多。
想想看:Windows 讨厌,Linux 喜欢……不管怎样,Linux 往往会在断电时丢失很多信息,比 Windows 多得多……仅仅因为它有 write chache……还有什么更好呢?速度?或者安全写入完成?全部复制需要 10 分钟,还是需要一周?有些人喜欢其中一种,另一些人喜欢另一种……这取决于你。
但至少,我希望我已经澄清了为什么将大量小文件(当然在 Windows 中)复制到加密容器(磁盘、分区、文件等)与未加密时的物理设备相比会如此缓慢。
归档时间: |
|
查看次数: |
14681 次 |
最近记录: |