分散ストレージとは何か?


分散ストレージとは何か?分散ストレージの種類、利点、ユースケース

分散ストレージとは何か?

分散ストレージとは、ネットワークでつながれた複数のサーバー(ノード)にデータを分散して保存する仕組みです。単一のサーバーやデータセンターにすべてを保存する従来型の仕組みとは異なり、データが地理的、物理的に異なるロケーションにまたがって(オンプレミス環境やクラウド、あるいはその両方で)管理されます。

この仕組みには、データのアクセス性(システムの稼働時間)を高め、スケーリングを容易にし、冗長性によってセキュリティが強化されるなど、さまざまな利点があります。

分散ストレージの構成

分散ストレージシステムは通常、以下の要素で成り立っています。

ノード ― CPU、RAM、ストレージリソースを持つ個別のサーバーが、複数まとまって分散ストレージのクラスタを構成する際に、この構成における個々のサーバーを「ノード」と呼びます。各ノードにデータが保存され、全体的なデータの整合性がシステムによって維持されます。

ネットワーク ― 各ノードをつないでクラスタを構成させるのがネットワークの役割です。分散ストレージで高スループットと低レイテンシを確保するには、パフォーマンスと信頼性の高いネットワークが必要とされます。

ソフトウェア定義型ストレージスタック ― ストレージシステムにおいては、ソフトウェア スタックがデータの分配、レプリケーション、アクセスを管理します。

一般的なフロー

1. パーティショニング ―ストレージシステムがデータを受け取ると、より管理しやすい小規模なまとまりに小分けします。これによって、大規模データセットの並行処理が可能になり、処理が効率化されます。

2. 分配 ― 分けられた個々のデータ群がネットワーク上の複数サーバーに分散されます。サーバーは単一のデータセンター内に置くことも(図1)、高可用性を確保するために地理的に分散された複数データセンターに展開することもできます(図2)。

図1 ー 同じデータセンター内に構成された分散ストレージ

図2 ー 異なる地域にデータを配置した分散ストレージ

3. データ保護 ― ソフトウェア スタックが、データのコピーを作成するか、メタデータリザーブを作成して、複数サーバーに分配します。これにより、サーバーの1つがダウンしても、データへのアクセスがそのまま維持されるか、簡単に復元することが可能になります。このようなデータ保護は、一般的に、以下のいずれかの方法で行われます。

レプリカ ミラーリング

分散システムでは、オリジナルデータのコピーを1つまたは複数作成して、複数サーバーに分散させることができます(図3)。

図3 ー レプリカをミラーリングした分散ストレージ

イレージャー コーディング(消失訂正符号)

Erasure Coding(イレージャー コーディング)は、オリジナルデータをパリティに細分化して、それらを複数サーバーに分散させる手法です(図4)。

図4 ー イレージャー コーディングを使用した分散ストレージ

4. 管理 ― 小分けされた個々のデータ群がメタデータとともに保存されます。データがどこにどのような属性で保存されているかの情報は、メタデータによって提供されます。この情報が、一元化されたメタデータ  マネージャーまたはトラッキング システムによって維持管理され、データの取り出しを効率化し、不必要な遅延を防止しています。

5. データへのアクセスと取得 ― データがリクエストされると、分散ストレージシステムがメタデータを確認して、リクエストされたデータの保存先を特定します。そして、その該当するサーバーから関連データ群が取り出され、元の状態に組み立てられてユーザーに提示されます。

分散ストレージシステムが効果的な理由

データの量は日々増え続けています。日々膨張し続けるデータに一元管理システムで対応し続けると、いつかはパフォーマンス、許容度、フォールト トレランスの面で限界に達するリスクがあります。

分散ストレージなら、このようなリスクにも対応でき、たとえ、1つのノードに不具合が生じても、データの可用性を確保できます。コモディティ ハードウェア(市販の汎用ハードウェア)で対応できるので、比較的安価にスケーリングでき、ニーズに合わせた柔軟性が確保されます。

分散ストレージシステムに保存するデータのタイプ

分散ストレージシステムでは、通常、以下の3種類のデータを管理できます。

● ファイル ― データは、実際のファイルまたはフォルダとして階層構造で保存されます。分散ファイルシステムでは、ファイルの保存先に仮想ドライブや仮想フォルダとしてストレージをマウントすることができます。このようなファイルストレージは、文書を保存したり、ファイルをネットワークで共有したり、重要データをバックアップしたりする日常タスク用のファイルサーバーとして、よく使用されます。

