我偶然发现了这篇关于基于硬件的硬盘加密的文章,并意识到这不仅可以提供一种保护数据的好方法,而且还可以加快我们用来加密数据的应用程序的速度。
这让我想知道...
是否可以对压缩做同样的事情,以便在读取和写入驱动器时对所有数据进行适当的压缩或解压缩?
我已经有一段时间没有进行任何固件编程了,所以我什至不确定这在技术上是否可行。
但是,如果是这样,它可能会为人们提供更多的存储空间。
在固件中使用这种方法进行编程的优缺点是什么?
我偶然发现了这篇关于基于硬件的硬盘加密的文章,并意识到这不仅可以提供一种保护数据的好方法,而且还可以加快我们用来加密数据的应用程序的速度。
这让我想知道...
是否可以对压缩做同样的事情,以便在读取和写入驱动器时对所有数据进行适当的压缩或解压缩?
我已经有一段时间没有进行任何固件编程了,所以我什至不确定这在技术上是否可行。
但是,如果是这样,它可能会为人们提供更多的存储空间。
在固件中使用这种方法进行编程的优缺点是什么?
在速度为 100 美元的 1TB 驱动器的世界中,它是比空间更有价值的资源。这不值得。
编辑:
啊,所以您是说从盘片上抓取 100 字节的压缩数据,解压缩然后将其发送到系统,而不是抓取 800 字节的未压缩数据并将其发送到系统会更快,因为寻道时间太慢了。
这似乎是一个聪明的方法,但我敢打赌,如果最终值得权衡,那么硬盘制造商已经采用了这种技术,尽管事实上硬盘驱动器的速度仍然如此。
但谁知道呢,你可能正在做某事!
我记得大约 15 年前,我看到一个广告,说有一个可以进行硬件压缩的 IDE 控制器卡。不确定它是否有任何好处。那是 1GB 驱动器超过 1,000 美元的日子。
谁记得堆垛机?这一切在 80 年代/90 年代就已经完蛋了。速度从来都不是问题,也不是“棘手的”。这些天完全没有必要。
如前所述,收益并不大,尤其是如果您以压缩形式存储很少访问的文件。
因为在硬件中很难做到(应该报告什么磁盘大小?如果输入的熵等于它的大小,你会怎么做?)而且现代 CPU + RAM 与 HDD 相比无论如何都快得惊人,只需在软件中完成.
我知道的一个实现是compFUSed,它位于任何其他文件系统之上,另一个是 ZFS博客条目,介绍了如何启用它,它支持原生压缩。
前段时间我也想过这个想法用于网络流量 - 之前已经做过:有使用 gzip 进行压缩的加速卡:http ://www.aha.com/show_prod.php?id=36
我还想到另一个好处是,现在您可以在不压缩驱动器内容的情况下传输 - 只需从磁盘读取压缩块并发送,而不必在以后压缩。
这是可能的,但非常非常棘手。您必须开发自定义驱动程序,因为虽然加密扇区与常规扇区大小相同,因此使用相同的数学来查找数据,但压缩扇区“更小”,因此您要么必须持有“真实”扇区的地图才能操作系统中或驱动器本身上的压缩扇区。
唯一的另一个方面是访问速度和延迟。它不应该影响搜索,但是压缩数据可能需要比写入数据更长的时间 - 压缩是相当密集的计算。
此外,在您获得大量数据之前,压缩并不是很好。您可能可以即时压缩 512 字节(1 个扇区)并平均获得百分之几的压缩,但人们真的希望看到 20% 甚至更多的压缩,然后才愿意为硬件支付额外的现金。
它将需要更多的磁盘处理能力和内存,这将增加驱动器的成本。
此外,驱动器容量的增长速度可能不符合成本效益。
例如,假设您开发了奇迹压缩技术,将空间翻倍,而不会降低性能,没有额外的(易碎或容易崩溃的)驱动程序,适用于任何操作系统等。但它会增加 100 美元的驱动器成本。
现在有人为 1TB 驱动器执行此操作,将其转换为 2TB 驱动器可能是有意义的,但在 6-8 个月内,2TB 驱动器将低于 200 美元。任何较小的驱动器都不值得,因为您现在可以以 99 美元的价格获得 1TB。
如果你这样做了,它可以在驱动器和计算机之间工作,你将比直接将它构建到驱动器中具有更大的延迟,并且价格/性能的影响可能不值得。
因此,从技术上讲这是可能的,但存在缺陷并增加了系统的复杂性和弱点,但即使它没有这些缺点,也可能不值得。
-亚当
另一个考虑因素是磁盘上的大多数大文件(音乐、图片和视频)通常已经压缩(MP3、JPEG、MP4/MOV),因此压缩对这些文件没有帮助。未压缩的文件(文本文件、文字处理、电子邮件文本)往往是杯水车薪。
我自己也想知道同样的事情,因为我正在搜索数千个 gzip 压缩的文本文件,并解压缩我的四核 i7,我想知道专用 gzip 硬件是否可以像 GPU 加速并行处理一样加速它。但我怀疑上述问题会导致对于大多数用途而言,压缩硬盘驱动器不会有太大帮助。