工業用 vs. 民生用ストレージ

「私たちは、民生用SSDが「産業用デバイス」として使うには適していないことを認識していませんでした。」

民生用の製品は、宣伝広告による影響もあり、最初に意識してしまうのがブランドであったりするものです。 これはこれでよいのですが、組み込み用の工業用ストレージ・デバイスを検討する際に、この考えは大きな誤りとなるのです。

民生用ソリューションは、高いキャパシティとスピードのような優先順位に重点を置いています。多くの場合、コストやドル/ GBで測定されます。一方、工業用組み込み機器ソリューションでは、データの完全性、環境堅牢性(ショック、温度、振動)と電気的堅牢性に重点を置いています。 
ここを間違えると大変なことが起こることになります。

カスタマーストーリー

「当社は、当社製品への組み込み用SSDをNANDフラッシュ製造で有名なA社製とすることを決定しました。 当社の製品は、データがオフライン時にドライブに書き込まれること、データ量も少ないことから、速度について心配はしていませんでした。 この製品の優位点としては、大変ポピュラーな一般ユーザ用製品として多くの小売店でも入手がしやすく、また価格も安く購入できることでした。 私たちは、それらのアプリケーションが私たちの機器の使用用途よりはるかに集中的に酷使されていると想像していました。 」

私たちは最初に、ドライブがランダムに読み込み専用に切り替わってしまう問題を認識しました。  私たちは、トリガーイベント、またはこれを引き起こした可能性のあるエラーを見つけるために調査を行いました。 ドライブはオフラインになり、それ以降のデータの書き込みは許可されませんでしたが、その時点までに書き込まれたすべてのデータは、ドライブで読み取ることができました。 私たちの技術者は、システム内のドライブを再初期化することで、修復されたように見えました。 最も古いドライブの故障の割合が急に上昇しはじめたように見えたときにも、この現象の発生原因を調査中でした。 この段階では約1ヶ月でドライブの2〜4%をが読み取り専用となる状況でしたが、これが10%を超え、15%まで上昇しました。 私たちは心配をしはじめました。

デルキンの調査

既製品のSSDのクライアントアプリケーションには、容量、速度、コストという3つの要素があります。 これらの機能は、速度重視のラップトップやサーバーでうまくいきます。 しかし、これらの機能は、ユーザーがコンピューター環境にあることを前提にしており、実査にはデータがかなり特殊な方法で書き込まれています。  問題は、多くの工業用組み込みシステムでは、実際にはほとんどが、フラッシュにデータを書き込むというコンピュータと同じスタイルを採らないことです。

産業用組み込み型SSDソリューションでは、注目すべき機能が全く異なります。 データの完全性が最優先され、環境と電気の堅牢性、ライフサイクル管理、フラッシュの利用、アプリケーションの仕様によって決まるその他の多くの機能の順に高い優先順位を占めています。

多くの組込み機器のホストにはLinuxが採用されており、ホストソフトウェアのカスタマイズを容易にします。 このため、NANDフラッシュに関連する1つ以上の制約が試されてしまうことがよくあります。 フラッシュは、プログラムおよび消去サイクル(P/Eサイクル)に基づいて摩耗していきます。 書き込まれるファイルのサイズは、P/Eサイクルに大きな影響を与えます。すべてのフラッシュは、その構成に基づいて利用可能な限られた数のP/Eサイクルを有しています。

典型的なFLASHチップは、4Kまたは8Kまたはそれ以上のバイトの「ページ」が、フラッシュチップに応じて256ページから16Kページのいずれかのブロックにグループ化されるように構築されています。 したがって、1つのブロックに大量のデータを格納することができます。 デバイス上の1つの制約は、消去可能な最小単位がブロック全体であることです。 したがって、1ページ内の数バイトが更新される場合、データは更新された新しいブロックに移動されなければならず、前のブロックは消去され、将来の書き込みに使用されます。 デバイスの第2の制約は、データの保持が危険にさらされる前にブロックを消去できる回数が制限されていることです。

新しいデータが物理チップに書き込まれると、そのデータは空きページに書き込まれます。 ユーザーが非常に少量のデータ、たとえば256バイトを書き込む場合、ページ全体を使用してその256バイトのデータを保持します。残りのページは未使用です。これは、一度ページを開くと、追加のデータで「書き直す」ことができないためです。次の256バイトの書き込みでは、この新しいブロックの256バイトのデータを保持するために別の空きページが使用されます。これらのデータが連続する場合、ファームウェアは前の256バイトを新しい256バイトとともに新しいページに移動し、それらをまとめて保持します。 このように、あるページから別のページへのデータの書き換えは、同じデータがFLASHに書き込まれる頻度を測定する「書き込み増幅」(WA)を引き起こします。

デルキンソリューション

これらの要素を考慮すれば、ドライブの動作モードや作業負荷がドライブの寿命に大きく影響することがわかります。 この場合のドライブの寿命に影響を及ぼす最大の要因は、コンシューマーグレードのTLCフラッシュが書き込みに使われ、且つアプリケーションの書き込みのサイズが小さかったことです。 ある種類のフラッシュメモリーではP/Eサイクルが非常に少なく、ドライブが最大P/Eサイクルに達すると、不良ブロックを交換するためにスペアブロックを使い始めることになります。 スペアブロックの数は限られていますので、これらを使い切ると、多くのドライブが読み取り専用になってしまいます。 これが今回、お客様のドライブに起こったことでした。 一部のドライブでTLCフラッシュを使用すると、わずか800 P/Eサイクルに制限されることがあります。 有名ブランド数社の市販されているフラッシュの利用可能な消去回数は、TLC:800、MLC:3000、SLC:60000 です。 しかし、これらの生の数値は、誤差補正やウェアレベリングなどのツールを使用して大幅に増加させることができます。

学んだ教訓

この件は小容量のSLCドライブに切り替えることで問題が解決しました。 おそらく、ホストアプリケーションを変更してファイルサイズの書き込みを調整するなどの他の解決策もありますが、ドライブのワークフローへのこの調整は時間がかかり、コストがかかります。 製品を選択する際には、ストレージソリューションとホストのワークフローを一致させることが重要です。 クライアント市場向けに設計された小売りのSSDやその他のストレージ製品の有名ブランドは、最適なソリューションではない場合があります。 より小さい容量のSLCベースのSSDを使用することで、顧客はもともと使用していた大容量のSSDと比較して、無理のないコストを達成することができました。