驅動器管理的 SMR 驅動器中的寫入指標是否會被重置?

驅動器管理的 SMR 驅動器中的寫入指標是否會被重置?

我擁有一個 Seagate Expansion Desktop 5TB 外接硬碟,其中包含一個符合hdparm.雖然在互聯網上找到的資訊尚無定論,但我強烈懷疑該驅動器利用疊瓦磁記錄——我所觀察到的 I/O 模式很難用其他方式來解釋。顯然,它是驅動器管理的類型,因此對使用者(和作業系統)是透明的。

閱讀該技術後,我發現對於即將到來的主機管理(以及部分主機感知)類型,驅動器的每個區域都將有一個關聯的寫指針,並且設備驅動程式和文件系統必須始終繼續寫入該位置的區域。或者,要完全重寫區域,可以將寫指標重設為開頭。我假設驅動器管理的 SMR 驅動器的工作原理相同,由驅動器控制器管理區域存取。任何沒有落在寫指標上的寫入操作都會先放入隨機存取持久性快取中,從而在大多數情況下保持速度。

但是,由於作業系統不知道這是一個 SMR 驅動器(即使它正確猜測,它也不知道區域邊界在哪裡),因此它無法告訴驅動器重置寫入指標區。一旦區域第一次被填充,任何後續的寫入命令(不會立即寫入整個區域)都會觸發讀取-修改-寫入週期。至少,這就是我的假設,解釋了為什麼我無法傳輸連續的 100 GB 文件,而在第一個 20 GB 左右的文件之後,速度不會降低到個位數 MB/秒。 (它很可能正在寫入磁碟機中先前被大檔案佔用的區域,該檔案後來已被刪除。)

那麼,有誰知道,或者有人想知道是否有任何方法可以告訴驅動器管理的 SMR 驅動器某個特定區域不再包含任何有用的數據,並且可以安全地部分覆蓋而無需先通過緩存? (我可以想像安全擦除會觸發這一點,但這幾乎不是人們經常做的事情。)

相關內容