agz*_*agz 6 ssd file-transfer filesystems cache dram
我使用 SSD 通过SATA转USB桥连接到Mac来归档相对较大的文件。将其传输到 SSD 后,我将其卸载并拔掉它。
此 SSD 具有 DRAM 缓存。据我了解,该缓存既用于缓存写入,又用于存储文件映射的副本。如果我在没有卸载的情况下或在当前写入时拔出它,我会认为很可能会丢失 DRAM 中缓存的数据,甚至可能会丢失文件,因为指向映射中更改的任何数据的指针也会丢失。
我的问题是:如果我卸载驱动器并在成功卸载后立即拔掉电源,是否有可能在 SSD 将 DRAM 中的内容写入磁盘之前断开 SSD 的电源?
操作系统/APFS 是否管理 DRAM 并确保在卸载之前对其进行刷新,或者 SSD 中的固件是否执行此操作?
Gor*_*bić 26
SSD 上的 DRAM 由固件管理,但操作系统可以使用“屏障”函数调用告诉固件将所有待处理数据刷新到稳定存储。操作系统还可以告诉 SSD 是否应该启用写入缓存。
如果您完全卸载驱动器,操作系统将发出所需的函数调用以确保所有数据均已完全写入。
如果您在写入过程中拔掉它而没有完全卸载,那么一切都将失败,结果将取决于 SSD 固件、文件系统和各种其他因素。
操作系统控制的主机中都有 DRAM,SSD 固件控制的 SSD 内部也有 DRAM。
正如另一个答案中所述,如果正确弹出,所有这些都应该由 SATA 和 USB 协议中定义明确的机制来处理,以同步主机和 SSD 之间的操作。
如果在写入过程中将其拔出,很可能主机的 DRAM 和 SSD 中的数据都将保持未写入状态,并且如果未写入的数据位于主机的 DRAM 或 SSD 的 DRAM 中,则没有任何意义。 ,因为无论哪种方式都会丢失。在这种情况下,总线上甚至可能存在主机已发送但 SSD 尚未接收到的数据。
归档时间: |
|
查看次数: |
3916 次 |
最近记录: |