● ブロック ― データは「ブロック」と呼ばれる決まったサイズのまとまりに分けられて保存されます。各ブロックには固有のアドレスが付けられます。データをそのままファイルまたはフォルダとして階層構造に保存するファイルストレージとは異なり、ブロックストレージはデータをブロックに分けて個別に保存することで、ストレージスペースを有効利用し、パフォーマンスと柔軟性を高めます。ブロックストレージは通常、データベース、仮想化、クラウドコンピューティング、高パフォーマンスを要するアプリケーションなどに使用されます。

● オブジェクト ― データが、階層構造のファイルやディスク上のブロックとしてではなく、オブジェクトとして保存されます。各オブジェクトにはデータそのものに加え、記述情報としてのメタデータと固有のIDが含まれ、構造化されていない大量データの保存に適しています。オブジェクトストレージは通常、クラウドストレージ、バックアップ、アーカイブ、マルチメディア コンテンツ、ビッグデータ分析などに使用されます。

分散ストレージシステムの特性

分散ストレージシステムにも多種多様なソリューションがあり、それぞれ異なる機能を備えていますが、以下は分散ストレージシステム全般に共通した機能です。

● パーティショニング ― 分散ストレージシステムでは、データを区分けして複数のクラスタノードに分散でき、各ノードで直接データにアクセスすることができます。

● データ保護 ― データを複数ノードにコピーして、それらの整合性を保ち、データが変更された場合には、すべてのコピーに更新を適用して、データ変更を反映させることができます。

● レジリエンス ― 一部のノードに不具合が生じても、他のノードで対応し、データの高可用性が維持されます。

● スケーリング ― クラスタにノードを追加または削除することで、システム管理者がストレージの容量をニーズに応じて簡単に調整することができます。

分散ストレージの利点と課題

利点

拡張性 ― 分散ストレージシステムはサーバーを追加するだけで拡張できるので、データ量の増加やニーズの変化に簡単に対応できます。

フォールト トレランス(障害耐性)― 分散ストレージシステムはデータのレプリケーションを複数サーバーに分配できるので、データの可用性とサービスの継続性を維持して、ハードウェアの不具合に臨機応変に対応できます。

柔軟性 ― さまざまな種類のストレージ(ファイル、ブロック、オブジェクトストレージ)をサポートし、幅広いユースケースに対応できます。

パフォーマンス ― 複数のノードで並行してデータにアクセスして処理できるので、処理速度/反応が高まります。この仕組みは、特にパフォーマンス要件の高い環境でより効果を発揮します。

データの地理的配置 ― データをそれが使用される場所のなるべく近くに配置して、アクセス時のレイテンシを短縮できます。さまざまな地域に展開されるアプリケーションでは特にユーザーエクスペリエンスを高められます。

課題

● 管理の複雑化 ― 何を管理するにせよ、分散しているよりは1か所にまとまっていたほうが管理しやすいのは当然です。分散ストレージシステムでも、セットアップ、コンフィギュレーション、メンテナンスが複雑化するのは否めません。それゆえ、データの分配、レプリケーション、整合性の維持には慎重なプランニングが必要とされます。

● ネットワークインフラへの依存 ― データが複数のサーバーに分散されているので、パフォーマンスと可用性はネットワークの安定性に大きく依存します。ネットワークのレイテンシはもちろん、停電や障害など、インフラストラクチャのサービス状況にデータアクセスが大きく左右されます。

● セキュリティの複雑化 ― データが複数のノードに分散され、地理的にも地域差がある状態では、データが保存された状態でも移動中でも、 セキュリティ確保はシンプルではありません。ネットワークに広がりがある分、不正アクセスのリスクも増えます。

● 冗長性とコストが比例 ― 冗長性が高まれば、信頼性が高まりますが、同時にデータをレプリケートするストレージスペースが増える分、ストレージコストも冗長性に比例して高くなります。

分散ストレージ vs 中央管理ストレージ

ここで言う「中央管理ストレージ」とは、単一ロケーションにデータを保存して管理する仕組みを指します。これには、通常、専用サーバーやストレージデバイス(SAN/NAS/DAS)などが使用されます。ユーザーやアプリケーションは、この一元化されたリポジトリにネットワークを通じてアクセスし、データを取り出したり、保存したりします。

この中央管理ストレージと分散ストレージを比較することで、分散ストレージの特長がさらに明確になります。

 中央管理ストレージ分散ストレージ
アーキテクチャすべてのデータを単一のサーバーまたはストレージ ユニットに保存複数のノード/ロケーションにまたがってデータを保存
パフォーマンス大勢のユーザーが同時にアクセスしたり、大量データが送受信されたりする場合にボトルネック発生のリスクノード間でデータの並行処理が可能なので高パフォーマンスを維持
スケーラビリティスケーリングに大々的なアップグレードを要する場合が多いノードを追加することで簡単にスケーリング
フォールト トレランス単一障害点(Single Point of Failure):システムがダウンすると全ユーザーに影響高障害耐性:データのレプリケーションによって、一部のノードがダウンしても可用性を維持
コスト初期投資が低く、スケーリングと冗長性に高コスト長期的にはコスト効率がアップ(コモディティ ハードウェアで付け足し的なスケーリングが可能)

