見出し画像

ストレージにはどんな種類があるの?

こんにちは辻村です。ストレージにはどんな種類があるかを要約してみました。どんな種類があるのかを知る手助けになれば幸いです。

記事の構成

ストレージをするにあたって、まずはどの様な切り口でご紹介するかを説明しようと思います。その後で、それぞれの切り口でどんなストレージがあり、どの様な使われ方をしているのかをご紹介したいと思います。

分類の切り口

分類の切り口としては、以下の3つでご紹介したいと思います。
(1) 接続方法 DAS/NAS/SAN
(2) データの扱われ方 ブロック・ファイル・オブジェクト
(3) ハードウェアの認識のされ方

直接接続/NAS/SAN

ストレージとはデータを入れておくところです。実際にデータを使うパソコンやサーバーとどの様につながっているかで、以下の3つに分類されます。

(1) 直接接続 (Direct Attached Storage; DAS)
(2) ネットワーク接続 (Network Attahed Storage / NAS)
(3) ストレージエリアネットワーク(Storage Area Network / SAN)

(1) 直接接続

ストレージが直接パソコンやサーバーにつながっているものです。PCに入っているローカルディスクと認識されているものがその代表例です。実際はハードウェアとしてHDDだったり、SSDだったり、NVMe が搭載されたりしますが、「直接つながっている」というのが大事です。USBで外付けで接続しても、直接接続です。昔と違いあまり、DASとは言わなくなった気がしますが、名称としては文献に出てくるかもしれないので、書いておきます。また、みなさんの持っているスマートフォンやタブレット類には音楽やLINEのメッセージが保管されていますが、これらは、直接接続されたローカルのストレージに保管されています。
(iCloudなどの場合は、クラウド上のストレージですが、直接接続したストレージが全くいらなくなってしまうわけではありません)

(2) ネットワーク接続

ネットワーク接続のものはmacOSやWindowsからネットワーク越しにアクセスするものを指します。他の人とファイルを共有したりすることができます。共有の単位は「ファイル」とか「フォルダ」です。共有のためにコンピュータ同士が通信する規格をプロトコルと言いますが、SMBやNFSといったものはプロトコルです。プロトコルの種類は数多く WebDAVやFTPと言ったものもこれにあたります。

家電屋さんで買ってこれるNASは多くがWindowsで使われるSMBやmacOSの AFP(Apple File Protocol)と言ったプロトコルに対応しているものが多いようです。

Dropboxや Oracle Cloud Infrastructure、オブジェクトストレージと呼ばれるものは、SMBやAFPではありませんが、この分類法ではネットワーク接続だと思います。

(3) ストレージエリアネットワーク(Storage Area Network / SAN)

SANはITのシステムにかかわらない方はおそらくご覧になったことがないものです。サービスを提供するサーバー群とストレージを光ケーブルで接続し、ストレージをまとめることで管理しやすくしたものです。サーバーとストレージの間は、ファイバーチャネルと呼ばれるプロトコルで通信をします。

ネットワークを iSCSI というプロトコルでストレージとつないだ場合はSANだという意見もあります。私個人は、ファイバーチャネルもiSCSIもデータをブロック単位で扱うので(後述)SANだと思います。

ブロック・ファイル・オブジェクト

次にデータがどの様に扱われるかで、分類したいと思います。

・ブロックデバイス

ストレージにデータを書くとき、少しずつ読み書きをしていたのでは効率が悪いので、同じサイズで読み書きをします。この固まりのことを「ブロック」といいます。ブロックというのはあくまでも OSの都合なので、人間には非常にわかりにくいものです。ファイバーチャネルや iSCSIはブロックデバイスを提供するためのプロトコルです。データベース界隈の方はご存知ですが、rawデバイスという別名があります。

・ファイルシステム

「人間が扱いにくい」という問題を解決するためにファイルシステムというものが考えられました。現在みなさんが、Excelのファイルと認識しているのは、ファイルシステムが関連するブロックを一つにまとめ、抽象化して見せています。ブロックのレベルで見ればExcelのファイルは単なるデータの羅列に過ぎません。ファイルやフォルダという概念を入れたことで人間にはわかりやすくなったのです。

・オブジェクトストレージ

ファイルシステムは確かにわかりやすいし、ほとんどの場合はそれで用が足りていました。しかしながら、データの種類が書類やスプレッドシートから、動画や音楽と変わっていっているだけでなく、ファイルやフォルダの階層構造だけでは管理が難しいデータが出てきています。

例えば、「複数プロジェクトの書類を整理する場合に同じファイルがあったらどうするか?」と言うことです。macOSにもファイルには「タグ」と呼ばれる情報をつけて検索を簡単にする方法が用意されていますし、Windowsにも古くからショートカットという機能があります。しかし、これらはあくまでもファイルシステムの機能拡張です。

オブジェクトストレージは格納したいものをオブジェクトとして扱います。格納したオブジェクトには一意な IDが払い出され、アクセスするときにはこの番号を使います。イメージとしてはホテルで手荷物を預けたときにクロークでもらう番号札でしょうか。人間が管理するためには、番号だけではやはり不便なので、ラベルやタグ、プロパティと言ったものを付与することができます。これらのデータを「メタデータ」と言います。

メタデータはオブジェクトにいくつも添付することができるので、複数のプロジェクトに属するオブジェクトや、同じタグを持つオブジェクトの集合を簡単に指定することができます。

オブジェクトにアクセスするには、APIを利用する必要があります。プログラムから、APIを利用して、オブジェクトを格納したり、呼び出したりします。最近は RESTful API を利用して操作することが多いようです。(過去には C, Javaなどを使って APIを呼ぶ製品もありました)

ハードウェア

一般向けとしては、様々な形でPCに直接接続する製品やNASのローエンドの製品が一般的だと思います。

中・大規模向けは、以下の3種類くらいあります。

(1) NAS

NASはネットワーク接続のストレージです。製品によってサポートするプロトコルは違いますが、ほとんどの場合、複数プロトコルをサポートしています。数テラバイトから数ペタバイトまで様々な容量が用意されています。NAS製品の中には、SAN接続できるものもあります。


(2) RAID装置

数多くのディスク装置をRAID(レイドと読みます)と呼ばれる手法で束ねて、性能と耐故障性を高めたものです。OSからは束ねた単位(論理ユニット LUと略します)で一つの大きなディスク装置に見えます。RAID装置は、SANで接続されます。LUをファイルシステムに認識させたり、データベースシステムに認識させて使います。光ケーブルで接続するストレージはこの種類が最も多いです。

(3) JBOD

JBODは "Just Bunch of Disks" の略でディスクが一杯入っている箱です。多くはサーバーラックに設置する形で、1つに24台くらいのディスクが入っています。普通につなぐと、OSからは24台のドライブが見えます。そのままでは耐故障性が十分でないので、ボリュームマネージャと言われるソフトを使って冗長性を持たせた上で、ファイルシステムに認識させます。

ZFSはボリュームマネージャのような機能もあわせもっているので、JBODを使います。(もちろんRAID装置も使えますが、管理が二重になります。)

以上なんらかのご参考になれば幸いです。

参考文献

・ 富士通 オブジェクトストレージとは
・ オラクル SunStorageTek 5800システム製品概要

この記事はここまでです。 最後まで読んでいただいてありがとうございます。 気に入っていただいたなら、スキを押していただいたり、 共有していただけるとうれしいです。 コメントや感想大歓迎です!