ブロックストレージ
ぶろっくすとれーじ
ブロックストレージ(Block Storage)は、データを固定長(通常512バイトや4KB)の「ブロック」と呼ばれる最小単位で管理し、各ブロックにユニークな物理的または論理的なアドレスを割り当てるストレージアクセス方式である。オペレーティングシステム(OS)からは、あたかもローカルに接続されたハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)のように認識され、ファイルシステムやデータベース管理システム(DBMS)が低遅延かつ高スループットで直接 I/O を実行できるように設計されている。特に仮想マシン環境やトランザクション処理量の多いデータベース環境で不可欠な基盤技術である。
概要
ブロックストレージは、デジタルデータの保存とアクセスにおいて最も原始的かつ高速な手法を提供するストレージアーキテクチャである。この方式の根幹は、データを固定長のセクション(ブロック)に分割し、それぞれに一意の識別子(アドレス)を付与することにある。OSがストレージにアクセスする場合、データの場所を指定するためにファイル名やパスを使用するのではなく、特定のブロックアドレスを直接指定する。この動作原理は、物理的なハードディスクドライブ(HDD)がセクターやシリンダーを用いてデータにアクセスする方法を論理的に抽象化したものである。
OSやアプリケーションはブロックストレージに対して、未加工(RAW)のディスクデバイスとして振る舞うことを期待するため、アクセスする前に通常、NTFSやext4などのファイルシステムによってフォーマットされる必要がある。これにより、ブロックストレージ上にディレクトリ構造やファイルメタデータが構築され、人間が理解できる形でデータが管理される。しかし、データベースシステムなど、性能を最大限に引き出したい特定のアプリケーションは、ファイルシステムを介さずにブロックを直接操作するRAWデバイスマッピングを利用することもある。
特徴と技術的側面
ブロックストレージの最大の技術的特徴は、そのI/O性能の高さと低遅延性である。データアクセスがブロックアドレスを介した直接的な操作となるため、ファイル名解析やアクセス権チェックといったオーバーヘッドを最小限に抑えることができる。
1. プロトコル
ブロックストレージの伝送には、主に以下のプロトコルが利用される。
- Fibre Channel (FC):高性能かつ高信頼性が求められるエンタープライズ環境で広く使用されるプロトコルである。低遅延で非常に高いスループットを誇り、専用のHBA(Host Bus Adapter)とスイッチが必要となる。
- iSCSI (Internet Small Computer System Interface):既存の標準的なTCP/IPネットワーク上でSCSIコマンドをカプセル化してブロックアクセスを実現するプロトコルである。FCに比べて導入コストが低く、一般的なイーサネット環境で高性能なブロックストレージを提供できるため、普及が進んでいる。
- NVMe over Fabrics (NVMe-oF):近年登場した技術であり、高速なSSD技術であるNVMeの利点をネットワーク越しに最大限に引き出すことを目的としている。非常に低遅延なI/Oを実現し、特に高性能コンピューティング(HPC)やAI処理などで利用が拡大している。
2. LUNとホストへのマッピング
ブロックストレージシステム(ストレージアレイ)内部では、物理ディスクがRAID構成などによって統合され、そこから論理的なボリュームが作成される。この論理ボリュームが、ホストサーバー側からは一つの独立したディスク(LUN:Logical Unit Number)として認識される。LUNマッピングのプロセスを通じて、ストレージ管理者はどのサーバーにどのボリュームを割り当てるかを細かく制御でき、セキュリティと隔離性を確保できる。
3. ストレージ管理機能
最新のブロックストレージソリューションは、以下の高度な管理機能を提供することで、信頼性と効率性を向上させている。
- シンプロビジョニング (Thin Provisioning):実際にデータが書き込まれた量だけ物理容量を確保し、論理容量を物理容量より大きく見せる技術。ストレージ利用効率の向上に寄与する。
- スナップショットとレプリケーション:特定の時点のブロックデータの状態を保存するスナップショット機能や、遠隔地にデータを複製するレプリケーション機能により、災害対策やバックアップ戦略を容易にする。
具体的な使用例・シーン
ブロックストレージは、その低遅延性、柔軟性、そしてOSとの高い互換性から、ITインフラストラクチャの中核として多岐にわたる用途で使用される。
1. 仮想化環境の基盤
サーバー仮想化(VMware vSphere, Microsoft Hyper-V, KVMなど)において、ブロックストレージは必須の構成要素である。仮想マシン(VM)の起動ディスク(VMDKやVHDXファイル)や構成ファイルは、ブロックストレージ上に格納される。ブロックストレージは、複数のVMが同時にI/Oを実行する高負荷環境において、高い応答性を維持できるため、VMの統合率を高める上で極めて重要である。また、VMのライブマイグレーションやフェイルオーバーといった高可用性機能も、共有されたブロックストレージが存在することを前提として動作する。
2. トランザクションデータベース
高性能なデータベース管理システム(DBMS)、特に大量のトランザクション処理(OLTP)が求められる環境では、ブロックストレージが標準的に採用される。Oracle Database, Microsoft SQL Server, MySQLなどのデータベースは、データファイルやログファイルへのランダムアクセス性能が極めて重要であり、ブロックアドレスへの直接的なアクセスが可能なブロックストレージは、レイテンシを最小限に抑える上で最適である。
3. コンテナ永続ボリューム
DockerやKubernetesなどのコンテナオーケストレーション環境において、コンテナが再起動してもデータを保持し続けるための永続ボリュームとして、ブロックストレージが利用される。CSI(Container Storage Interface)などの規格を通じて、クラウドまたはオンプレミスのブロックストレージが動的にプロビジョニングされ、データベースやメッセージキューなど、ステートフルなアプリケーションに安定したI/Oを提供する。
関連する概念
ストレージエリアネットワーク (SAN)
ブロックストレージの概念は、多くの場合、SANというインフラストラクチャと密接に結びついている。SANは、サーバーとストレージデバイスを専用の高速ネットワークで接続し、複数のサーバーが単一または複数のストレージプールにブロックレベルでアクセスできるように設計されたネットワーク形態である。これにより、ストレージリソースの集中管理と高可用性が実現される。
ファイルストレージとの対比
ブロックストレージがアドレス指定に基づきローデバイスとして扱われるのに対し、ファイルストレージ(Network Attached Storage, NAS)は、SMB(Server Message Block)やNFS(Network File System)などのプロトコルを使用し、ファイル名とパスに基づいてデータを管理する。ファイルストレージは導入が容易で人間が扱いやすいが、ブロックストレージと比較してプロトコルのオーバーヘッドが大きく、高負荷時のI/O性能では一般的に劣る。
オブジェクトストレージとの対比
オブジェクトストレージは、非構造化データをHTTPなどのAPIを通じてオブジェクトとして管理する方式である。各データには一意の識別子と豊富なメタデータが付与される。高い耐久性とペタバイト級のスケーラビリティを持つが、アクセスにはファイルシステムが関与しないため、OSの起動ディスクやデータベースの主データファイルとしては使用できず、主にアーカイブやバックアップ、大規模コンテンツの配信に使用される。ブロックストレージは、低遅延なランダムアクセスに特化している点で、オブジェクトストレージとは根本的に異なる役割を持つ。
由来・語源
ブロックストレージという名称は、データを扱う際の最小単位が「ブロック」であることに由来する。この概念は、コンピュータの黎明期から存在するローカル接続の物理ディスク(HDD)の動作様式を、ネットワーク経由での共有可能な環境に拡張したものである。
かつて、ストレージはコンピュータ本体に直接接続されるのが一般的であったが、データ量が増加し、複数のサーバーでストレージを共有する必要性が生じると、ストレージエリアネットワーク(SAN)技術が発展した。SANは、高性能なネットワーク(主にFibre Channel)を用いてストレージデバイスとサーバーを接続し、ストレージリソースをブロック単位で論理的にサーバーに割り当てることを可能にした。この「サーバーにディスクそのもの(LUN:Logical Unit Number)を渡す」というアプローチがブロックストレージの核心であり、データ共有というよりは、サーバーへのストレージの「提供」を主眼としている。
ブロックストレージの概念は、ファイル単位でアクセスを提供するファイルストレージ(NASなど)や、HTTP経由でメタデータとともに非構造化データを提供するオブジェクトストレージよりも古く、最も基本的なストレージI/Oモデルとして確立されている。
使用例
(記述募集中)
関連用語
- (なし)