オブジェクトストレージ、ファイルストレージ、ブロックストレージの違い
データストレージには主に 3 種類あり、オブジェクトストレージ、ファイルストレージ、ブロックストレージです。これらはどのようなもので、それぞれどのような違いがあるのでしょうか。
ファイルストレージ
ファイルストレージは、最も一般的なストレージタイプの 1 つです。ほとんどの人が日常のコンピュータ操作でなじみがあるでしょう。簡単な例を考えてみましょう。最近の旅行の写真をパーソナルノート PC またはデスクトップに保存するとします。まず、「旅行」という名前のフォルダを作成します。次に、そのフォルダの下に「お気に入り」という名前の別のフォルダを作成し、お気に入りの写真を入れます。このように、フォルダとサブフォルダで階層構造を構成し、フォルダ/ファイルパスを使ってファイルにアクセスできます。
この方法でファイルを保存する場合、作成日、更新日、ファイルサイズなど、限られたメタデータしか付与されません。このシンプルな構成スキーマは、データ量が増加するにつれて問題を引き起こす可能性があります。ファイルとフォルダを追跡するためのファイルシステムへのリソース負荷が増大し、パフォーマンスが低下することがあります。このような「構造的」な問題は、ファイルシステムに割り当てられるストレージ容量を増やすだけでは解決できません。
大規模環境では潜在的な問題があるものの、ファイルシステムはパーソナルコンピュータや職場および中規模から大規模エンタープライズで利用されるサーバーでの日常的な使用には十分に対応できます。ファイルストレージは、ハードディスクやネットワークアタッチトストレージ (NAS) システムで一般的に導入されています。
オブジェクトストレージ
オブジェクトストレージは、各データ単位(「オブジェクト」と呼ばれます)を個別の単位として保存するデータストレージの一種です。これらのオブジェクトは、pdf、動画、音声、テキスト、ウェブサイトデータなど、あらゆる種類のデータを含みます。
ファイルストレージとは異なり、オブジェクトは単一のフラットな構造で保存され、フォルダ階層は存在しません。オブジェクトストレージでは、ファイルストレージのようなネストされた階層構造ではなく、フラットなアドレス空間にすべてのオブジェクトが格納されます。さらに、デフォルトおよびカスタムのメタデータはオブジェクト自体と共に保存され(ファイルシステムのテーブルやインデックスの一部ではなく)、一意の識別子を持つフラットなアドレス空間に配置されるため、インデックス作成やアクセスが容易になります。
オブジェクトストレージは、クラウドベースのストレージ環境で非常に一般的であり、非常に高いスケーラビリティと信頼性でコンテンツの管理、処理、配信に利用できます。フラットなアドレス指定方式により、個々のオブジェクトへのアクセスが高速かつ容易です。オブジェクト名はルックアップテーブルの「キー」として機能します。オブジェクトストレージシステムは、検索対象のオブジェクトのキー(名前)を指定するだけで、ルックアップテーブルを使用して迅速かつ容易にオブジェクトを取得できます。
ブロックストレージ
オブジェクトストレージとファイルストレージは、いずれもファイルをデータの単一の「単位」として扱います。ブロックストレージは、その名が示すように、データを固定サイズの「チャンク」または「ブロック」のシーケンスとして扱い、各ファイルまたはオブジェクトは複数のブロックにまたがって保存される場合があります。これらのブロックは連続して保存される必要はありません。ユーザーからこのデータがリクエストされると、基盤となるストレージシステムがデータブロックを結合し直し、ユーザーのリクエストに応答します。
各ブロックは異なる一意のアドレスを持ち、互いに独立して存在するため、階層構造なしでこれを実現できます。場合によっては、データへのパスが 1 つに限定されないため(ディスクアレイを想像してください。同じファイルのデータを複数のディスクから読み取れます)、ブロックストレージは非常に高速にデータを取得できます。また、ブロックは最も都合の良い場所に保存できるため(同じファイルやオブジェクトのブロックは隣接して保存される必要はありません)、高い効率性も実現します。ただし、ブロックストレージは一般的にコストが高く、メタデータ(オブジェクトやファイルレベルの概念)の処理能力が限られているため、アプリケーションレベルで対応する必要があります。ブロックストレージは、ストレージエリアネットワーク (SAN) ストレージで一般的に展開されます。ほとんどのアプリケーションにおいて、オブジェクトストレージやファイルストレージは、基盤となるブロックストレージの上に構築されたレイヤーです。ブロックストレージは、ファイルストレージシステムの基盤と考えることができます。
以下の表は、各種ストレージタイプの異なる特徴を比較しています。ブロックストレージは各データブロックが構造化された固定ブロックで配置されており、インデックス作成や検索が容易なため「高度に構造化」されています。ファイルストレージは階層方式でインデックス化され、「構造化」されています。オブジェクトストレージは、データストレージに特定のフォーマットや構造がなく、オブジェクトのフラットなリストとして配置されるため「非構造化」です。簡単に言えば、「データ整合性」とは、ストレージシステムが保証する読み取り、書き込み、更新の保証のことであり、たとえば最近書き込まれたオブジェクトがすぐに読み取り可能かどうかといった点を指します。「アクセスレベル」とは、データへのアクセスと操作に関するユーザーのアクセス権限のレベルです。
| 機能 | オブジェクトストレージ | ファイルストレージ | ブロックストレージ |
| 整合性 | 結果整合性 | 強力な整合性 | 強力な整合性 |
| 構造 | 非構造化 | 階層的に構造化 | ブロックレベルで高度に構造化 |
| アクセスレベル | オブジェクトレベル | ファイルレベル | ブロックレベル |
関連記事
-
クラウドコンピューティングとは
ナレッジベースチーム
-
オブジェクトストレージとは
ナレッジベースチーム
