ファイルストレージ
Contents
1.目的
クラウドが普及して、もう一般的になっています。その中でストレージのいわゆる種類がいくつかあります。 ストレージの種類とは、オブジェクト、ファイル、ブロックなどのストレージのことを扱います。 また、多くの場合、クラウドはクラウド、オンプレはオンプレで整理されがちなので、その辺をまとめておきたいと思います。
2.ストレージの種類
先に結論をまとめましょう。今回の整理範囲は以下の通りです。
種類 | データ転送 | 利用基盤 | プロトコル | 物理Disk管理 | 使用例 |
---|---|---|---|---|---|
ローカル ストレージ |
ブロック | オンプレ | NVMe | 自OS | DAS |
ブロック ストレージ |
ブロック | クラウド オンプレ |
SCSI/FCoE | 自OS | SAN AWS EBSなど |
ファイル ストレージ |
ファイル | クラウド オンプレ |
CFS/NFS | 他OS | NAS AWS EFSなど |
オブジェクト ストレージ |
オブジェクト | クラウド | HTTPS | 他OS | AWS S3 DropBox など |
では行きましょう。
3.ローカルストレージ
概要
ローカルストレージとは、そのままになりますが、ローカルにあるストレージです。 言い換えると「CPUと同じ筐体などに設置されたり、物理的に距離の近い」ストレージと言えます。
PCであれば分かりやすく、PC内に入っているHDD,SSDのことですね。基本的には自分(OSから見て自分自身)が利用するためのデータ領域です。このようなストレージをDAS(Direct Attached Storage)ともいいます。
使用イメージ
データ領域のアクセス方法(プロトコル)とデータの単位
データ領域、つまりHDDやSSDへのアクセス方法(プロトコル)はACHIやNVMeといった規格があります。 その時のデータの受け渡しのサイズは4KBであることが多いです(特にLinux)。Windowsもクラスターサイズという表現になりますが4KBでアクセスすることが多いです。
このようにブロック単位でアクセスするのでローカルストレージも分類的にはブロックストレージになります。
4.ブロックストレージ
概要
ブロックストレージとは、OSがブロック単位でアクセスするストレージです。
と言ってしまうと、先ほどのローカルストレージと違いがないですね。実はその通りで、データのアクセス単位という見方をすると、ローカルストレージとは差がありません。 ただストレージの種類として「ブロックストレージ」という場合は、多くの場合は「SAN(Storage Area Network)」(もしくはそれと同等の仕組み)を指すことが多いです。
データ領域のアクセス方法(プロトコル)とデータの単位
アクセス方法(プロトコル)はiSCSIやFCoE(Fiber Channel over Ethernet)といった規格があります。 物理的なケーブルの種類の差分はありますが、ブロック単位でのアクセスであるため、ローカルストレージと同等の扱いができます。
使い道
なぜローカルストレージと分別しているか、というといくつかメリット(もちろんデメリットも)があります。
私の個人的な意見としてはバックアップの効率化、容易化はオンプレにおいてはすごく重要です。
ローカルディスクしかないサーバを何台もイメージバックアップ用のディスクでブートしLTOに取得する、というような マンパワーに依存したシステムを経験すると有難みがすごく分かります。
補足
クラウドでこのような位置づけに該当するものはAWSならEBS、Azureならマネージドディスクと呼ばれます。 これらは仮想化をされているのでSANと同じものではありませんが、ブロックストレージです。 仮想化およびサーバから独立しているため、イメージバックアップや割付の変更ができたりとSANのメリット(もしくはそれ以上)の 恩恵を受けることができます。
5.ファイルストレージ
概要
ファイルストレージとは、OSがファイル単位でアクセスするストレージです。そのまんまですね。オブジェクトでも同じことを言います。 もう少しかみ砕くと、ファイルの読み書きを行う場合に、「ファイル単位」でデータのアクセスが完結する。というイメージです。
これを具体的に理解するには少しOSの動きを理解する必要があります。 OSはブロックストレージを「ファイルシステム」として認識しています。「ファイルシステム」が何かというと、 具体的にはNFTSとか、XFSを指すのですが、イメージでいうと、「この装置はディスクで、容量1TB、使用率は20%」みたいなことが 分かるということです。 これは「ストレージの管理は自分である」という風に言えます。
一方で、ファイルストレージはストレージの管理(物理的な管理)は自分ではない、と言えます。
データ領域のアクセス方法(プロトコル)とデータの単位
ファイルストレージはアクセスする単位が「ファイル」で、OSが認識できるものは「フォルダ(ディレクトリ)とファイル」しか ありません。全体容量や使用率はどれくらいかは分かりません (マウント等すればアクセス可能な範囲は見れますが、アクセスできない領域は分かりません)
使い道
主にオンプレではNAS(Network Attached Storage)として構築されます。
もちろんこれによりメリット、デメリットがあります。
6.オブジェクトストレージ
概要
オブジェクトストレージとは、ファイルなどを「オブジェクト」という単位で扱い、アクセスするストレージです。
このオブジェクトとは、AWSのS3が始まりのようですが、ファイル+メタデータ(例えばファイルID)で管理しています。
このメタデータ(のファイルID)を指定してファイルにアクセスを行います。
これまでのストレージと異なり、ファイルへたどり着くにはメタデータで指定するため、ディレクトリ階層表現は不要で、「フラットな構成」
が特徴です。
少し仕組みの裏側を記載すると、AWSなどのクラウドの中身では、ブロックストレージでディレクトリ共有しているものが基本です。
このディレクトリ共有を大量に作成し、仮想的に1つのストレージとして見せている、というイメージを持ってもらえればと思います。
データ領域のアクセス方法(プロトコル)とデータの単位
オブジェクトストレージへはアクセスする単位は「オブジェクト」となります。アクセス方法はHTTP(S)であり、いわゆるブラウザからアクセスするか
アプリケーション(Restful API)などを介して利用します。
基本的にはアプリケーションがアクセスするものの認識でOKです。
使い道
こちらはオンプレではあまり実装されないです。例えばですが、windowsではDFSを用いて実現することは可能です。
ただ以下のメリットを損なってしまっていると思います。
7.まとめ
長くなりましたが、ストレージの種類についてアクセス方法やその特徴を整理しました。 いずれのストレージも一長一短あるため、利用目的に応じたものを活用する用にしましょう。