linux - 尝试延长 USB 生命周期

标签 linux usb storage hard-drive usb-flash-drive

我们正在 USB 驱动器上进行缓冲,并在 x 分钟后将其发送到我们的服务器。因为这涉及大量的写入和删除周期,所以 USB 很快就会死掉(在 1.5 到 6 个月之间)

我知道这不是一个理想的情况,但由于很多原因,我需要暂时处理这个问题,作为备份解决方案,USB 将保留 (如果有互联网问题,它仍然可以在本地服务器上缓冲)。

不过,我正在尝试寻找一种方法来延长 USB 生命周期,即使这只是一个很小的改进。 我一直在阅读有限的写入/删除周期,我想知道我是否可以通过修改文件而不是创建和删除文件来节省 USB 的使用生命周期。

当前文件大小约为 524 B...这并不大,而 block 大小为 16.384 B。 根据我收集到的所有信息,我了解到这个空间将默认保留,因此我应该能够在该 block 使用另一个 block 之前再写入 30 多次,对吗?

所以我的计划是为每个需要缓冲的设备创建一个专用文件,并通过向文件添加内容而不是创建新文件来让文件增长和收缩。 而不是一遍又一遍地删除文件,而只是清空文件的内容。

所以真正的问题是:修改文件是否会(可能)保存 USB 的任何生命周期,而不是不断地创建和删除文件,或者这根本无关紧要吗?

最佳答案

首先。 pendrive和SD,使用N字节的 block ,N可以是128、256、512等等。

小块更好,因为如果一个软件写入每 128 字节或每一圈的示例,不等于写入一次 128,两次 256 字节,或四次 512 字节 block 。

因此,我将尝试获得更小的 block ,但这意味着文件的最大大小更小。

其次,也是更重要的一点,尽量不要使用 caché write through,因为它总是写入磁盘。最好将所有内容都保存在内存中,并且只在 pendrive 或 SD 中写入一次。这一点使 block 大小的第一个无效。

第三,在Linux中,你可以最小化磁盘访问 您可能希望配置 journald 以将其日志存储在 RAM 中,例如通过创建自定义配置文件: /etc/systemd/journald.conf.d/usbstick.conf

[Journal]
Storage=volatile
RuntimeMaxUse=30M 

关于linux - 尝试延长 USB 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39702587/

相关文章:

php - 从 PHP 读取 .ini 文件时如何确保其安全

linux - USB 设备执行哪些 udev 规则?

python - pyusb:无法设置配置

database - 数据库记录如何存储在磁盘上?

video - 我有哪些照片/视频/音频编码和存储 API 选项?

linux - 系统调用实际上是如何在 Linux 上发生的?

安卓USB主机通讯

Linux:直接与 USB 键盘连接

android - 以编程方式获取我的应用程序的数据库目录

php - 在 RHEL 中安装 PHP mysql 扩展