中央管理ストレージは初期投資を抑えられるので、小規模なオフィスやエッジ環境には有効と言えます。一方、分散ストレージはより柔軟性が高く、スケーリングとフォールト トレランスが設計に組み込まれているので、仮想環境、クラウドプラットフォーム、大量データを扱うアプリケーションに適しています。

分散クラウドストレージ

図5 ー 分散クラウドストレージ

複数のクラウドサーバーにデータを分散して保存するデータストレージシステムは、特に「分散クラウドストレージ」と呼ばれます。この複数クラウドサーバーには、異なるロケーションが使用されることが多く、異なるサービスプロバイダが組み合わされる場合もあります。

分散クラウドストレージでは、データを限られたロケーションで一元管理する通常のクラウドストレージと異なり、複数ロケーションにデータを分散させることで、冗長性、可用性、セキュリティ、パフォーマンスを強化できます。

分散ストレージ vs クラウドストレージ

分散ストレージとクラウドストレージには、多くの共通点があります。どちらもネットワーク経由でデータにアクセスし、スケーラビリティに優れています。レプリケーションでデータ保護を強化できる点も同じです。しかし、両者には以下の明確な違いがあります。

 クラウドストレージ分散ストレージ
アーキテクチャ通常、プロバイダ(AWSやGoogleなど)の大規模データセンターで中央管理複数のノードにまたがってデータを保存(グローバルに分散したり、ピアツーピアの分散も可能)
オーナーシップ単一のクラウドプロバイダによる管理プロバイダによる管理も可能だが、管理の分散(例:IPFSなどのブロックチェーン ベース システム)も可能
地理的な分散リージョンを選択してデータを保存することは可能だが、分散がデフォルトではない多くのリージョンまたはノードにデータを分散するように設計されている
データアクセス通常、ファイルまたはオブジェクトストレージAPIを使用(例: REST、S3)特別なプロトコルを使用可能(ピアツーピア、チャンクベースのデータ取得など)
フォールト トレランスプロバイダによるインフラストラクチャとリージョンの冗長性に依存デフォルトで障害耐性を確保(一部のノードが停止しても継続稼働)
ユースケース信頼できるプロバイダを介した一般的なストレージ(文書類、バックアップ、メディアなど)用途に最適大規模な分散型アプリケーション、高い障害耐性が求められる環境に最適
料金体系ストレージや帯域幅などの使用分を支払う従量課金制ハードウェア/ソフトウェアへの資本的支出、あるいは資本的支出と運用支出のハイブリッド型。大規模であれば、よりコスト効率が高まる。

上記の比較を簡単にまとめると:

■ クラウドストレージは、データを分散したければ分散できるが、デフォルトで分散されるわけではない。Amazon、Google、Microsoft などのプロバイダが提供するサービスベースモデルで、セットアップや管理が容易。

■ 一方、分散ストレージは、データを複数ロケーションやデバイスにまたがって保存、管理することで、障害耐性を高めるアーキテクチャ アプローチ。

エッジコンピューティングvs分散クラウド環境

図6 ー エッジコンピューティング VS 分散クラウド

エッジコンピューティングとは、データの処理とストレージをデータが実際に生成される物理的ローケーションにできるだけ近く配置するコンピューティング モデルです。したがって、必ずしも分散アーキテクチャではないのですが、そのように設計することも可能です。

分散システムとして設計されたエッジコンピューティングは、データソースの近くにコンピューティングを配置して低レイテンシを目指すという点で、分散クラウド コンピューティングと似ています。分散配置によってパフォーマンス、信頼性、柔軟性を高める点も共通です。

ただし、データを生成場所の近くで処理してパフォーマンスを高めるエッジコンピューティングに対し、分散クラウド コンピューティングはクラウドファンクションをエッジに寄せながらも管理は中央で一元化する点で異なります。エッジコンピューティングはあくまでリアルタイムのレスポンスを追求し、分散クラウドは、幅広いリーチと中央管理の両立を目指しています。

分散ストレージのユースケース

では、分散ストレージの実際の活用例を見ていきましょう。

メディア/エンターテイメント

YouTube、Netflix、Spotify、Twitch、Amazon Primeなど、主要ストリーミング サービスはこぞって分散ストレージを使用しています。これらのストリーミング サービスはすべてコンテンツ デリバリー ネットワーク(CDN)アーキテクチャを使用して、世界中に散らばるサーバークラスタにデータを保存しています。ユーザーがデータにアクセスしようとすると、その地理的ローケーションにもとづいて自動的に最寄りのサーバーに接続され、ストリーミングの高品質と低レイテンシが確保される仕組みになっています。

