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