この連載では、ストレージの基礎的な解説をはじめ、実際のIT現場で役立つ、押さえておくべき実践のポイントを近年のストレージ動向なども交えながら解説します。IT領域の編集部1年生の私がさまざまな専門家のもとで勉強します。みなさんも一緒に学んでいきましょう。

連載の第11回目となる今回は前回に引き続き、デル・テクノロジーズで製造SE部のアドバイザリー ソリューション アーキテクトを務める前田健次氏に、ファイルストレージとオブジェクトストレージの違いについて教わりました。

  • デル・テクノロジーズ システムズ エンジニアリング統括本部 産業SE第一統括部 製造SE部 アドバイザリー ソリューション アーキテクト 前田健次氏

    デル・テクノロジーズ システムズ エンジニアリング統括本部 産業SE第一統括部 製造SE部 アドバイザリー ソリューション アーキテクト 前田健次氏

--オブジェクトストレージについて詳しく教えてください

前田氏:前回は、ブロックストレージとファイルストレージの違いについてご紹介しました。ファイルストレージはデータを階層構造で管理しますので、データをどのフォルダやディレクトリに保存したのかを自分で覚えておかなければいけません。一方でオブジェクトストレージはフラットにデータを管理するので、オブジェクトIDを指定するだけで目的のデータにたどり着けます。

オブジェクトストレージは次の4つの特徴があるといえます。1つ目は「容量無制限・スケーラブル・フラット構造」です。オブジェクトストレージにはファイルシステムがないので、ストレージの容量やスケール性に制約がありません。

2つ目はWebフレンドリーな点です。オブジェクトストレージにはWebで使われるHTTPというプロトコルでアクセスできますので、Webフレンドリーだといえます。

3つ目の特徴はペタバイトクラスに最適化された高耐久性です。例えば、オブジェクトストレージは基本的にIA(Intel Architecture)サーバを並べて構成していますが、サーバを複数ラックに分けて搭載して、複数ラック間で冗長性を持たせることで、1つのラックが壊れてももう1つのラックで継続してデータにアクセスできるようになります。

ファイルストレージとは違って地理的に分散しても書き込めるので、グローバルのコンテンツリポジトリとして利用することができます。また、パブリッククラウドでAZ(Availability Zone)という言葉が使われることがありますが、データセンタをまたいだ可用性の担保などができるのもオブジェクトストレージの強みです。

4つ目は「容量単価が安価」な点です。オブジェクトストレージは複数のIAサーバを束ねてストレージとして使います。つまり、専用のストレージが不要なので、安価に使用できます。

ファイルシステムを搭載しているファイルストレージは、そもそも容量に上限があり、保存できるファイル数が限られています。また、ストレージのハードウェア単体で見ても、無限にディスクを追加できるわけではありません。オブジェクトストレージはIAサーバを増やすことによって簡単に容量を拡張できます。

  • オブジェクトストレージの概要

    オブジェクトストレージの概要

--オブジェクトストレージとファイルストレージの違いについて教えてください

前田氏:2つのストレージは、「ファイルシステム」という概念の存在が最も大きな違いです。ファイルストレージはファイルシステムにより階層化構造でデータを管理しますが、オブジェクトストレージは全てのデータをフラットに管理します。

  • ファイルストレージとオブジェクトストレージの違い

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

当社のエンジニアはよくファイルストレージを「貸しロッカー」に、オブジェクトストレージをホテルなどの「クローク」に例えて説明することがあります。

貸しロッカーに荷物を預ける時はロッカーがある区画やロッカー番号を覚えておかなければいけません。また、どの大きさのロッカーに荷物を入れるかを、自分の荷物の大きさを頭に入れながら考える必要があります。これと同じように、ファイルストレージにデータを保存する場合は自分がデータを保存したい場所、さらにはその空き容量を意識しながら保存先を考えなければなりません。

反対にオブジェクトストレージはホテルのクロークに似ています。ロッカー番号や自分の荷物の大きさを気にせずにクロークの担当スタッフに荷物を預けるだけです。この時に自分の荷物が分かるよう番号札を受け取りますが、これが一意のオブジェクトIDが付与されるイメージです。預ける荷物のサイズが大きくても、荷物が沢山あっても、細かいことを意識する必要なく番号札さえ持っていれば荷物を受け取れます。つまりオブジェクトストレージは大容量、多量なデータの扱いが得意です。

貸しロッカーやクロークに預けた荷物を出し入れする場面も、ファイルストレージとオブジェクトストレージの違いが分かりやすいです。貸しロッカーの場合は、ロッカーに荷物を入れたままでも荷物の中身を出し入れできます。わざわざかばんを全部取り出すことなく、貸しロッカーに預けたかばんの中から財布を取り出せます。

反対に、クロークは基本的に荷物の出し入れしかできません。クロークにかばんを預けた状態のままでは財布を取りだすことができません。オブジェクトストレージはファイルのアップロードまたはダウンロードのみ可能で、データを更新する際はファイルを丸ごと上書きするか、別のファイルとして保存する必要があります。

データを更新する処理が多い場合、荷物を毎回出し入れする必要があるクロークのようなオブジェクトストレージと、ロッカーの中に荷物を入れたまま財布を取り出せる貸しロッカーのようなファイルストレージでは、データを更新する処理性能に差が生まれることを理解していただけると思います。

オブジェクトストレージは、どちらかというと静的な、更新頻度が低いデータの保存に向いています。

  • 貸しロッカーとクロークのイメージ

    貸しロッカーとクロークのイメージ

--ブロックストレージ、ファイルストレージ、オブジェクトストレージ、3つのストレージについて勉強してきましたが、エンジニアはどのように使い分けたらよいでしょうか?

前田氏:これらのストレージは、アプリケーションのワークロードが何を重要視しているかによって使い分けます。ですので、ストレージを決める時にまず考えなければいけないのはアプリケーションであり、ストレージを先行して適当に決めてはいけません。価格だけを比べて適当に準備してしまうと、「なんか思っていたのと違うね」となりかねないのです。

アプリケーションのワークロードによって、「この場合はブロックストレージ」「この場合はファイルストレージ」のように、ある程度決まってきます。まず新人エンジニアのみなさんは、それらのユースケースを見比べてみると面白いと思います。

ユースケースは各ストレージベンダーがWebサイトなどで公開しています。さまざまな企業の事例を比較すると、どのようなアプリケーションに対してどのようなストレージが使われているのかが紹介されているので、それぞれの共通項や特徴、課題などが見えてくるでしょう。