医療/ヘルスケア

医療業界では、患者情報の保存、処理に、分散ストレージが注目されだしています。病院などの医療施設では、電子健康記録(Electronic Health Records)や、CT、MRI、PET、超音波検査データなどの画像ファイルを含む膨大なデータを安全に保存するニーズが高まっています。分散ストレージを使用すると、大量データへの対応やセキュリティのニーズが満たされるほか、医療スタッフが迅速にデータにアクセスできるので、医療サービスの向上にもつながります。また、停電時などにデータアクセスを維持できる点も、特に医療分野や公共サービスで重要視されるポイントです。

ビッグデータ/アナリティクス

大量データの処理を必要とするビジネスにとって、分散ストレージは非常に重要なオプションです。データは日々増え続け、同時に大規模データセットの効率的な保存と管理に対する要件も高くなる一方であり、従来型のストレージシステムでは対応しけれなくなっています。分散ストレージを使用することで、複雑なデータ分析や、意思決定のサポートが円滑化されます。

分散ストレージの今後の展望

分散ストレージはすでに幅広い分野で活用され、その拡張性と柔軟性がビジネスの成長に大きく貢献しています。しかし、このトレンドは発展中であり、今後さらに進化することが予想されます。ここでは、将来、分散ストレージのさらなる活用が見込まれる分野について見ていきたいと思います。

AI向けストレージ/AI駆動ストレージ

AIは、アプリケーションの利便性を高めるだけでなく、今やストレージの仕組みも陰ながら支えています。AIによって最適化されたストレージシステムは、巨大なLLMデータセットの管理には欠かせない存在になりつつあります。また、ストレージレイヤーそのものにAIが組み込まれ、ティアリング、自動マイグレーション、I/Oチューニング、潜在的な不具合の検知、ランサムウェアの検知などに、AIが活躍しています。

セキュリティとコンプライアンスの強化

現代のマーケットは常にセキュリティとコンプライアンスの要件に左右されます。そして、その要件は年々厳しくなってきています。分散ストレージは、冗長性が組み込まれた設計によるデータ保護が備わっていることに加え、地理的に分散されたサーバーで、一部の地域に不具合や障害が発生しても、サービスを維持できる可用性も備わっています。さらに、高度なアクセス制御や暗号化などの機能の統合が進み、セキュリティとコンプライアンスの要件拡大に柔軟性と技術の進化で対応しています。

エッジコンピューティング

エッジコンピューティングも、AI同様、急速に普及しているITトレンドです。コンピューティング機能をデータソースに地理的に近づけるエッジコンピューティングのアプローチは、複数ノードにデータを分配して管理する分散ストレージの仕組みと相性が抜群です。

ファイル+オブジェクトストレージ コンバージェンス

昨今は、オブジェクトストレージの使用が普及し、その他のタイプのストレージと組み合わせたハイブリッドシステムも増えています。従来型のファイルストレージ インターフェースに拡張性のあるオブジェクトストレージのバックエンドが統合されたものが多いです。このようなハイブリッドモデルでは、従来のアプリケーションとクラウドデータ ユースケースのシームレスな同時サポートが実現します。

コスト効率の高いスケーリング

あらゆる企業は業務を通じて日々データを蓄積し、ビジネスの運用自体が膨大なデータに依存しています。柔軟性と拡張性に富み、コスト効率の高いストレージへのニーズは高まる一方です。その点、分散ストレージなら、ビジネスの成長に合わせたスケーリングが容易で、長期的なニーズを満たす信頼性の高いオプションとなっています。

サステナビリティと長期アーカイブ

昨今では、セラミック製やガラス製の耐久性の高い(数十年はおろか、千年はもつと言われる)省エネかつ省CO2のストレージ メディアが開発されています。2030年までには標準的なデータセンターラックに100ペタバイトのデータ格納を可能にして、世界的なストレージの省エネを実現するプロジェクトも進んでいます。分散ストレージは、このストレージ効率化のトレンドにおいても重要な役割を担い、将来のイノベーションを牽引することが期待されています。

まとめ

分散ストレージは、スケーリングが簡単で、ダウンタイムを防止でき、単一サーバーにありがちなボトルネックもなく、必要なときに必要な場所でデータにアクセスできるシステムです。システム管理者は、インフラストラクチャの拡大や想定外のワークロードを管理しやすく、目まぐるしく変わるビジネス環境の変化に備え、将来のビジネスの成長をサポートするには最適なアーキテクチャと言えます。

関連トピックス

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.