オブジェクトストレージ、ファイルストレージ、ブロックストレージの違い

データストレージには、主にオブジェクトストレージ、ファイルストレージ、ブロックストレージの 3 種類があります。このページでは、それぞれのストレージについて技術的に比較、解説します。

ファイルストレージ

ファイルストレージは、最も一般的なストレージの種類の一つで、多くの人に日常的に使われています。 シンプルな利用例として、個人のノート PC/デスクトップ PC に最近の旅行の写真を保存する場合、「旅行」という名前のフォルダを作成します。このフォルダの下に「お気に入り」という名前のフォルダを追加し、写真をその中に置けるようにします。サブフォルダを持つ階層構造に整理し、フォルダ/ファイルパスを使ってファイルにアクセスすることができるようになります。
保存されたファイルは、作成日、変更日、ファイルサイズなどの付加できるメタデータが制限されています。このシンプルな組織構造は、データ量が増加するにつれて問題を引き起こす可能性があります。ファイルやフォルダをトレースするためのリソース要求の増加により、パフォーマンスが低下する可能性があります。この構造的な問題は、ファイルシステムの容量を増やすだけでは解決できません。
潜在的な問題はありますが、ファイルシステムは企業の PC やサーバーでの日常的な使用には適しています。ファイルストレージは、通常 DAS(Direct Attached Storage)や NAS(Network Attached Storage)で使われています。

オブジェクトストレージ

オブジェクトストレージは、個々のデータが「オブジェクト」として記憶されるデータストレージの一つです。オブジェクトには、事実上あらゆる種類のデータ(PDF、動画、オーディオ、テキスト、Webサイトデータ、その他)が含まれます。
ファイルストレージとは対照的に、これらのオブジェクトはフォルダ階層のない単一のフラットな構造で保存されます。オブジェクトストレージは、すべてのオブジェクトがフラットなアドレス空間に格納され、ファイルストレージの入れ子の階層構造とは異なります。さらに、すべてのメタデータは、個別のファイルシステムテーブルまたはインデックスの一部としてではなくオブジェクトと一緒に格納され、一意の識別子を持つフラットアドレス空間に格納されるため、インデックスの作成とアクセスが容易です。
オブジェクトストレージは、クラウドベースのストレージシナリオでは一般的に使われており、非常に高いスケーラビリティと信頼性でコンテンツを管理、処理、配信するために使用できます。フラットアドレッシング方式により、迅速に個々のオブジェクトにアクセスし、オブジェクト名はルックアップテーブルの「キー」として機能します。オブジェクトストレージのシステムは、探しているオブジェクトのキー(オブジェクト名)を知っているだけで良いため、ルックアップテーブルを使って素早く簡単にレスポンスを返すことができます。

ブロックストレージ

オブジェクトストレージとファイルストレージどちらもファイルをデータを「ユニット」として扱います。ブロックストレージは、その名のとおりデータを固定サイズの「チャンク」または「ブロック」として扱い、ファイルやオブジェクトを複数のブロックに分散させることができます。これらのブロックは連続して格納する必要はありません。データがユーザによって要求されると、ストレージシステムはデータブロックをマージして戻し、ユーザの要求に応えます。
これは、各ブロックが異なる固有のアドレスを持ち、他のブロックとは独立して存在させることによって、階層構造を必要とせずに実現できます。場合によっては、読み込む必要のあるデータへのパスが必ずしも一つではないため、ブロックストレージはデータをすばやく読み取ることができます。(ディスクアレイの場合、同じファイルのデータを複数のディスクから読み取ることが可能です)また、ブロックストレージは、最適な場所にブロックを格納することでストレージの利用効率も向上させることができます。(同じファイルやオブジェクトを隣接したブロックに格納する必要はありません)ただし、ブロックストレージは一般的に価格が高く、メタデータを処理する機能が制限されているため、メタデータはアプリケーションレベルで処理する必要があります。一般的に、ブロックストレージは SAN(Storage Area Network)ストレージで利用されます。ほとんどのアプリケーションでは、オブジェクトやファイルストレージは、ブロックストレージの上位レイヤーにあり、ブロックストレージは、ファイルストレージシステムが構築される基盤と考えることができます。
以下の表は、ストレージの機能を比較したものです。ブロックストレージは、データブロックは索引付けと検索を容易にするために構造化された固定ブロックに配置されるため、「高度な構造化」に分類されます。ファイルストレージは、階層的にインデックス付けされ「構造化」されています。オブジェクトストレージは、データストレージのフォーマットや構造はないため「非構造化」であり、代わりに単純なオブジェクトのリストがあります。データの「一貫性」は最近書き込まれたオブジェクトがすぐに読み返すことができるかどうかといった、ストレージシステムによって行われる読み取り、書き込み、更新の保証と考えることができます。「アクセスレベル」は、ユーザーがデータにアクセスして操作するために必要な権限のレベルを意味しています。
特徴オブジェクトストレージファイルストレージブロックストレージ
一貫性結果整合性強整合性強整合性
構造化非構造化階層構造ブロックレベルの高度な構造化
アクセスレベルオブジェクトレベルファイルレベルブロックレベル

関連情報