どうも太田アベル(@LandscapeSketch)です。
SynologyやQNAPのNASでは「SSDキャッシュ」機能を搭載する機種があります。
これはHDDよりはるかに高速なSSDを、読み/書きの中間媒体(キャッシュ)と使用することで高速化を図る機能です。
さて、ここ5年ほど業務でSSDキャッシュ付きのNASを運用してきたところ、場合によってはSSDキャッシュがボトルネックとなり、全機能が非常に遅くなる現象が確認できました。
様々なパターンで試したところ、SSDの容量をすべて割り当ててしまい、容量MAXになると極端に遅くなる場合があることが判明しました。
今日はSynology NASでの設定調整方法と、その原因解説です。
SSDは”容量いっぱい”に非常に弱い
まずこの現象の原因は、SSDの構造そのものにあります。
SSDはHDDとは根本的にデータの書き込み方法が違い、同じ場所にいきなりデータを「上書き」することができません。(HDDはできます)
例えば「ファイルの上書き」をした場合でも、同じ場所ではなくいったん新しい場所に書き込み、元の場所はほうっておきます。次に必要になったときに初めて消去される、という流れになります。
空いている場所にさっと書き込み、ファイルの場所を示す「目次」だけ書き換えるイメージです。
なぜこんな回りくどいことをするかというと、SSDはデータの消去に非常に時間がかかるからです。SSDはファイル単位やバイト単位で管理しているのではなく、いくつかの無関係なデータがまとまった「ブロック」という単位で管理します。
つまり、消したいデータと同じブロックに他のファイルがある場合、他のファイルをすべて逃がし(他の場所に書き込み)、消したいデータを消し、もう一度ブロックとして書き戻す、というとても時間のかかる処理になってしまうのです。
さてこれが容量いっぱいになった場合はどうなるでしょう。
通常のPC(WindowsやMacなど)であれば、目視でいらないデータを消して、容量が空いたら新たに書き込むという流れになります。人間が作業するので非常に遅く、それほど速度は気になりません。
しかし、SSDキャッシュでは話が変わってきます。
キャッシュ処理は、NASが超高速で低頻度アクセスのデータを削除しまくり、高頻度アクセスのデータと置き換えていきます。
SSDがいっぱいになっていると、新しい場所が見つからないのでデータの削除と物理的な消去が頻発し、ちょっとした書き込みなのに、通常速度よりはるかに時間がかかるようになってしまいます。新品の時と容量いっぱいの時では、体感で5~10倍の時間がかかるようになります。(Synology RackStation RS818RP+、DS918+の場合)
最悪時はほんの100KB程度のファイルを書き込むのに1秒以上を要するときもあり、多人数で使うNASでは目に見えてスピードダウンします。
加えて、SSDは書込みと消去により寿命が短くなります。消去が頻発している状態では、製品寿命にもかなりの影響があるでしょう。
設定容量を半分に抑えよう
この解決方法はカンタンです。要は全領域を使わなければ良いだけです。
SSDの容量の半分~2/3を目安にキャッシュを設定すれば、年単位の長時間で高いスループットを保つことができます。
高価なSSDなのでもったいない感じはしますが、そもそも大容量のシーケンシャルアクセス(動画ファイルなど)や、完全にランダムなデータにはSSDキャッシュを使用しません。(Synology、QNAPの場合)
ほどほどのサイズで、よくアクセスするファイルがキャッシュに積まれます。
小容量で何度もアクセスするデータのみと考えれば、64GB~128GBもあればかなりの数をキャッシュに置くことができるはずです。EXCEL中心の事務処理なら、それこそ5GB程度でも十分に機能するでしょう。
もし大量の写真を扱うフォトスタジオやデザイン会社なら、大容量のSSDを積めばいいだけの話。最近では1TB級のSSDでも15,000円前後、2TBでも30,000円前後という手頃な価格になっています。
購入時は仕様を十分お確かめください。
1TBの80%で約800GBを割り当てれば、RAW写真数万枚をフルキャッシュできる計算になります。
次にSynology NASでの設定方法を紹介します。
SynologyのSSDキャッシュ設定
現在全容量指定でキャッシュを設定しているようでしたら、いったん削除(SSDキャッシュの解除)が必要です。
業務で使っているNASでは、削除前にキャッシュ中のすべてのデータをHDDに安全に保存するため、非常に時間がかかります。またHDDへの書き込みが大量に発生するため、スループットが大幅に低下します。業務時間外に行うのがいいでしょう。
256GBのSSDキャッシュを解除した場合、2~3時間かかることがありました。
つぎに設定方法です。以下Synology DSMでの作業画面になります。
SSDを追加し、ウィザードを起動します。使用するディスクを選択。
2,3画面目に容量の設定画面があります。
このとき、標準では100%の容量が表示されています。ここを手動で半分~2/3に設定しましょう。下記の場合、64~80GB程度にしておきます。
注意するのはここだけで、あとは普通にウィザードを進めればOKです。
SSDキャッシュの稼働状態をチェック
設定後は、しばらく継続してキャッシュの動向をチェックしていきましょう。
Synologyなら、ストレージマネージャ > SSDキャッシュのページで見ることができます。
重要なのはキャッシュがどれだけ有効活用されているかです。下部に「キャッシュのヒット率」という項目があり、チカチカとインジケータが動いています。1日、1週間単位のヒット率が70%以上なら、かなり高いヒット率です。体感速度もアップしているはずです。
逆に20%や30%では、データの形式上キャッシュの利点はあまりないかもしれません。もちろん、部分部分では高速化しているので無意味というわけではありません。
ちなみに右側の「リール時間」という謎の単語ですが、たぶんReal Time(リアルタイム)の誤訳かと思われます?
WTS的まとめ
「SSDキャッシュを使っているのに遅くなった!」という事例を何件か見て、共通していたのが容量の設定でした。
特にSATAの安いSSDでは、限界容量付近では顕著に速度が下がります。
もしSSDキャッシュを使っていても遅さを感じていたら、一度設定を見直してみてください。
コメント