====== CrucialのSSDのTrimコマンドはバグ持ちらしい ====== 最近知ったのだけど、[[http://forums.crucial.com/t5/Crucial-SSDs/M500-M5x0-QUEUED-TRIM-data-corruption-alert-mostly-for-Linux/td-p/151028|CrucialのSSDのNCQなTrimコマンドにはバグがある]]らしく、[[https://github.com/torvalds/linux/blob/64e22b86854227b4d13a57fa02f26472bc426812/drivers/ata/libata-core.c#L4227|Linuxではブラックリスト入り]]してる模様。このバグを踏むと、SSDがビープ音を発しデータがぶっ壊れるそうな((((;゚Д゚)))) フォーラムとブラックリストを見る限り“QUEUED”なTrim固有の問題のようだが、[[https://blog.algolia.com/when-solid-state-drives-are-not-that-solid/|ここ]]によれば“non-QUEUED”なTrimでも起きると書いてある。どっちが本当なんだ…? 他に情報をあたってもLinux以外のOSでの回避方法やら発生報告は見当たらないし、良く分からん。シェアからしたらWindowsでの報告があっても良さそうだけど、例え本当にバグ要因のデータ消失が起こっていたとしても、寿命要因でのクラッシュくらいにしか見られて無さそう…。 そもそも、TrimのQUEUEDとnon-QUEDEDって何やねんって話だが、要はNCQに対応してるかどうかの違いみたい。当初、Trimコマンドは非NCQなコマンドとして規定され、その後Serial ATA Revision 3.1でNCQ版が登場したという歴史のようだ。もしかして、バグの原因はNCQでコマンドが並べ替えられた結果、データ読み込み要求よりTrimコマンドが先に発行されて、データがぶっ壊れるというオチだったりして?(流石にこんな単純なバグではないだろうけど) とりあえず、うちではCT960M500SSD1を1年ほどMacOS XでTrim有効の状態で使っていたが、バグったことはない。ついでに現在進行形でCT128M550SSD1をFreeBSDでTrim有効で使っているが、今のところ問題は出ていない。 ===== 参考サイト ===== * [[http://forums.crucial.com/t5/Crucial-SSDs/M500-M5x0-QUEUED-TRIM-data-corruption-alert-mostly-for-Linux/td-p/151028|M500/M5x0 QUEUED-TRIM data corruption alert (mostly for Linux users) - Crucial Community]] * [[https://github.com/torvalds/linux/blob/64e22b86854227b4d13a57fa02f26472bc426812/drivers/ata/libata-core.c#L4227|linux/libata-core.c · torvalds/linux · GitHub]] * [[https://en.wikipedia.org/wiki/Trim_%28computing%29#Shortcomings|Trim (computing) - Wikipedia, the free encyclopedia]] * [[https://blog.algolia.com/when-solid-state-drives-are-not-that-solid/|When Solid State Drives are not that solid | Milliseconds Matter]] * [[http://www.atmarkit.co.jp/flinux/rensai/watch2009/watch08a.html|SSDをめぐる議論に浮かび上がるベンダ模様(1/2) - @IT]]