web-dev-qa-db-ja.com

キャッシュSSDシャットダウンデータの損失

ほとんどのSSDには、高速書き込み速度を提供するキャッシュがあります。しかし、フルキャッシュでコンピューターをシャットダウンするとどうなりますか?そのキャッシュは揮発性ですか?キャッシュはどのくらいの速さで処理および保持されますか?大量のデータを転送した後、コンピュータをシャットダウンする前に数秒待つ必要がありますか?データ損失を回避するために停電保護が必要ですか?

4
kfaria

制御されたシャットダウン中に、OS /ファイルシステムは保留中のすべての書き込みを安定したストレージにフラッシュし、揮発性書き込みキャッシュにデータが残っていないことを確認する最終書き込みバリア(つまり、ATA FLUSH)を発行します。これには時間がかかる場合がありますが、何もする必要はありません。操作が完了するまで(そしてシステムの電源がオフになるまで)待ってください。

しかし予期しないシャットダウン中、たとえば停電直後に何が起こりますか? powerlossで保護された書き込みキャッシュがないコンシューマーSSDでは、非同期のキャッシュコンテンツが失われます。キャッシュされたデータの損失を回避するために、ユーザー/ OSは、sync + barrierプリミティブ(つまり、Linuxでのsyncおよびfsync())を介して、重要だが保留中のデータ(データベースの書き込みやファイルシステムジャーナルの更新など)を明示的に同期およびフラッシュする必要があります。

コンデンサベースの電力損失保護ライトバックキャッシュを提供するエンタープライズSSDでは、突然の電源障害が原因でデータが失われることはありません。ドライブの種類/ファームウェアに応じて、この保護されたキャッシュはライトバックまたはライトスルーとしてエクスポートできます。

  • 最初のケース(ライトバック)では、OSは書き込みバリアとキャッシュフラッシュを送信し続けますが、ドライブがオンボードコントローラーがパワーロス保護回路の問題を検出しない限り、それらを無視します。この操作モードでは、オーバーヘッドが多少高くなります(OSによってバリアが生成されるため)。ただし、ドライブは、内部ヘルスカウンターに基づいて、実際のライトバック/ライトバック+フラッシュ/ライトスルーモードを動的に切り替えることができます。

  • 2番目のケース(ライトスルー)では、OSは書き込みバリアの送信を回避します。これにより、パフォーマンスが向上します(OSオーバーヘッドが少ないため)。ただし、ドライブの電子機器が「完全な」ライトスルーに切り替えることができる問題を検出した場合、any書き込みは重要であると見なされ、すぐに物理にフラッシュされます。メディア。

4
shodanshok

はい。ファイルシステムは、自身の「レイジーライター」が永続ストレージへのすべての書き込みをフラッシュするまでシャットダウンを遅らせます。ただし、「電源を切る」を押すと、キャッシュ内のすべてのデータが失われます。明らかに。

2
BaronSamedi1958