NASのSSDキャッシュが遅い!? 使用領域をディスク容量の半分ぐらいに抑えよう!

どうも太田アベル(@LandscapeSketch)です。

SynologyやQNAPのNASでは「SSDキャッシュ」機能をもつ機種があります。

Synology DS918+にSSDキャッシュを追加する!M.2スロット搭載でHDD本数が減らないのも利点
どうも太田アベル(@LandscapeSketch)です。 今日はSynologyのNAS DS918+にSSDキャッシュを追加します。 5万円以下...

 

これはHDDよりはるかに高速なSSDを、読み/書きの中間媒体(キャッシュ)と使用することで高速化を図る機能です。

さて、ここ5年ほど業務でSSDキャッシュ付きのNASを運用してきたところ、場合によってはSSDキャッシュがボトルネックとなり、全機能が非常に遅くなる現象が確認できました。

様々なパターンで試したところ、SSDの容量をすべて割り当ててしまい、容量MAXになると極端に遅くなる場合があることが判明しました。

今日はSynology NASでの設定調整方法と、その原因解説です。

SSDは”容量いっぱい”に非常に弱い

まずこの現象の原因は、SSDの構造そのものにあります。

SSDはHDDとは根本的にデータの書き込み方法が違い、同じ場所にいきなりデータを「上書き」することができません。(HDDはできます)

例えば「ファイルの上書き」をした場合でも、同じ場所ではなくいったん新しい場所に書き込み、元の場所は次に必要になったときに初めて消去される、という流れになります。

さっと書き込み、ファイルの場所を示す「目次」だけ書き換えるイメージです。

 

なぜこんな回りくどいことをするかというと、SSDはデータの消去に非常に時間がかかるからです。SSDはファイル単位やバイト単位で管理しているのではなく、いくつかの無関係なデータがまとまった「ブロック」という単位で管理します。

つまり、消したいデータと同じブロックに他のファイルがある場合、他のファイルをすべて逃がし(他の場所に書き込み)、消したいデータを消し、もう一度ブロックとして書き戻す、というとても時間のかかる処理になってしまうのです。

 

さてこれが容量いっぱいになった場合はどうなるでしょう。

通常のPCであれば目視でいらないデータを消して、空いたら書き込むという流れになります。人間が作業するのでそれほど速度は気になりません。

しかし、SSDキャッシュでは話が変わってきます

キャッシュ処理は、OSが超高速で低頻度アクセスのデータを削除し、高頻度アクセスのデータと置き換えていきます。

新しい場所が見つからないのでデータの削除と消去が頻発し、ちょっとした書き込みなのに、通常速度よりはるかに時間がかかるようになってしまいます。新品の時と容量いっぱいの時では、体感で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円前後という手頃な価格になっています。

※注意 上記のSSDはM.2接続のSATAタイプになります。Synologyの機種では「NVMeタイプ」のSSDしか使用できない機種があります。(DS918+など)
購入時は仕様を十分お確かめください。

 

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%では、データの形式上キャッシュの利点はあまりないかもしれません。もちろん、部分部分では高速化しているので無意味というわけではありません。

WTS的まとめ

「SSDキャッシュを使っているのに遅くなった!」という事例を何件か見て、共通していたのが容量の設定でした。

特にSATAの安いSSDでは、限界容量付近では顕著に速度が下がります。

もしSSDキャッシュを使っていても遅さを感じていたら、一度設定を見直してみてください。

 

コメント