- POST
SDSにおけるSSDの使いどころ – Part 1
IzumoFS含め、SDS(Software-Defined Storage)の最大の特徴として「特定のハードウェアに依存しない」という点が挙げられます(まだまだ「SDS」という言葉の定義があやふやで、実際にはアプライアンスしか扱っていないSDSベンダというのも存在します)。機種や性能の異なるハードウェアが使用できるため、構成次第でアーカイブからHPC用途まで対応できるのがSDSのいいところです。
一方で構成自由度が高いため、実際のところどのようなHWを選ぶか迷ってしまう場面も多いのではないでしょうか。そこで今回のシリーズではHW構成の際のひとつの指標として、IzumoFSにおけるSSDの使いどころを解説します。
HDDのランダムアクセスの遅さを補うことができるSSDですが、SSDの特性に基づいてアラインメントを合わせないとパフォーマンスを十分に発揮できないので注意が必要です。
HDDとSSDの構造の差異
HDDはその物理構造上、シーケンシャルIOに対しては効率的なアクセスが可能です。しかしながらランダムIOに対してはディスクの回転待ち時間が増加し、パフォーマンスは極端に低下しまいます。また、スレッド数が増えてくると、シーケンシャルIOでも結局はランダムIOと同じく回転待ち時間が増えてしまいます。
SSDのデータ保存の最小単位はセルと呼ばれ、セル内に電子を入れることでデータを記述しています*1。データの読み書きは複数のセルを並べたページという単位で行います。データの消去は複数のページが集まったブロックという単位で行います。
SSDではデータの上書きができないという制限があるため、新しいデータを書き込む際には未使用ページにwriteを行い、その後に古いデータの含まれるページをブロック単位で消去する必要があります。また、SSDでは複数のIOチャネル(16多重が主流)が配置されており、HDDとは異なり並列IO処理に強いという特徴があります。
メディアの特性を踏まえた使いどころ
まとめると、HDDとSSDの使いどころはそれぞれ下記のようになります。
- HDD
- 多重度の低いシーケンシャルIO
- SDD
- 並列処理、小サイズIO、ランダムIO
SSD write処理の制約
ここまででHDDとSSDの構造とIO処理の得手不得手についてはご理解いただけましたでしょうか。加えて、SSDはwrite処理についていくつかの留意すべき点があります。
- ページサイズより大きいIOは分割されて順番に処理される = マルチチャネルを活かした並列処理ができない
- ページサイズより小さいIOでも、使用済ページ内の空きのセルには上書きできない = 書き込み対象ページに置いてある他のデータも一緒に未使用ページに書き込むので、不要なデータ転送が増加する(ライトアンプリフィケーション)
つまり、SSDのwrite処理ではマルチチャネルが活きる多重度で、かつページサイズの整数倍のIOが最適な環境となります。
これらの制限に触れた状態のSSDはwriteの性能が十分に引き出されないばかりか、R/Wが混在しているIO環境下では本来高速なはずのRead処理の足を引っ張ってしまいます。
既存のエンタープライズNASでは、ファイルシステムのクラスタサイズがあらかじめ決まっていますが、IzumoFSはファイルシステムのフォーマット形式やクラスタサイズを選択することが可能です。たとえばCentOS7でデフォルトとなったxfsでは、クラスタサイズを512B〜64KBまで設定することが可能になりました。
次回の記事では、これらを踏まえた上でファイルシステムのクラスタサイズについてと、IzumoFSの使いどころについてご紹介したいと思います。
- ひとつのセルに保存する情報が1bitの場合にはSingle Level Cell, 2bit以上の場合にはMulti Level Cell, MLCの中でも3bitを保存するものをTri Level Cellと呼びます。大まかにはSLCは性能や耐久性に優れており、MLC/TLCは大容量化が容易という特徴があります。
シリーズ
- SDSにおけるSSDの使いどころ – Part 1
- SDSにおけるSSDの使いどころ – Part 2
- SDSにおけるSSDの使いどころ – Part 3